-
k8s版本: v1.29.2
-
通过kube-vip实现控制平面的高可用
-
集成ingress-nginx、nfs、kuboard、prometheus等常用组件
-
网络插件支持calico、cilium
-
amd64、arm64架构(逐渐完善中.....)
+----------------------+ +----------------------+ +----------------------+
| master-1 | | master-2 | | master-3 |
+----------------------+ +----------------------+ +----------------------+
| apiserver <---------+--------> apiserver <---------+----------> apiserver |
+----------------------+ | +----------------------+ +----------------------+
| | | | | | |
+----------+ +---------+ | +---------+ +----------+ +---------+ +----------+
|controller| |scheduler| | |scheduler| |controller| |scheduler| |controller|
+----+-----------+-----+ | +------+----------+----+ +------+----------+----+
| | | | |
-----v-----------v--------------^--------------v-----------v---------------------------v----------------------
| |
| +-------------------+-------------------------+------------------+ +-------------------+--------------------|
| | | | | | |
| | | KUBE-VIP | | |
| | | | | | |
| | | | | | |
| +-----------------------+--------^----------------------------+----------------------+ +--------------------|
| | |
-----v-----------v--------------^--------------v-----------v---------------------------v----------------------
| | | | |
+---+-----------+----+ +---+-----------+----+ +---+-----------+----+
| kubelet| kube-proxy| | kubelet |kube-proxy|kubelet |kube-proxy|
+-------+ +----------+ +-------+ +----------+ +-------+ +----------+
| | | | | |
+--------------------+ +--------------------+ +--------------------+
| node-1 | | node-2 | | node-3 |
+--------------------+ +--------------------+ +--------------------+
-
单master
-
多master高可用
-
ansible自动化部署(需要各个服务器的root权限)
-
操作系统:
-
建议内核版本>=5.10
-
内网建议有ntp服务
-
-
服务器:
建议配置:
- 1台harbor (建议可以联网)
- 1台nfs
- 3台master
- 2台node节点
-
配置要求
- master: cpu cores >= 4, mem >= 16G, 两块数据盘,一块做为containerd数据盘,另一块做为etcd和集群备份
- node: cpu cores >= 8, mem >= 32G, 一块数据盘
- nfs: cpu cores >= 4, mem >= 8G,一块nfs数据盘
- harbor: cpu cores >= 4, mem >= 8G,一块镜像存储数据盘
- k8s以及nfs节点需要通harbor的443端口拉取镜像
- k8s以及nfs节点需要通harbor的38088端口拉取离线包
- 服务器操作需使用root账户
假设只有harbor可以通外网,harbor做为ntp服务器,其他节点通过harbor同步时间
harbor配置
# 服务端
# apt install chrony -y
yum install chrony -y
cat > /etc/chrony.conf << EOF
pool ntp.aliyun.com iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 192.168.1.0/24
local stratum 10
keyfile /etc/chrony.keys
leapsectz right/UTC
logdir /var/log/chrony
EOF
systemctl restart chronyd ; systemctl enable chronyd
其他服务器配置
# apt install chrony -y
yum install chrony -y
cat > /etc/chrony.conf << EOF
pool 192.168.1.31 iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
keyfile /etc/chrony.keys
leapsectz right/UTC
logdir /var/log/chrony
EOF
systemctl restart chronyd ; systemctl enable chronyd
#使用客户端进行验证
chronyc sources -v
# 参数解释
#
# pool ntp.aliyun.com iburst
# 指定使用ntp.aliyun.com作为时间服务器池,iburst选项表示在初始同步时会发送多个请求以加快同步速度。
#
# driftfile /var/lib/chrony/drift
# 指定用于保存时钟漂移信息的文件路径。
#
# makestep 1.0 3
# 设置当系统时间与服务器时间偏差大于1秒时,会以1秒的步长进行调整。如果偏差超过3秒,则立即进行时间调整。
#
# rtcsync
# 启用硬件时钟同步功能,可以提高时钟的准确性。
#
# allow 192.168.0.0/24
# 允许192.168.0.0/24网段范围内的主机与chrony进行时间同步。
#
# local stratum 10
# 将本地时钟设为stratum 10,stratum值表示时钟的准确度,值越小表示准确度越高。
#
# keyfile /etc/chrony.keys
# 指定使用的密钥文件路径,用于对时间同步进行身份验证。
#
# leapsectz right/UTC
# 指定时区为UTC。
#
# logdir /var/log/chrony
# 指定日志文件存放目录。
网络插件
- 默认是cilium的native-routing-eBPF-Host-Routing,对于云服务如果不支持则需要vxlan模式,或者使用calico
- 对于centos7等系统,则必须升级内核版本,否则会导致bpf挂载不上
软件包可以放在harbor服务器,或者直接上传至各个服务器上
集群安装,以下三选一
如果各个节点没有yum仓库,可以通过有公网的站点拉取rpm包,然后拷贝到目标服务器上进行安装