安装前提条件

最近更新时间:2023-09-08 19:13:05

我的收藏
TKE Anywhere 集群支持部署和运行在用户自有 IDC、边缘机房或者虚拟机等环境上,请仔细阅读以下安装前提条件,确保现场环境满足 TKE Anywhere 的部署和运行要求。

产品依赖

创建和使用 TKE Anywhere 集群,您需要 注册腾讯云账号,并完成 实名认证,并完成开通 TDCC 云原生分布式云中心服务,参考 快速入门
如需选择公网方式部署 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)
cat /etc/redhat-release
kernel 版本
TK4-5.4
uname -sr
集群节点时间
集群节点时间要同步
date 命令查看集群节点的时间,如果不同步需要进行同步操作
空间目录要求
/var/lib 目录可用空间大于100G
du -sh /opt du -sh /var/lib
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 检查。
sudo swapoff -a sudo sed -i '/ swap / s/^\\(.*\\)$/#\\1/g' /etc/fstab 
注意:如果 /etc/fstab 有挂载 swap,必须要注释掉,否则重新开机时会重新挂载 swap。 
防火墙
 
关闭。或者至少要放通22、80、8080、8089、443、9100、6443、2379、2380、10250-10255、31138、31180、31443 端口。
 
可通过以下命令关闭防火墙:
systemctl stop firewalld && systemctl disable firewalld 
可通过以下命令放通指定端口,例如只放通80端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent 
SELinux
关闭。
Kubernetes 官方要求,否则 kubelet 挂载目录时可能报错 Permission denied。
setenforce 0 sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
时区
所有服务器时区必须统一,建议设置为 Asia/Shanghai。
timedatectl set-timezone Asia/Shanghai
时间同步
为了确保 ETCD 集群的正常运行,各机器的时间必须同步。建议使用 chrony 工具进行系统时间同步。同时,所有服务器的时间也必须同步,并且误差不得超过 2 秒。
yum install -y chronyd systemctl enable chronyd && systemctl start chronyd
containerd 检查
在安装 TKE Anywhere 之前,建议先检查是否已经安装了 containerd,并且版本是否与 TKE Anywhere 一致。 如果版本不兼容,建议先卸载旧版本的 containerd,再安装 TKE Anywhere 所需的版本。
yum remove containerd -y
其他残留软件
在部署 TKE Anywhere 之前,建议先检查环境中是否存在残留的 dockerd、containerd、kubelet、kubectl、kubeadm、kubernetes-cni 等容器运行时以及 Kubernetes 软件。如果存在,需要先将其卸载并清理干净,以确保部署过程的顺利进行。
-
磁盘格式
如需使用 LocalPV 存储,所在磁盘格式必须为 XFS。
执行以下命令,检查磁盘文件系统类型是否为 XFS($DeviceName 需要根据实际环境填写具体的盘符名称):
blkid -p -s TYPE -s PTTYPE -o export $DeviceName
执行以下命令,检查挂载磁盘是否指定磁盘:
findmnt -o source --noheadings --target /data1

注意事项

云原生 paas 功能使用 LocalPV 存储,要求节点上存储 PaaS 中间件数据的磁盘格式为标准 XFS。如果磁盘检查未通过,在需要刷新磁盘的节点上依次进行如下操作:
1. 升级 xfsprogs
wget https://kincos-1251707795.cos.ap-guangzhou.myqcloud.com/localpv/xfsprogs-5.9.0-8.tl2.x86_64.rpm
rpm -Uvh xfsprogs-5.9.0-8.tl2.x86_64.rpm
2. 格式化本地磁盘
mkfs.xfs -m crc=1,reflink=1 -n ftype=1 $DeviceName
3. 挂载到指定路径
mkdir /data1
mount -o defaults,prjquota,noatime,nodiratime $DeviceName /data1
echo "$DeviceName /data1 xfs defaults,prjquota,noatime,nodiratime 1 1" >> /etc/fstab