k8s 高可用集群:导读
Kubernetes(k8s)高可用集群:导读
说明
Master(Control Plane) 的 kube-apiserver、kube-controller-manager、kube-scheduler 服务至少有3个节点
Master(Control Plane) 启用基于CA认证的HTTPS安全机制
Master(Control Plane) 启用RBAC授权模式
etcd 至少部署3个节点
etcd 启用基于CA认证的HTTPS安全机制
NFS(Network File System)网络文件系统采用双机热备
高可用集群参考:《Kubernetes权威指南》第5版(书中介绍的是1.19,本文以 1.26.2 为例,2023-03-01 发布)、官方文档
官方文档
集群机器配置
推荐负载均衡器与各节点在一个网段上
Master 1、etcd 1 | Master 2、etcd 2 | Master 3、etcd 3 | 负载均衡器 | Node 1 | Node 2 |
---|---|---|---|---|---|
192.168.80.81 | 192.168.80.82 | 192.168.80.83 | 192.168.80.100 | 192.168.80.91 | 192.168.80.92 |
NFS 1 | NFS 2 |
---|---|
192.168.80.71 | 192.168.80.72 |
全局环境变量
shell
# Master(Control Plane)IP
MASTER_1_IP=192.168.80.81
MASTER_2_IP=192.168.80.82
MASTER_3_IP=192.168.80.83
# VIP,负载均衡器IP
VIP_IP=192.168.80.100
# Network File System 网络文件系统,如果没有这么多机器用于实施,可将 NFS 高可用安装在 Master 或者 Node 节点
NFS_1_IP=192.168.80.71
NFS_2_IP=192.168.80.72
# 网卡名称
INTERFACE_NAME=ens33
单机集群配置需求参考
- Kubernetes 1.26.2
- calico 3.26
- etcd 3.5.6-0 单机
- 基础内存合计:使用 CentOS 7.9 最小化安装,包含系统内存消耗,基础内存共消耗 1.2G
高可用集群配置需求参考
- kubernetes 1.26.2
- calico 3.26
- kubernetes-dashboard 2.7.0(大概需要 150M,可选)
- kube-prometheus 0.12.0(大概需要 5.25G,可选)
- metrics-server 0.6.3 高可用(可选)
- etcd 3.5.6-0 高可用:内部堆叠
- ingress-nginx 1.8.0(4个工作节点,每个工作节点运行1个,大概需要 2.68G,可选)
- keepalived、haproxy:15M * 3 = 45M
- 高可用基础内存合计:三个主节点(高可用最少需要三个主节点)、四个工作节点(高可用最少需要两个工作节点)、以上 kubernetes 组件,未计算系统内存消耗,基础内存共消耗 14.25G(使用
kubectl top node
计算所得,所有节点开机30分钟后统计)- Daemon Sets:1.49G
- Deployments:1.39G
- Pods:6.38G
- Replica Sets:1.38G
- Stateful Sets:1.87G