交付环境要求说明

更新时间: 2023-04-06 18:08:01

本文描述ADP底座对于部署交付环境的具体要求,适用于所有底座版本。

说明

适用场景:本文主要针对选用了非ACK底座时的部署环境要求,对于ACK底座的部署,当前只支持“标准托管版”,环境要求,部署要求参见:创建Kubernetes托管版集群

另:涉及用户业务的容量规划,不在此文档要表述的范围内,需用户方自行根据业务情况,设置合适的Worker节点资源配置,可以通过ADP提供的模拟调度能力,辅助进行相关的机器资源层面规划,详见:通过模拟部署能力评估合适的集群资源配置

1. 术语说明

  • Master节点:Kubernetes集群控制节点,负责管理整个集群,包含集群元数据库(etcd),一般为3节点高可用模式,也支持单节点部署;

  • Master0节点:配置文件中的第1台Master节点,区分方法参见附录;

  • Worker节点:Kubernetes集群的工作节点,负责运行应用,数量可从0~N;

  • 配置文件:ADP底座部署、变更时使用到的集群的配置文件,里面需要填入节点IP信息、SSH登录方式等信息。

注意:Master节点在污点去除后也可以作为Worker运行,但是会对管控的性能产生影响,不推荐

2. 系统要求

目前支持的OS:

Arch

OS

x86

  • CentOS 7.5-7.9,8.0

  • RHEL 7.6-7.9

  • AliOS 7 (kernel>=4.19.91-013.ali4000)

  • Anolis 7.6-7.9,8.0-8.2

arm64

  • 银河麒麟V10(Kylin V10)

  • CentOS 7.6-7.9

  • AliOS 7 (kernel>=4.19.91-013.ali4000)

目前支持的内核:

  • 4.18.*(推荐)

  • 4.19.*

  • 3.10.*,>=3.10.0-1160

较低版本的3.10.0-957内核发现以下bug(阿里云ECS的CentOS7.6/7.7/7.8的默认版本),请已经使用了3.10.0-957的环境尽快按照链接里的方法进行修复:内核bug修复方案:网络设备引用计数泄漏

目前支持的IaaS:

  • 物理机

  • 阿里云

  • 华为云

  • 电信云

  • 易捷行云 EasyStack

  • VMWare

  • ZStack

Linux系统配置:

配置项

部署时是否会自动配置

说明

所有节点的root用户权限(ssh密码或密钥)

所有节点需配置ntpd或chronyd连接到同一时钟源

若无时钟源,使用ADP底座高级配置可以将Master0作为集群内时钟源,但无法确保与国际时间保持同步

所有节点的Hostname彼此之间不能重复

所有节点的默认路由IP必须在同一网段,配置文件使用的IP必须为节点的默认路由IP

系统工具:

netstat

ip

ifconfig

iptables

mkfs.ext4

fuser

parted

dd

umount

systemctl

yum

sysctl

modprobe

setenforce

modprobe

开启内核模块:

ip_vs

ip_vs_rr

ip_vs_wrr

ip_vs_sh

nf_conntrack

nf_conntrack_ipv4

br_netfilter

xt_set

ip6_tables

sysctl配置:

net.bridge.bridge-nf-call-iptables=1

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_fin_timeout=15

关闭SELinux

停用firewalld服务

开启iptables forward功能

关闭swap

3. 网络要求

3.1 端口开放

Master节点:

协议

端口

源地址

说明

TCP

22

Master0节点

ADP底座管控走SSH通道

TCP

179

所有节点

bgp协议

TCP

2379,2380

所有Master节点

etcd通信

TCP

5000

所有节点

ADP底座 Registry默认端口

TCP

6443

所有节点

Kubernetes API Server服务

TCP

9099

所有节点

calico通信

TCP

10250,10251,10252,10255,10256

所有节点

kubelet通信

TCP

16789

所有节点

集群巡检

TCP

30000-32767

所有节点

集群外节点(按需)

NodePort Service端口范围,集群内全部放行,集群外按需放行

Worker节点:

协议

端口

源地址

说明

TCP

22

Master0节点

ADP底座管控走SSH通道

TCP

179

所有节点

bgp协议

TCP

6443

127.0.0.1

Kubernetes API Server服务本地代理

TCP

9099

所有节点

calico通信

TCP

10250,10255,10256

所有节点

kubelet通信

TCP

30000-32767

所有节点

集群外节点(按需)

NodePort Service端口范围,集群内全部放行,集群外按需放行

3.2 硬件要求

3.3 容器网络要求

calico网络要求如下:

注:基于开源的 v3.8.2 版本,仅支持使用 IPIP overlay 的方式部署

  • 节点网络(IaaS 平台)需要放行 IPIP、BGP 报文协议;

  • BGP协议监听 179 端口。

hybridnet网络要求如下:

hybridnet 网络插件支持同一集群内同时部署 overlay 网络和 underlay 网络。overlay 和 underlay 网络的部署要求分别如下:

overlay 网络:

  • 每个节点需要开放 8472 UDP 端口、11021 TCP 端口;

  • 节点网络(IaaS 平台)需要放行节点 8472 UDP 端口。

underlay 网络:

  • 客户规划至少一个 C 的IP

    • ADP底座占用 100 个IP,其余由业务方使用

  • 如果每个节点只有一张网卡,网卡的上联交换机端口需要配置 trunk;

  • Kubernetes 使用的机器需要在同一个二层容器网络 VLAN 内;

  • 每个节点需要开放 11021 TCP 端口;

4. 节点资源要求

重要

涉及用户业务的容量规划,不在此文档要表述的范围内,需用户方自行根据业务情况,设置合适的Worker节点资源配置,可以通过ADP提供的模拟调度能力,辅助进行相关的机器资源层面规划,详见:通过模拟部署能力评估合适的集群资源配置

CPU、内存资源要求:

节点角色

节点CPU核数要求

节点内存容量要求

Master节点

>= 4核

>= 8 GiB

Worker节点

>= 1核

>= 2 GiB

磁盘资源要求:

ADP底座部署对于部署环境所在节点的磁盘,主要有2部分要求:

  • 数量、性能及容量要求

  • 所有的数据盘在ADP底座部署前均需保持“未格式化”以及“未分区”的状态

具体要求如下:

标准部署情况下,ADP底座要求每个Master节点至少具备3块磁盘(系统盘、etcd数据盘、共享数据盘),每个Worker节点至少具备2块磁盘(系统盘、共享数据盘),所有节点视业务需求挂载0~N块扩展数据盘。

磁盘类型

数量要求

用途说明

性能要求

容量要求

系统盘

1

Linux操作系统盘

推荐 [SSD 4K IOPS>=2600] 或 [SAS_HDD 企业级 SAS 硬盘 rpm>=10000] 或 [更高配置(如 NVMe)]

最小 >= 50GiB,推荐 >= 70GiB

etcd数据盘

Worker节点不需要,Master节点需要1块,当系统盘为SSD时,可以考虑与系统盘共用一块磁盘

给/var/lib/etcd 单独使用的独立块设备,存放K8s集群的元数据,其性能不稳定时可能会影响整个集群的正常运行

推荐 [SSD 4K IOPS>=3300] 或 [SAS_HDD企业级SAS硬盘rpm>=10000] 或 [更高配置(如NVMe)

最小 >= 20GiB,推荐 >= 50GiB

共享数据盘

1

从中分出一部分(默认400GiB)供Docker和Kubelet使用,多余空间(如有)加入本地存储池供业务创建存储卷(PV)使用

推荐 [SAS_HDD企业级SAS硬盘rpm>=10000] 或 [更高配置(如NVMe)]

最小 >= 200GiB,推荐 >= 400GiB

扩展数据盘

0~N

全部空间加入本地存储池供业务创建存储卷(PV)使用,请根据业务对存储的需求量酌情准备磁盘

推荐 [SAS_HDD企业级SAS硬盘rpm>=10000] 或 [更高配置(如NVMe)]

视业务需求而定

典型场景下的磁盘规划建议:

典型场景

磁盘规划建议

场景1,适用磁盘空间充裕,稳定性要求高的客户(此场景为ADP产品推荐场景)

  • 系统盘:容量 >= 50GiB,SSD/NVMe

  • etcd数据盘:容量 >= 20GiB,SSD/NVMe,挂载/var/lib/etcd

  • 共享数据盘:容量 >= 1TiB,SSD/NVMe/HDD,挂载/var/lib/docker、/var/lib/kubelet、本地存储池(如有多余空间)

场景2,适用磁盘空间较充裕,稳定性要求较高的客户

(此场景ADP底座的etcd软件复用系统盘,当系统盘IOPS性能较低时,存在ADP底座管控面稳定性风险)

  • 系统盘:容量 >= 70GiB,SSD/NVMe

    • 留 20GiB 容量给/var/lib/etcd

  • 共享数据盘:容量 >= 400GiB,SSD/NVMe/HDD,挂载/var/lib/docker、/var/lib/kubelet、本地存储池(如有多余空间)

场景3,适用磁盘空间紧张,稳定性要求低的客户

(此场景ADP底座的etcd、docker、业务应用等均复用系统盘,当系统盘IOPS性能较低时,存在较大ADP底座管控面稳定性风险)

  • 系统盘:容量 >=70GiB,SSD/NVMe

    • 留 20GiB 容量给/var/lib/etcd

    • 分区给/var/lib/docker

    • 分区给/var/lib/kubelet

    • 分区给本地存储池(如有多余空间)

5. 软件要求

容器运行时

请确保部署前的环境中没有dockerd/containerd,ADP底座在部署Kubernetes集群时会安装它们作为容器运行时;环境里已有的dockerd/containerd在部署时会被覆盖,其上的容器也会被清理;

请不要脱离Kubernetes使用容器运行时,ADP底座在清理时会清理dockerd/containerd纳管的所有容器。

Kubernetes Daemon

请确保部署前的环境没有kubelet/kubectl/kubeadm/kubernetes-cni,ADP底座在部署Kubernetes集群时会安装它们作为Kubernetes Daemon套件;环境里已有的Daemon套件在部署时会被覆盖,如果这原来是一套Kubernetes集群,它将不再可用;

附录

Master0是哪个节点

在ADP平台的global.yaml中:

image

阿里云首页 云原生应用交付平台 相关技术圈