TKE Anywhere 集群支持部署和运行在用户自有 IDC、边缘机房或者虚拟机等环境上,请仔细阅读以下安装前提条件,确保现场环境满足 TKE Anywhere 的部署和运行要求。
产品依赖
如需选择公网方式部署 TKE Anywhere 集群,依赖 TDCC 云原生分布式云中心服务开启 Hub 集群 API Server 公网访问和创建 TKE Anywhere 集群能力,开启上述功能将自动创建公网 CLB 和 EIP 实例。如在使用 TKE Anywhere 集群时使用到 负载均衡 CLB、弹性公网 IP 等其他收费产品时,按原产品计费原则计费,请参考 CLB 收费标准 和 EIP 计费标准。
硬件要求
部署 TKE Anywhere 前请确保有足够的 CPU、内存和存储资源,以满足集群和您运行的工作负载的需求。
根据不同使用用途,部署 TKE Anywhere 的服务器硬件配置最低应满足下表要求。
部署模式 | 节点类型 | CPU 核数 | 内存 | 磁盘 | 数量 |
高可用生产部署 | master | 8 | 16GB | 磁盘容量: /var 目录所在的分区剩余容量大于100GB | 3 |
| worker | 2 | 4GB | 磁盘容量: /var 目录所在的分区剩余容量大于100GB | N(根据业务规划配置) |
试用或 POC 演示 | master | 8 | 16GB | 磁盘容量: /var 目录所在的分区剩余容量大于100GB | 1 |
| worker | 2 | 4GB | 磁盘容量: /var 目录所在的分区剩余容量大于100GB | N(根据业务规划配置) |
注意事项
1. 上述表格不涉及用户自身业务的容量规划,请根据实际业务情况,设置合适的 Worker 节点资源配置。
2. 如果 Worker 节点数为0,且未启用 Master 节点调度,创建出的集群将没有可供业务调度使用的节点。
3. 默认使用的服务器存储目录:
a. 容器镜像默认存储在 /var/lib/containerd 目录。
b. 容器日志默认存储在 /var/log 目录。
c. K8s etcd 数据库默认存储在 Master 节点 /var/lib/etcd 目录。
4. 服务器至少含有一块网卡(推荐万兆以上网卡),同一集群下服务器网卡名称需要保持一致。
5. 支持 GPU 如下:
Volta 架构:V100
Turing 架构:T4
Ampere 架构:A100、A10
网络要求
部署 TKE Anywhere 支持跳板机和反向通道两种连接方式,请选择其中一种部署连接方式。
跳板机连接方式
1. 需要准备一台可供公网 SSH 登录的跳板机,并且跳板机与需要部署 TKE Anywhere 的服务器可以通过 SSH 内网互通。
2. 跳板机可与 Master 节点为同一服务器。
3. 跳板机带宽 ≥ 10Mbps
4. 部署 TKE Anywhere 的服务器需要具有访问公网能力,用于访问:
TDCC Hub 集群 APIServer 的地址:用于 TKE Anywhere 的注册。
ccr.ccs.tencentyun.com:拉取集群部署依赖的镜像。
反向通道连接方式
1. 需要准备一台可访问公网的跳板机,并且跳板机与需要部署 TKE Anywhere 的服务器可以通过 SSH 内网互通。
2. 跳板机可与 Master 节点为同一服务器。
3. 跳板机带宽 ≥ 10Mbps
4. 部署 TKE Anywhere 的服务器需要具有访问公网能力,用于访问:
TDCC Hub 集群 APIServer 的地址:用于 TKE Anywhere 的注册。
ccr.ccs.tencentyun.com:拉取集群部署依赖的镜像。
注意:
如果通过内网连接现场 IDC 部署 TKE Anywhere,需确保支持通过内网 SSH 登录跳板机,或跳板机可内网访问部署通道地址,所有部署 TKE Anywhere 的服务器应支持通过内网访问 Hub 集群 APIServer 的地址和 ccr.ccs.tencentyun.com 镜像仓库地址。
端口要求
Master 节点应满足以下端口开放策略,保证集群正常工作。
协议 | 端口 | 来源IP | 说明 |
TCP | SSH 登录端口,按需放行 | 跳板机 | TDCC 通过跳板机 SSH 部署管理 TKE Anywhere |
TCP | 80 | 所有节点 | ingress 占用 |
TCP | 8181 | 所有节点 | ingress 占用 |
TCP | 2379 - 2380 | 所有 Master&Etcd 节点 | etcd 通信 |
TCP | 443 | 所有节点 | ingress 占用 |
TCP | 9100 | 所有节点 | node exporter |
TCP | 6443 | 所有节点 | Kubernetes API Server 服务 |
TCP | 10250-10255 | 所有节点 | kubelet 通信 |
TCP | 30086 | 所有节点 | tke-monitor 通信 |
TCP | 31138 | 所有节点 | tke-auth 通信 |
TCP | 31180 | 所有节点 | tke-gateway 通信 |
TCP | 31443 | 所有节点 | tke-gateway 通信 |
Worker 节点应满足以下端口开放策略,保证集群正常工作
协议 | 端口 | 来源IP | 说明 |
TCP | 22 | 跳板机 | TDCC 通过跳板机 SSH 部署管理 TKE Anywhere |
TCP | 9100 | 所有节点 | 本地监控 node exporter 通信 |
TCP | 10250-10255 | 所有节点 | kubelet 通信 |
集群 API Server 高可用要求
为满足集群高可用特性,集群 Master 节点采用高可用方式部署,支持 Keepalived 和使用已有 LB 两种高可用模式,根据选择分别应满足:
Keepalived 模式
需要提供一个 VIP,网络开启 VRRP 组播模式,该 VIP 需要和集群节点 IP 在同一个二层网段,并保证与服务器互通。
使用已有 LB 模式
需要提供 LB VIP,VIP 绑定所有 Master 节点的80(容器服务控制台)、443(容器服务控制台)、6443(kube-apiserver 端口)、31138(tke-auth-api 端口)端口。
注意:
因为提供的 VIP 或 LB 导致的服务不可用问题,不计为 TKE Anywhere 产品问题。
存储类型
TKE Anywhere 平台本身不提供高可用的存储,如使用本地磁盘方式部署,部分数据(如镜像仓库数据,监控数据)默认保存在节点指定目录下。如需要对该数据进行高可用的存储,需要提供外部存储,支持对接以下存储类型:
NFS 存储
Ceph FS 存储
Ceph RBD 存储
注意:
1. 使用本地磁盘方式部署仅用于试用或 POC 演示,因为本地磁盘方式不支持平台高可用特性。
2. 因为外部存储故障导致的如数据丢失、读取失败或服务不可用等问题,不计为 TKE Anywhere 产品问题。
3. 由于本地磁盘和 Ceph RBD 块存储的技术限制,可能导致在节点发生故障情况下,镜像数据不能动态迁移导致镜像拉取失败。建议对镜像仓库组件指定外部 S3 对象存储,否则 TKE Anywhere 将不保证完整的平台高可用特性。
软件要求
请仔细阅读部署前软件要求说明,针对集群中的所有节点(服务器),操作系统和软件需要满足:
检查项 | 具体要求 | 命令参考 |
操作系统 | TencentOS Server 2.4(TK4) |
|
kernel 版本 | TK4-5.4 |
|
集群节点时间 | 集群节点时间要同步 | date 命令查看集群节点的时间,如果不同步需要进行同步操作 |
空间目录要求 | /var/lib 目录可用空间大于100G |
|
ssh sudo yum CLI sftp | 确保 Installer 节点及其容器、Global 集群节点及其容器、业务集群节点及其容器之间能够 ssh 互联。 确保每个节点都有基础工具。 | 1. 确保在添加所有节点时,IP 和密码输入正确 2. 确保每个节点都有 sudo 或 root 权限 3. 确保拥有 yum 4. 确保拥有命令行工具 |
Swap | 关闭。
如果 Swap 分区被启用,系统可能会出现 IO 飙升的问题,导致 Docker 卡死。 如果 Swap 分区被启用,kubelet 可能会启动失败。您可以在 kubelet 启动参数中设置 --fail-swap-on=false ,以关闭 Swap 检查。 |
注意:如果 /etc/fstab 有挂载 swap,必须要注释掉,否则重新开机时会重新挂载 swap。 |
防火墙 | 关闭。或者至少要放通22、80、8080、8089、443、9100、6443、2379、2380、10250-10255、31138、31180、31443 端口。 | 可通过以下命令关闭防火墙:
可通过以下命令放通指定端口,例如只放通80端口:
|
SELinux | 关闭。 Kubernetes 官方要求,否则 kubelet 挂载目录时可能报错 Permission denied。 |
|
时区 | 所有服务器时区必须统一,建议设置为 Asia/Shanghai。 |
|
时间同步 | 为了确保 ETCD 集群的正常运行,各机器的时间必须同步。建议使用 chrony 工具进行系统时间同步。同时,所有服务器的时间也必须同步,并且误差不得超过 2 秒。 |
|
containerd 检查 | 在安装 TKE Anywhere 之前,建议先检查是否已经安装了 containerd,并且版本是否与 TKE Anywhere 一致。
如果版本不兼容,建议先卸载旧版本的 containerd,再安装 TKE Anywhere 所需的版本。 |
|
其他残留软件 | 在部署 TKE Anywhere 之前,建议先检查环境中是否存在残留的 dockerd、containerd、kubelet、kubectl、kubeadm、kubernetes-cni 等容器运行时以及 Kubernetes 软件。如果存在,需要先将其卸载并清理干净,以确保部署过程的顺利进行。 | - |
磁盘格式 | 如需使用 LocalPV 存储,所在磁盘格式必须为
XFS。 | 执行以下命令,检查磁盘文件系统类型是否为 XFS($DeviceName 需要根据实际环境填写具体的盘符名称):
执行以下命令,检查挂载磁盘是否指定磁盘:
|
注意事项
云原生 paas 功能使用 LocalPV 存储,要求节点上存储 PaaS 中间件数据的磁盘格式为标准 XFS。如果磁盘检查未通过,在需要刷新磁盘的节点上依次进行如下操作:
1. 升级 xfsprogs
wget https://kincos-1251707795.cos.ap-guangzhou.myqcloud.com/localpv/xfsprogs-5.9.0-8.tl2.x86_64.rpmrpm -Uvh xfsprogs-5.9.0-8.tl2.x86_64.rpm
2. 格式化本地磁盘
mkfs.xfs -m crc=1,reflink=1 -n ftype=1 $DeviceName
3. 挂载到指定路径
mkdir /data1mount -o defaults,prjquota,noatime,nodiratime $DeviceName /data1echo "$DeviceName /data1 xfs defaults,prjquota,noatime,nodiratime 1 1" >> /etc/fstab