前言
为了帮助企业在 Kubernetes 上构建、运行及管理软件转变方式,VMware 在 VMworld 2019 大会上推出了全新的产品和服务组合 VMware Tanzu。
“Tanzu”,是什么意思呢?
VMware Tanzu 家族都包含哪些产品呢?
VMware Tanzu 产品线是如何运行的呢?
……
带着这些问题,让我们一起跟随 VMware 高级系统工程师卢洋,走进 VMware Tanzu 的世界吧~
开局一张图,一图胜千言! 先介绍下背景知识。
上图是 VMware Tanzu 产品线,包含构建、运行、管理三个部分。今天我们只说运行这部分,首先要理清几个容易混淆的概念: Tanzu, vSphere with Tanzu, Tanzu Kubernetes Grid (包含 TKGs 和 TKGm)。
Tanzu
Tanzu 是 VMware 现代化产品家族的总称,Tanzu 来自于斯瓦希里语(斯瓦希里 Swahili 是非洲东部地区跨界民族),是”树枝”的意思,它代表的是一个不断增长的解决方案系列的新分支,可帮助客户向任何云环境交付任何应用。VMware 用 Tanzu 来命名应用现代化解决方案相关的产品,VMware 也在不断地丰富和发展 Tanzu 产品家族,为用户构建、运行和管理现代应用提供更大的便利。
vSphere with Tanzu 是把 vSphere 集群重新构建为 Kubernetes 集群,也叫主管集群,ESXi 成为 Kubernetes 的 worker 节点,可以直接在 ESXi 上直接运行容器 Pod。vSphere with Tanzu 为 vSphere 环境管理新提供了一个 Kubernetes 管理方式,使得开发人员在 vSphere 环境中也可以使用熟悉的 Kubernetes 命令和 API 来开发、部署、管理应用,且应用是直接运行在 ESXi 之上的容器 Pod 内,同时也可以用 Kubernetes 命令和 API 来发布、管理虚拟机和 Tanzu Kubernetes Grid 集群等服务。
Tanzu Kubernetes Grid (TKG) 是 Tanzu 产品家族中的一个产品,是 VMware 的 Kubernetes 企业发行版本,可以在私有云和公有云多种云环境中部署,为用户提供一致的 Kubernetes 使用体验,与 区的 Kubernetes 完全兼容。根据部署和管理方式的不同,分为 Tanzu Kubernetes Grid Service for vSphere( 简称TKGs)和 Tanzu Kubernetes Grid Muti-cloud (简称TKGm)。
TKGs 是通过 vSphere with Tanzu 进行发布和管理的,作为 vSphere with Tanzu 的一部分,vSphere with Tanzu 通过 Kubernetes 方式对 TKGs 进行全生命周期管理。
TKGm 是 Tanzu Kubernetes Grid 多云版本,支持部署在 vSphere 、AWS、Azure 多种云环境。通过独立部署的 TKG 管理集群进行生命周期管理。
TKGm 与 TKGs 相比,版本迭代速度更加快,部署方式更加灵活。
背景知识介绍完了,说正题:TKGm 1.4 for vSphere 快速部署,尽快踏上学习 TKGm 之旅。
前提假设对 vsphere 和 Kubernetes 有基础知识,按照以下流程进行部署。为了简化安装过程,快速熟悉 TKGm,本次是采用的是在线安装模式(TKGm 的 Kubernetes 来自 VMware 在线仓库,也可以自建 Harbor 进行离线安装模式,后续会单独介绍)并采用简单的 络架构。
1
部署流程
2
拓扑架构
备注:为了测试方便,便于理解,管理 、业务 、节点 络都使用同一个 络mgmt(生产部署需要分开)
3
部署环境
4
部署详细步骤
0. 登陆以下地址下载软件 (需要拥有 VMware 账 )
https://customerconnect.vmware.com/downloads/details?downloadGroup=TKG-140&productId=1165&rPId=73660
Tanzu cli 1.4 工具软件
kubectl 工具软件
Kubernetes OVA 模版文件(支持 Photo 和 Ubuntu )
AVI 负载均衡控制软件
1. 配置 DHCP/DNS/NTP 服务器
DHCP 服务器为 TKGm 分配节点 IP、DNS、GW,为了测试方便,建议配置 Windows DHCP 服务器。同时把此服务器配置为 DNS 和 NTP 服务器。
1)配置 DNS 服务,写入 vc、esx 等解析,并配置 DNS 转发公 DNS (在线部署模式需求)
2)安装配置 DHCP 服务
2. 准备 vSphere 集群环境
由于假设具备 vsphere 基础知识,就不详述配置过程,只是注意要打开 DRS 功能。
上传下载的 Kubernetes OVA 模版文件, 并转换为模版
3. 准备 Bootstrap 启动服务器
bootstrap 作为部署 TKGm 的启动服务器,建议采用 linux 操作系统(建议 centsos 7.x),并需要安装 Docker 引擎,同时配置 DNS 与 NTP。Bootstrap 与 TKGm 管理集群、工作集群,关系如下图。
1)安装 Tanzu cli 工具,从 myvmware 下载 tanzu-cli-bundle-linux-amd64.tar 解压后进行安装。
2)安装 kubectl 工具
3)安装 Carvel 工具
把 ytt kapp kdld imgpkg 工具添加执行权限,拷贝到/usr/local/bin/ 目录下
4) 安装 docker 引擎
5) 生成 ssh-key 密钥对,用来作免密登陆 TKGm 节点的密钥
4. 部署和配置 AVI 控制器
AVI 是 VMware NSX 高级负载均衡器,作为 TKGm 的 API 的外部负载均衡器,同时为 TKGm 提供的 LoadBalancer 服务暴露功能。为了测试方便,管理 络和数据 络采用同一个 络。
备注:当前 TKGm 1.4 支持的 AVI 20.1.6 版本;测试系统资源限制,AVI 控制器是单台部署,生产系统要三台配置成集群。
1)部署下载的 AVI ova 文件
2)为 AVI 虚拟机命名
3)输入规划的 IP、子 掩码、 关
4)部署成功之后,根据系统性能,等待 AVI 启动,使用 IP 进行登陆,创建 admin 用户和密码
5)设置 passphrase 和 dns 服务器(也可以后续设置),默认下一步
6)admin 用户名和密码登录之后,导航到 Default cloud 开始配置与 VC 关联
7)输入 VC IP、管理员用户名和密码
8)设置数据中心
9)选择 VC 上的管理 名称,设置管理 段、 关以及静态池,选择 save,连接成功,显示绿色
11)由于TKGm自带的 AVI 的License 是Avi Essentials,所以Service Engine Group只支持 a/s模式,由于测试环境资源有限,Service Engine 内存预留可以不选(生产系统需要设置预留),保存退出
12)配置 络,由于本次测试管理 、业务 、节点 都使用管理 ,所以不需要单独配置业务 等。
13)设置该子 可以作为业务 和数据 络
14)设置 IPAM profile
15)设置 cloud 与 IPAM 关联
16)创建新的 AVI 控制器证书
17)设置证书名字、Common Name (测试可以任意写),SAN (确保与 AVI 控制器 IP 一致)
18)可以设置证书过期时间
20)删除原有的 SSL/TLS 证书,替换上面创建的新证书,并确保选择 Allow B asic Authencication,保存退出,重新登录
21)重新登录 AVI 控制器,设置 DNS/NTP
5. 部署 TKGm 管理集群
1)登陆 bootstrap 服务器,运行创建管理集群命令
2)使用浏览器 http://192.168.110.21:8088 打开创建管理集群 UI,选择部署在 VMware vsphere
3)输入 VC IP、用户名、密码,然后点击 connect 连接到 VC
4)由于 vsphere 是 7.x 版本,会弹出界面提示可以采用 vsphere with tanzu 进行管理,直接选择部署 TKG 管理集群
5)输入在配置 bootstrap 过程中配置的 /root/.ssh/id_rsa.pub 中的密钥
6)管理集群 dev 模式是 1 个控制节点,1 个 worker 节点;Production 是 3 个控制节点,1 个 worker 节点,由于测试环境,建议选择 dev 模式。管理集群命名,管理集群控制节点的高可用模式选择 AVI ,管理集群控制节点的控制 IP,可以从 AVI 络池选择输入,也可以自动获取,本次测试选择自动获取。
7)关联 AVI 控制器,输入 AVI IP 用户名、口令,以及配置 AVI 控制器步骤中创建的证书,进行验证。
8)登陆 AVI 控制器,导出证书
9)选择关联 AVI 的 Cloud、service engine group name、 络信息,下一步
10)metadata 可以不设置,下一步
11)选择部署 TKGm 管理集群的 vsphere 上的位置
12)选择 kubernetes CNI 以及使用的 络,下一步
13)统一认证,需要配置认证服务器,本次测试不配置,下一步
14)选择部署管理集群的 kubernetes OVA 模版(之前已经上传),TKG 1.4 管理集群要求必须是 1.21.2 版本
15)注册到多集群管理 TMC,TMC 是 SAAS 服务,可以不配置,下一步
16)REVIEW 配置信息,可以直接图形点击部署也可以把执行命令拷贝,直接在 bootstrap 上执行,本次测试在 bootstrap 上执行命令行执行
17)修改命令行日志级别为 9 可以更详细查看部署过程
18)根据 络和系统性能部署时间十几分到几小时,管理集群部署成功如下
19)获得 kubeconfig 文件,登陆管理集群
tanzu mc kubeconfig get –admin
Credentials of cluster ‘tkgm’ have been saved
You can now access the cluster by running ‘kubectl config use-context tkgm-admin@tkgm’
6. 发布 TKGm 工作集群
1)登陆到 bootstrap 的/root/.config/tanzu/tkg/clusterconfigs 目录下,拷贝创建管理集群使用的配置文件为 workload01.yaml 进行修改,内容如下
2)在 bootstrap 上发布工作集群
tanzu cluster create -f workload01.yaml -v 9
3)获得工作集群的 kubeconfig 文件,并登陆
tanzu cluster kubeconfig get workload01 –admin
Credentials of cluster ‘workload01’ have been saved
You can now access the cluster by running ‘kubectl config use-context workload01-admin@workload01’
4)发布一个应用测试,采用的 AVI LoadBalaner 方式暴露服务,可以直接访问这个 IP
-END-
本周互动话题
关于 VMworld 2021 中国,你想了解什么?
点击右下角“写留言”
聆听你的声音
欢迎将文章分享到朋友圈不想错过消息就关注我吧
热读推荐
非凡创想 洞见未来|VMworld 2021 中国线上大会圆满落幕
VMworld 大会点播已开放,精彩仍在继续
VMware 连续第四年获评 Gartner 广域 边缘基础设施魔力象限领导者
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!