拥抱云原生

news2024/12/25 0:29:16

专题七:云原生实战72课时

专题简介:

云原生正在改变世界,新一代架构思想ServiceMesh、Serverless改变传统软件架构模式,本专题基于完全云上架构实战,结合微服务架构和云计算平台两者的优势,属于架构师必备课程。包含Kubernetes、Jenkins、Istio、Jaeger、Prometheus、ELK等云原生方案的落地,并使用KubeSphere作为PaaS平台,进行云上实战与定制化修改,让大家站在新的高度重新审视现有的技术,真正实现云上亿级流量永不宕机。

核心知识点:

  • 云环境Docker容器化进阶实战

    Docker核心实战 Dockerfile重难点解析 docker-compose大型应用部署实战 swarm与Kubernetes的容器编排之争

  • Kubernetes容器编排系统实战

    Kubernetes核心概念解读 Kubernetes云上集群环境搭建 Kubernetes网络与负载均衡机制 Kubernetes云上无状态应用部署实战 Kubernetes云上有状态应用部署实战 Kubernetes云上应用灰度发布方案设计与实战 使用应用商店部署应用集群

  • KubeSphere多云集群管理与DevOps实战

    DevOps 运维和弹性伸缩 从企业视角了解 DevOps 的实施路径 持续集成/技术交付全流程流水线工具的设计与落地

  • 日志、监控系统实战

    Prometheus监控系统部署 PromQL使用 Grafana可视化监控面板实战 AlterManager集成邮件、短信告警功能 黑盒与白盒监控实战

  • ServiceMesh部署大型应用架构实战

    为什么使用服务网格化架构 Istio与Kubernetes整合 请求路由核心配置 使用流量转移完成金丝雀部署 网格化下的服务熔断 影子流量进行版本可行性验证 基于Google大型分布式系统的网格化实战

2021最新云原生(Docker+K8S+KubeSphere+DevOps)全套教程(上期+下期 成就Java架构师)

2021最新云原生(Docker+K8S+KubeSphere+DevOps)全套教程(上期+下期 成就Java架构师)_哔哩哔哩_bilibili

2021最新云原生实战——第二季全套教程

51、监控与告警-Prometheus 告警处理_哔哩哔哩_bilibili

拥抱云原生(42课时)

模块一 初识云原生

模块二 拥抱新一代架构Service MSEH与Serverlsee

模块三 深入Docker容器化速度

模块四 掌握星际级容器编排Kubernetes

模块五 云上架构与场景方案实战

模块六 DevOps实战企业CI/CD,构建企业云平台

在“大厂学院:拥抱云原生”课程中,引入 KubeSphere作为教学演示工具,以 Kubernetes 为核心围绕 Docker、DevOps、微服务、Serverless、云上架构与场景方案制作一套完整的企业级云原生课程

ubeSphere助力云原生课程

KubeSphere是在Kubernetes之上构建的以应用为中心的企业级容器云平台,完全开源,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,减轻开发、测试、运维的日常工作复杂度,旨在解决Kubernetes本身存在的存储、网络、安全和易用性等痛点。

KubeSphere整合并优化了多个适用于容器场景的功能模块,以完整的解决方案帮助企业轻松应对多云与多集群管理、敏捷开发与自动化运维、DevOps、微服务、多租户管理、监控告警、日志查询与收集、服务与网络、应用商店、镜像构建与镜像仓库管理、存储管理等多种业务场景。后续KubeSphere还将提供和支持边缘计算、大数据、AI 等更为复杂的业务场景。

采用KubeSphere搭建开源的企业级容器云平台,深入浅出讲解 KubeSphere 生态所有流行的开源项目,包含 Kubernetes、Jenkins、Istio、Jaeger、Prometheus、ELK 等全套云原生方案,构建一站式云原生 DevOps 平台,更有Spring Cloud Kubernetes的云上实战,真正实现云上亿级流量永不宕机!

大厂学院拥抱云原生

云原生

day01-云原生生态解读/
├── 01、什么是云计算
├── 02、云计算平台的分类理解
├── 03、云平台的优缺点
├── 04、服务的架构变革
├── 05、技术的变革
├── 06、提问解答
├── 07、完整云原生平台的基础技术量
├── 08、应用的12要素
├── 09、云原生的其他概念
├── 10、云原生的官方指导学习路线
└── 11、云原生课程的疑问
day02-docker命令复习/
├── 12、Docker的底层容器隔离机制
├── 13、Docker安装完成
├── 14、Docker镜像加速配置
├── 15、Docker-镜像的一些基本概念
├── 16、Docker-镜像的一些其他操作
├── 17、Docker其他的一些命令
├── 18、Docker的进入容器细节
├── 19、Docker cp命令
├── 20、Docker镜像的推送等操作
├── 21、Docker镜像的转移操作
├── 22、Docker容器长久运行之道
├── 23、Docker如何构建镜像
└── 24、如何下来做实验
day03-docker文件系统解析/
├── 25、镜像如何在底层存储
├── 26、容器与镜像的写时复制技术
├── 27、Docker的overlayFS存储驱动原理
├── 28、Docker数据卷挂载的三种方式
├── 29、Docker的-v挂载测试
├── 30、Docker的卷管理
├── 31、Docker的可视化界面
├── 32、最基本Dockerfile构建镜像
└── 33、Dockerfile怎么写
day04-dockerfile详解/
├── 34、ARG-指令
├── 35、ENV指令
├── 36、ENV的持久化问题
├── 37、ADD与COPY指令
├── 38、COPY的文件可以改变用户
├── 39、WORKDIR的应用
├── 40、USER配合COPY进行权限的控制
├── 41、VOLUME的坑
├── 42、EXPOSE暴露端口
├── 43、CMD、ENTRYPOINT容器启动指令
└── 44、多阶段构建
day05-docker网络与docker-compose/
├── 45、开通云服务器
├── 46、Dockerfile的springboot应用写法
├── 47、Docker运行期间的一些问题延伸
├── 48、桥接网络的原理
├── 49、--link来连接容器
├── 50、docker自定义网络原理
├── 51、docker-compose简介安装
├── 52、compose以及集群模式
├── 53、青云需要创建vpc
└── 54、子网掩码
day06-cicd-01/
├── 45、开通云服务器
├── 46、Dockerfile的springboot应用写法
├── 47、Docker运行期间的一些问题延伸
├── 48、桥接网络的原理
├── 49、--link来连接容器
├── 50、docker自定义网络原理
├── 51、docker-compose简介安装
├── 52、compose以及集群模式
├── 53、青云需要创建vpc
├── 54、子网掩码
├── 55、青云开通服务器集群
├── 56、CICD
├── 57、CICD的指导实现
├── 58、jenkins简介与安装
├── 59、jenkins安装完成
├── 60、再绑一个公网ip
├── 61、创建git项目和gitee建立连接
├── 62、jenkins文件的结构
├── 63、jenkins步骤生成器与环境变量
├── 64、jenkins其他简单的设置
├── 65、jenkins环境检查
├── 66、gitee远程触发jenkins自动构建
└── 67、jenkins插件安装
day07-cicd-02/
├── 68、使用基础网络
├── 69、jenkins插件安装
├── 70、自定义maven代理,使用自定义配置文件
├── 71、docker maven完全加速起来
├── 72、简单jenkins流水线完成
├── 73、发送邮件通知
├── 74、cicd还能做什么
└── 75、其他问题
day08-k8s-安装/
├── 76、为什么用kubernetes
├── 77、kubernetes简介
├── 78、kubernetes架构原理
├── 79、集群交互原理
├── 80、k8s-安装的所有前置环境
├── 81、k8s-每个节点安装kubeadm、kubelet、kubectl
├── 82、k8s-每个节点下载基本镜像
├── 83、k8s-master节点准备就绪
├── 84、k8s-其他工作节点准备就绪
├── 85、k8s-集群创建完成
└── 86、k8s-helloworld部署一个应用
day09-k8s基础操作/
├── 87、k8s-集群又一次安装
├── 88、k8s-集群架构复习
├── 89、k8s-创建一次部署,可以自愈
├── 90、k8s-了解Pod,自愈
├── 91、k8s-需要记住会用的一些命令
├── 92、k8s-手动扩缩容操作
├── 93、k8s-service将Pod封装一个统一服务
├── 94、k8s-滚动升级
├── 95、k8s-对象描述文件
└── 96、k8s-安装官方dashboard
day10-k8s容器核心/
├── 100、k8s-如何编写一个k8s的资源描述文件
├── 101、k8s-自己该怎么往下摸索
├── 102、k8s-核心组件的配置文件位置以及所有命令
├── 103、k8s-命令自动补全功能
├── 104、k8s-容器镜像使用秘钥从私有仓库下载
├── 105、k8s-容器启动命令、环境变量等
├── 106、k8s-containers的写法就是对应docker run的写法
├── 107、k8s-containers的生命周期钩子
├── 108、k8s-containers-容器探针是什么
├── 109、k8s-如何接下来学习k8s
├── 110、k8s-小总结
├── 97、k8s-集群中的资源会达到最终一致
├── 98、k8s-对象描述文件
└── 99、k8s-名称空间
day11-Pod核心/
├── 111、k8s工作负载-什么是工作负载
├── 112、k8s工作负载-Pod的概念
├── 113、k8s工作负载-Pod的多容器协同
├── 114、k8s工作负载-Pod的初始化容器
├── 115、k8s工作负载-Pod的生命周期
├── 116、k8s工作负载-临时容器的使用简介
├── 117、k8s工作负载-静态Pod
└── 118、k8s工作负载-Pod的探针
day12-Deployment详解/
├── 120、k8s工作负载-Deployment-简单编写
├── 121、k8s工作负载-Deployment-滚动更新原理01
├── 122、k8s工作负载-Deployment-滚动更新暂停与恢复等
├── 123、k8s工作负载-Deployment-按比例缩放的滚动更新
├── 124、k8s工作负载-Deployment安装metrics-server
├── 125、k8s工作负载-Deployment-HPA
├── 126、k8s工作负载-Deployment-灰度发布原理
├── 127、k8s工作负载-Deployment-金丝雀的案例
└── 128、k8s工作负载-Deployment-最后问题解决
day13-k8s工作负载及网络/
├── 129、k8s工作负载-Deployment总结
├── 130、k8s工作负载-RC、RS的区别
├── 131、k8s工作负载-DaemonSet让每个节点都部署一个指定Pod
├── 132、k8s工作负载-StatefulSet什么是有状态应用
├── 133、k8s工作负载-StatefulSet示例
├── 134、k8s工作负载-StatefulSet的分区更新机制
├── 135、k8s工作负载-Job
├── 136、k8s工作负载-定时任务
├── 137、k8s工作负载-垃圾回收简单了解
├── 138、k8s网络-Service、Pod端口
├── 139、k8s网络-ClusterIP与NodePort类型的Service
└── 140、k8s网络-Service与EndPoint原理
day14-k8s-ingress网络/
├── 141、k8s网络-Service所有字段解析
├── 142、k8s网络-Service的会话保持技术
├── 143、k8s网络-Service中Pod指定自己主机名
├── 144、k8s网络-为什么需要Ingress网络
├── 145、k8s网络-Ingress网络架构
├── 146、k8s网络-部署Ingress-nginx
├── 147、k8s网络-Ingress示例
├── 148、k8s网络-Ingress细节配置-默认服务
├── 149、k8s网络-nginx-ingress的全局配置
├── 150、k8s网络-ingress限流等示例
└── 151、k8s网络-ingress-nginx部署特点
day15-Ingress与NetworkPolicy/
├── 152、k8s网络-ingress-路径重写示例
├── 153、k8s网络-ingress-基于Cookie的会话保持技术
├── 154、k8s网络-ingress-安全连接
├── 155、k8s网站-ingress-几种证书的区别
├── 156、k8s网络-ingress-金丝雀
├── 157、k8s网络-networkpolicy-网络隔离策略
├── 158、k8s网络-k8s网络小结
├── 159、k8s网络-kube-proxy来控制节点直接网络
├── 160、k8s存储-卷的基本概念
└── 161、k8s存储-secret的创建
day16-存储与配置/
├── 162、k8s存储-secret使用Pod.env进行获取-不会热更新
├── 163、k8s存储-secret挂载的方式使用
├── 164、k8s存储-secret挂载默认只读
├── 165、k8s存储-cm结合SpringBoot做到生产配置无感知
├── 166、k8s存储-卷挂载-hostPath、emptyDir方式
├── 167、k8s存储-nfs文件系统环境搭建
├── 168、k8s存储-nfs进行挂载
└── 169、k8s存储-pv与pvc与Pod的使用
day17-动态供应&调度原理/
├── 170、k8s存储-pv的回收策略等细节
├── 171、k8s存储-动态供应原理与流程
├── 172、k8s存储-动态供应完成
├── 173、k8s调度原理-ResourceQuota配额限制
├── 174、k8s调度原理-LimitRange使用
├── 175、k8s调度原理-nodeSelector
└── 176、青云-取消合约按量操作
day18-调度原理/
├── 177、k8s调度原理-limitrange其他设置项
├── 178、k8s调度原理-亲和与反亲和
├── 179、k8s调度原理-NodeAffinity
├── 180、k8s调度原理-亲和与反亲和与拓扑键
├── 181、k8s调度原理-node的污点
├── 182、k8s调度原理-pod的容忍
├── 183、k8s调度原理-拓扑分区约束
├── 184、k8s调度原理-资源调度策略
└── 185、k8s安全-基于角色的访问控制
day19-安全性/
├── 186、k8s安全-role与clusterrole的写法
├── 187、k8s安全-dash为什么能操作集群
├── 188、k8s安全-ServiceAccount与ClusterRole实战
├── 189、k8s安全-Pod的ServiceAccount注意项
├── 190、k8s安全-如何自己开发一个k8s的可视化平台
├── 191、k8s安全-补充
├── 192、k8s生态-helm应用商店
├── 193、k8s小实验-部署mysql有状态服务
└── 194、MySQL默认不是主从同步需要自己设置
day20-day21-高可用集群/
├── 195、高可用集群-开通服务器网络等
├── 196、高可用集群-理解各种高可用方式
├── 197、高可用集群-理解一致性raft协议
├── 198、高可用集群-k8s的集群方式
├── 199、高可用集群-linux内核升级完成
├── 200、高可用集群-证书的概念
├── 201、高可用集群-证书的层级
├── 202、高可用集群-kubernetes默认的证书层级划分
├── 203、高可用集群-安装证书生成工具
├── 204、高可用集群-搭建-01-配置免密连接及其他基本信息
├── 205、高可用集群-搭建-02-配置ipvs&安装docker
├── 206、高可用集群-搭建-03-证书环境测试
├── 207、高可用集群-搭建-04-准备etcd安装包
├── 208、高可用集群-搭建-05-etcd集群证书生成完成
├── 209、高可用集群-搭建-06-ectd集群启动成功
├── 210、高可用集群-搭建-07-测试etcd集群成功
├── 211、高可用集群-搭建08-解压k8s软件包&可执行程序
├── 212、高可用集群-搭建09-核心组件证书生成
├── 213、高可用集群-搭建10-创建apiserver的负载均衡器
├── 214、高可用集群-搭建11-apiserver启动完成
├── 215、高可用集群-搭建12-controller-manager组件启动完成
├── 216、高可用集群-搭建13-kubelet-kubectl的配置
├── 217、高可用集群-搭建14-kubelet服务启动
├── 218、高可用集群-搭建15-calico组件安装启动
├── 219、高可用集群-搭建16-集群部署完成
├── 220、高可用集群-可用性验证完成
├── 221、高可用集群-集群恢复测试
├── 222、高可用集群-用完记得关机
└── 223、完整合录版
day22-23-自建集群/
├── 223、自建集群实战-集群简单优化
├── 224、自建集群实战-基本的预装资源
├── 225、自建集群实战-公网接下来的做法
├── 226、自建集群实战-rook与ceph
├── 227、自建集群实战-ceph集群安装完成
├── 228、自建集群实战-ceph问题排除
├── 229、自建集群实战-ceph集群mgr主备模式的坑
├── 230、自建集群实战-ceph-rook准备完成
├── 231、自建集群实战-ceph-集群需要创建pool
├── 232、自建集群实战-其他组件简介
├── 233、自建集群实战-prometheus入门
├── 234、自建集群实战-ceph第二次安装完成
├── 235、自建集群实战-ceph存储测试成功
├── 236、自建集群实战-prometheus与grafana
├── 237、自建集群实战-harbor的部署
└── 238、自建集群实战-harbor部署证书不匹配问题
day24-自建集群/
├── 239、自建集群实战-harbor部署完成
├── 240、自建集群实战-harbor仓库操作
├── 241、自建集群实战-其他部署
├── 242、自建集群实战-jenkins部署和插件安装
├── 243、自建集群实战-jenkins整合k8s集群与打包机的概念
├── 244、自建集群实战-jenkins四个打包机配置
├── 245、自建集群实战-jenkins打包机测试
├── 246、自建集群实战-kustomize演示
└── 247、自建集群实战-EFK集群搭建与使用
day25-servicemesh等/
├── 248、Istio-简介
├── 249、Istio-安装完成
├── 250、Serverless是什么
├── 251、Istio-bookinfo应用访问完成
├── 252、Istio-kiali、Jaeger
├── 253、Istio-的调用链
├── 254、Istio-金丝雀
├── 255、Jenkins-智能多分支自动化按需构建
└── 256、jenkins-流水线核心完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2210167.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LabVIEW智能可变温循环PCT测试系统

随着全球能源危机的加剧和环境保护需求的提升,开发和利用清洁能源已成为全球必然趋势。氢能作为一种高效的替代能源,正逐步受到关注。然而,储氢技术的研究至关重要,尤其是储氢材料的PCT(Pressure-Composition-Temperat…

如何使用UART(STM32 HAL库)

UART (通用异步收发器)是在 USART (通用同步异步收发器)基础上裁剪掉了同步通信功能,只剩下异步通信功能。关于通信和串口的基本知识,可参见文章《串口通信简介-CSDN博客》和《数据通信的一些基础概念-CSDN…

红杉资本行业总结篇:生成式 AI 的发展

Datawhale干货 最新:红杉资本,全球著名风险投资公司 生成式 AI 的发展:从 “快思考” 到 “慢思考”,开启自主应用的新篇章。 在生成式 AI 革命的两年里,研究方向正从 “快思考”(快速预训练响应&#xff…

Mysql(九) --- 事务

文章目录 前言1.什么是事务?2.事务的ACID特性3.为什么要使用事务?4.如何使用事务4.1.查看支持事务的 存储引擎4.2.语法4.3.开启一个事务,执行修改后回滚4.4.开启一个事务,执行修改后提交4.5.保存点4.6.自动/手动提交事务 5.事务的…

[含文档+PPT+源码等]精品大数据项目-springboot基于Hadoop框架实现的高校图书馆阅读书目推荐系统

关于大数据项目——Spring Boot基于Hadoop框架实现的高校图书馆阅读书目推荐系统的课题背景,可以从以下几个方面进行阐述: 一、信息技术发展的推动 随着信息技术的迅猛发展,互联网上的信息数据量呈爆炸式增长。这种信息过载现象使得用户难以…

2014年国赛高教杯数学建模A题嫦娥三号软着陆轨道设计与控制策略解题全过程文档及程序

2014年国赛高教杯数学建模 A题 嫦娥三号软着陆轨道设计与控制策略 嫦娥三号于2013年12月2日1时30分成功发射,12月6日抵达月球轨道。嫦娥三号在着陆准备轨道上的运行质量为2.4t,其安装在下部的主减速发动机能够产生1500N到7500N的可调节推力,…

如何优雅的通过Spring Boot+Redission对订单实现定时关闭

简介 在电子商务及支付相关平台中,常规流程是首先生成订单或支付请求,用户随后会在规定时间内完成支付。如果用户未能在预设时限内完成支付动作,系统通常会执行相应的过期处理机制,即自动取消未支付的订单。 此外,这…

鸿蒙开发之ArkUI 界面篇 三十一 Extend(封装)

开发中遇到重复使用次数多的代码,就是封装提取成一个方法,那么鸿蒙中的方法是怎么封装的呢?下面记录组件属性的封装,语法格式如下: Extend(组件名) function 函数名 (参数, 参数2) { } 例如:封装一个Text…

飞机大战ai通过dqn实现

借鉴 飞机大战源码 github 王者荣耀ai训练(试了一下,发现电脑带不动,就改了一点,训练其他游戏) 源码 通过网盘分享的文件:PlaneWar (2).zip [链接](https://pan.baidu.com/s/1N4OorR7b36Zml8MadGmI6g?pwd1234&#xf…

6.将扩散模型与其他生成模型的关联(2)

1.归一化流与扩散模型 自一化流(Normalizing Flow)是生成模型,通过将易于处理的分布进行变换以队对高维数据进行建模。归一化流可以将简单的概率分布转化为极其复杂的分布,并用于强化学习、变分推理等领域。 现有的归一化流是基于变量替换公式构…

GS-LRM: Large Reconstruction Modelfor 3D Gaussian Splatting 论文解读

目录 一、概述 二、相关工作 1、多视图的三维重建 2、前馈重建 三、LRM 1、编码器 2、解码器 3、NeRF渲染 四、GS-LRM 1、输入处理 2、Transformer 3、损失函数 五、实验 六、局限 一、概述 该论文提出了一种利用稀疏输入图像高效预测3D高斯原语的方法&#xff…

数据结构-5.6.二叉树的先,中,后序遍历

一.遍历: 二.二叉树的遍历:利用了递归操作 1.简介: 二叉树的先序遍历,中序遍历,后序遍历都是以根结点遍历顺序为准的,如先序遍历就先遍历根结点 2.实例: 例一: 例二: …

【LeetCode】动态规划—188. 买卖股票的最佳时机 IV(附完整Python/C++代码)

动态规划—188. 买卖股票的最佳时机 IV 题目描述前言基本思路1. 问题定义交易规则: 2. 理解问题和递推关系两种情况:状态定义:状态转移方程:初始条件: 3. 解决方法动态规划方法特殊情况:当 k 大于等于 pric…

【最新华为OD机试E卷-支持在线评测】构成正方形的数量(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…

(全网独家)面试要懂运维真实案例:HDFS重新平衡(HDFS Balancer)没触发问题排查

在面试时,面试官为了考察面试者是否真的有经验,经常会问运维集群时遇到什么问题,解决具体流程。下面是自己遇到HDFS Balancer没执行,花了半天时间进行排查,全网独家的案例和解决方案。 目录 使用CDH自带重新平衡操作…

数据结构 ——— 顺序表oj题:最长公共前缀

目录 题目要求 代码实现 题目要求 编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串 "" 代码实现 代码演示: void CommonPrefix(char** strs, int strsSize, char* returnStr) {char* first_r…

利用session机制造测试账号,无需前端也可以测试后端接口

适用场景:我们在测试的时候经常会遇到前端还没有开发完毕,后端已经结束开发了,但是后端的有些接口是需要特定的账号身份调用才会生效,此时因为前端未开发完毕,所以我们不能通过web页面进行登录,那么如何解决…

【Python Django + Vue】酒店在线预订系统:用技术说话!

🎓 作者:计算机毕设小月哥 | 软件开发专家 🖥️ 简介:8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 🛠️ 专业服务 🛠️ 需求定制化开发源码提…

Parallels Desktop意外退出,Parallels Desktop安装软件很卡闪退怎么办?

Parallels Desktop是目前很优秀的虚拟机软件,操作简单,兼容性强而且安装也非常方便,备受苹果用户的喜爱和满意。然而,部分用户在使用Parallels Desktop的时候,会遇到意外退出或终端关机的情况,这不仅会影响…

VS2017 编译 SQLite3 动态库

首先官方下载源码: Tags sqlite/sqlite (github.com) 1.安装 VS2017 community edition 2.打开VS2017命令行工具 3.安装TCL 开发库,推荐 TCL 9.0 先下载源码: Tcl/Tk 9.0 使用vs2017编译tcl&