概述
节点是集群的基本组成元素。添加至集群的节点,既可以是虚拟机,也可以是物理服务器。每个节点都包含运行 Pod 所需要的基本组件,包括 Kubelet、Kube-proxy 、Container Runtime 等。
拥有平台管理权限的用户可管理集群下的节点。
注意:不支持为接入集群添加节点,或删除接入集群的节点。
节点类型
-
控制节点:负责运行集群中的 kube-apiserver、kube-scheduler、kube-controller-manager、etcd 等组件、容器网络以及平台的部分管理组件。
-
当允许应用部署在控制节点上时,控制节点可同时作为计算节点使用。
-
集群上至少需要有 1 个控制节点,且控制节点个数只能为 1、3、5。
-
控制节点的个数大于等于 3 时,集群具有多备容灾能力,为高可用集群。
-
-
计算节点:负责承载运行在集群上的业务容器组。通常可根据业务量规划集群中所需计算节点个数。
Linux 节点可用性检查
若您需要自建集群,请先参照下表检查集群中所有节点的相关配置是否满足条件。需确保必备条件均已满足,否则可能会导致集群部署失败。
检查项 | 必备条件 |
---|---|
SSH 连接性检查 | 检查 SSH 的密码或者私钥是否正确;SSH 链接超时错误;SSH 链接其它错误。 |
主机 SSH 用户权限检查 | 主机的用户名需为 ROOT,且密码正确;或者无需密码的 SUDO 用户。 |
检查 SSHD | /etc/ssh/sshd_config 配置文件中 UseDNS 和 UsePAM 参数需为 no。 |
操作系统及内核版本 | 参考 支持的操作系统及 CPU 型号 。 |
内核模块 | 模块 iptable_nat 、br_netfilte 、nf_conntrack 存在。 |
内核网络模块 | 网络内核模块要求: |
内核参数 | 需要配置 ipv6.disable=0 。 |
检查系统工具 | 主机上必须存在的系统工具有: ip , ss , tar , swapoff , modprobe , sysctl , md5sum ,scp 和 sftp 二者中必须包含其中一个。 |
访问 tmp 目录 | 账号必须有权限在 /tmp 目录下执行 ls 和 cat 命令。 |
GPU 设备 | 使用 GPU 设备时检查设备是否存在。 |
CPU / 内存 | CPU 至少 2 核;内存至少 2 G。 |
检查主机名称 | 获取主机的 hostname,只能以 a-z 、0-9 开头或结尾,由 a-z 、0-9 、- 、. 组成(不含连用的 - 、. ),最多 36 个字符。且任意两台集群的 hostname 不允许相同。 |
检查 kubelet 服务 | 不能存在 /etc/systemd/system/kubelet.service 文件。 |
交换分区 | 关闭。 |
ETCD 目录 | 数据目录为空。 |
防火墙 | 关闭。 |
SELinux | 关闭。 |
Apparmor | 1. Apparmor 服务未关闭,并且 /sys/module/apparmor/parameters/enabled 文件不存在或存在且为 Y 。2. 关闭 Apparmor 服务。 |
默认路由 | 服务器有 default 路由或指向 0.0.0.0 这个地址的路由。 |
端口是否被占用 | 检查以下监听端口是否被占用: |
网卡 | 集群和主机配置的网卡都存在。 |
硬件架构 | 节点的硬件架构(X86、ARM)必须与集群的硬件架构相同。 |
/etc/hosts | hosts 文件中无重复 IP。 |
时区 | 所有主机时区统一。 |
主机时间 | 所有主机间同步误差小于 10 秒。 |
IP 地址 | IP 地址必须存在。如果开启了 ipv6 地址,ipv6 地址也必须存在,且满足以下条件:127.0.0.1 、0:0:0:0:0:0:0:0或:: 。224.0.0.0 到 239.255.255.255 、FF 开头的 ipv6 地址。169.254.0.0/16* 地址块、fe80::/10* 地址块。255.255.255.255 。 |
IP 段 | Docker 所需网段 172.16.x.x - 172.32.x.x 的 IP 未被占用。 若该网段的 IP 已被占用且无法更改,请修改所有节点上的 Docker 的配置文件,增加 bip 参数,避免 Docker 使用被占用 IP。 |
节点联通性 | 节点及其 SSH 端口能够正常访问。 |
节点是否能访问平台 | 节点能够通过平台地址访问平台。 |
节点是否能访问平台镜像仓库 | 节点能够访问平台的镜像仓库。 |
节点 IP 是否在已配置的任一网段中 | 对于默认子网为非 underlay 场景下,节点 IP 不在已配置的任一网段(默认子网网段、容器网段、Service 网段、Join 网段)中。 |
检查 DNS | /etc/resolv.conf 文件必须存在,并且有 nameserver 的配置项,并且不允许配置 127 开头的地址。 |
检查 pki 目录 | pki 目录能为空或者不存在。 |
检查 cri 目录空间 | 检查指定目录 /var/lib/containerd 或 /var/lib 当前可用大小。 |
检查超时 | 检查默认超时时间是 110s 左右。 |
检查不能存在的目录 | /var/log/pods 目录不能存在。 |
/usr/bin 服务 | “docker”, “containerd”, “runc” 这些服务如果存在,必须在 /usr/bin 目录下。 |
支持的操作系统及 CPU 型号
架构 | CPU 型号 | 支持的操作系统 | 内核版本 | 备注(可补充内核版本) |
---|---|---|---|---|
ARM | 鲲鹏 920 | openEuler 20.03 | 4.19.90-2112.8.0.0131.oe1.aarch64 | |
银河麒麟 OS V10 SP2 | 4.19.90-17.ky10.aarch64 | Kylin Linux Advanced Server release V10 (Sword) | ||
UOS 20 | 4.19.0-arm64-server | UnionTech OS Server 20 Enterprise | ||
x86 | - | openEuler 20.03 | 4.19.90-2112.8.0.0131.oe1.x86_64 | |
Tlinux 2.4 | 4.14.105-19-0016 | 不支持IPv6 | ||
Redhat 7.8 | 3.10.0-1127.el7.x86_64 | |||
Ubuntu 20.04 | 5.4.0-100-generic | |||
CentOS 7.6、7.7、7.8、7.9 | 3.10.0-1127 <= 内核版本 <3.11 |