资讯详情

Tanzu 学习系列之TKGm for vSphere 快速部署

趁着 VMworld 2021 China 第一次在开通已久的微信官方账号发布内容。

开头一张图,一图胜千言!先介绍背景知识。

8bdfc68486bcfcec6e9001b0a72e023b.png

上图是 VMware Tanzu 产品线,包含构建、运行、管理三个部分。今天我们只说运行这部分,首先要理清几个容易混淆的概念: Tanzu, vSphere with Tanzu, Tanzu Kubernetes Grid (包含TKGs和TKGm)。

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 离线安装模式,后续单独介绍)并采用简单的网络架构。

注:为便于测试和理解,管理网络、业务网络和节点网络使用相同的网络mgmt (生产部署需要分开)

角色 版本 备注
vcenter 7.0.3 支持6.7U3和7.x

ESX

7.0.3 支持6.7U3和7.x

AVI

(NSX Advanced Load Balancer)

20.1.6 负载均衡和服务发布
bootstrap

Centos7.4

Tanzu cli 1.4

登陆、管理TKGm集群
DHCP/DNS/NTP windows 2012

0. 下面的地址下载软件 (需要拥有vmware账号)

备注:TKGm 的 Tanzu Cli 工具和 OS OVA 从以下地址下载模板, Kubernetes在部署过程中,需要自动从在 VMware 在线仓库 projects.registry.vmware.com 拉镜像部署。(也可以搭建私人。 Harbor 仓库)

https://customerconnect.vmware.com/downloads/details?downloadGroup=TKG-140&productId=1165&rPId=73660

Tanzu cli 1.4 工具软件

kubectl 工具软件

KubernetesOVA 模板文件(支持)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功能。

上传下载的 KubernetesOVA 模版文件, 并将其转换为模板

3. 准备 Bootstrap 启动服务器,bootstrap 作为部署 TKGm 建议使用启动服务器 linux 操作系统(议centsos 7.x),并需要安装 Docker 引擎,同时配置DNS与NTP。Bootstrap 与 TKGm管理集群、工作集群,关系如下图。

1)安装Tanzu cli工具,从 myvmware 下载 tanzu-cli-bundle-linux-amd64.tar 解压后进行安装。

查看解压包

# ls cli*

cluster                        kapp-linux-amd64-v0.37.0+vmware.1.gz  login               package                                 ytt-linux-amd64-v0.34.0+vmware.1.gz

core                                    kbld-linux-amd64-v0.30.0+vmware.1.gz  management-cluster  pinniped-auth

imgpkg-linux-amd64-v0.10.0+vmware.1.gz  kubernetes-release                    manifest.yaml       vendir-linux-amd64-v0.21.1+vmware.1.gz

安装tanzu cli

#install core/v1.4.0/tanzu-core-linux_amd64 /usr/local/bin/tanzu 

安装tanzu cli 插件

#tanzu plugin install --local cli all

#tanzu plugin list

!  Unable to query remote plugin repositories : could not fetch manifest from repository "core": Get "https://storage.googleapis.com/tanzu-cli-tkg/artifacts/manifest.yaml": context deadline exceeded

  NAME                LATEST VERSION  DESCRIPTION                                                       REPOSITORY  VERSION  STATUS

  cluster                             Kubernetes cluster operations                                                  v1.4.0   installed

  kubernetes-release                  Kubernetes release operations                                                 v1.4.0   installed

  login                               Login to the platform                                                          v1.4.0   installed

  management-cluster                  Kubernetes management cluster operations                                       v1.4.0   installed

  package                             Tanzu package management                                                       v1.4.0   installed

  pinniped-auth                       Pinniped authentication operations (usually not directly invoked)              v1.4.0   installed

2)安装kubectl工具

 install kubectl-linux-v1.21.2-vmware.1 /usr/local/bin/kubectl

3)安装Carvel工具

  把 ytt  kapp  kdld  imgpkg工具添加执行权限,拷贝到/usr/local/bin/ 目录下

4) 安装docker 引擎

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

yum install docker-ce 

systemctl enable docker

5) 生成ssh-key 密钥对,用来作免密登陆TKGm 节点的密钥

[root@tkgcli176 ~]# ssh-keygen -t rsa -b 4096 -C "tkg@vcf.com"

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:gO0uIUhpwlPfHPVgQXsVsuThlj6GLuATeonnhaAolLQ tkg@vcf.com

The key's randomart image is:

+---[RSA 4096]----+

|   .   .o*.+ o.  |

|. o .oo o B *    |

|.B  ..oo . O     |

|=.+  . .  =      |

|.E...o. S. +     |

|o ..=o= . . .    |

|o. o.B.o .       |

|.   +.o .        |

|     .           |

+----[SHA256]-----+

[root@tkgcli176 ~]# eval `ssh-agent -s`

Agent pid 274293

[root@tkgcli176 ~]# ssh-add ~/.ssh/id_rsa

Enter passphrase for /root/.ssh/id_rsa:

Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)

查看pub密钥

cat .ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDBd5nZEo7UucQePacNwrStPz6o7QaBZE7yRUHG4A6lctI0s46Rfgg/uQ0p7hjz70xfOyJEQ8UlIQ36qhYtVq/RJXsLuCs4qxkbJb8/laZ1q+ybNLJUCL/oV7UbvGB7TKL0qZ7DbgmUdHfDg5/LSC9xN1nhWt2lRcPfwZDTWtojz76IYdYosU/baejualzr8lSIBhZIQsLCBwaonLPhPkU1mGBrydRfZVK3rysWAtzSkf8Dlo9lCtwbJIO1yHJd++jP6Dr/Q0QB0s07NL0HTmMc7Q4RqLlrHlsmwyJ3ALoTi86VazjHUoPZl7xlUcl+jdjL9Om9LIhwcj/Q28L/HfrXGMfW6O8F1pK2QYI3AZdN5lmJ8YzO23sQ9HLvsn15rBCWSxV/rsnq5pvo92cRzYCl2tvqt2YWfWD8AhM7dg46wjfg5ibo3LRYPH4/n7g7kF844pkuyIN4D/K96f5l4jfs/OWrFiW/0dGElCvTEpDbnjWZhi49KgCI5jS2Y4XaX/f42GftlHuhHX9pd5SQvydRBzN5hpY4IpGr8+MVqXutlA98u3OVFUTD5UHSeNNs1ZrHsQXzxdY5QZw2YH7ybv3yOvTKgQoP/rGGofcUesCGmi0D5wQalU8y6RaIJSIIkplIDP+L7mrfL6yKRqRDOib0CbXonuialKzcfPaKxnv0nw== tkg@vcf.com

6 )配置bootstrap dns,同时设置NTP服务器,保证可以与

 projects.registry.vmware.com 正常解析和通信

4. 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,

 连接成功,显示绿色

10)设置Service Engine Group ,编辑默认Default-Group

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)可以设置证书过期时间

19)进入管理的设置中,编辑、进行证书替换

20)删除原有的SSL/TLS证书,替换上面创建的新证书,并确保选择Allow B asic Authencication,保存退出,重新登录

21)重新登录AVI控制器,设置DNS/NTP

5. 部署 TKGm 管理集群

1)登陆 bootstrap 服务器,运行创建管理集群命令

[root@bootstrap ~]# tanzu management-cluster create --ui --bind 192.168.110.21:8088 --browser none --timeout 2h0m0s

Validating the pre-requisites...

Serving kickstart UI at http://192.168.110.21:8088

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进行修改,内容如下

CLUSTER_NAME: workload01

CLUSTER_PLAN: prod

CNI: antrea

AVI_CONTROL_PLANE_HA_PROVIDER: "true"

CONTROL_PLANE_MACHINE_COUNT: 1

WORKER_MACHINE_COUNT: 1

VSPHERE_CONTROL_PLANE_NUM_CPUS: 2

VSPHERE_CONTROL_PLANE_DISK_GIB: 40

VSPHERE_CONTROL_PLANE_MEM_MIB: 8192

VSPHERE_WORKER_NUM_CPUS: 2

VSPHERE_WORKER_DISK_GIB: 40

VSPHERE_WORKER_MEM_MIB: 4096

VSPHERE_CONTROL_PLANE_DISK_GIB: "40"

VSPHERE_CONTROL_PLANE_ENDPOINT: ""

VSPHERE_DATACENTER: /DC

VSPHERE_DATASTORE: /DC/datastore/localesx02a

VSPHERE_FOLDER: /DC/vm

VSPHERE_NETWORK: /DC/network/mgmt

VSPHERE_PASSWORD: <encoded:Vk13YXJlMSE=>

VSPHERE_RESOURCE_POOL: /DC/host/TANZU/Resources

VSPHERE_SERVER: 192.168.110.20

VSPHERE_SSH_AUTHORIZED_KEY: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5BZPO9DUbst6nnG1ImA8Iay/+Ca+xh2d0V5cHPO0/ZC1zrImF/Yhht5x2V3xm9sdYJu6uSc5qZiYpTc3B4VygttijdmYyH+QoO8Qs/0i160NWb2wByUFpCvzFRAnp+352ZCR/CO3scILmRLl1hQGm795k0DgsTXKBLx4icyej6FY5Hku81GrxKXQDJS/D7c7ejbPPv+zWxpasyt3Pdkiai9wSAsVKn9/xW7Xxq3bu9sAnJLiOUY5MnRUAEHPprf5i13gMWcZFIxm2dIg4xzmiXzVKa2BiKwrohn0QGtFAJpuIbAoZa1hbwYUKKSTjNhjwmffOAYHPZ+bVnYL9aKEf5duJdTXDiYWtl4xxSIA1TxPGkEHaxIVmWbjf1LlJk+HZxbtiBbeqX/L7bnqfnrpoJeWCM0mGHQoVjM4yM3l8JBrNm+CT9ydXLPTecpMn2XA2K8xlhdSyK4S0ADZUkaZQSs8zuJgzcRyKLryNfm1nIjWbRfv1v7R/vu2nuwJT5FznzbwDcR1Z2sY6Rc0qboXe8/LEk/jrxy4B4nheJ3wNepVfLJQKJh7O/L2bfGsCi21PCGmUcgotHTjxU+1/kPRjPeEwkrbO73+8q4BPR0x7CAgNDlvPYr06qfxaJzh8eFXc4/c2bLI3z0keYbQx3aI4Kjr74J5SL/oT/UceiAaaJQ== tkg@vcf.com

VSPHERE_TLS_THUMBPRINT: 04:53:AA:FF:75:F9:03:D1:E5:A4:A9:91:F3:86:9D:1E:BE:39:00:E9

VSPHERE_USERNAME: administrator@vsphere.local

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


要想了解云原生、机器学习和区块链等技术原理,请立即长按以下二维码,关注本公众号亨利笔记 ( henglibiji ),以免错过更新。

标签: 电子台秤传感器yzo

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台