1、初始化系统
原文地址:【云原生】k8s节点系统初始化+内核优化 - (sreok.cn)
2、安装容器运行时
containerd原文地址:【笔记】使用Containerd作为Kubernetes Runtime - (sreok.cn)
docker原文地址:【笔记】使用Docker作为Kubernetes Runtime - (sreok.cn)
3、安装k8s工具
1 | # 指定安装的k8s工具版本,版本查看:https://mirrors.aliyun.com/kubernetes-new/core/stable/ |
1 | cat > /etc/yum.repos.d/kubernetes.repo << EOF |
1 | yum install -y kubelet kubeadm kubectl |
4、高可用负载入口
单主集群跳过此步骤
方式一: kube-vip
原文地址:【云原生】高可用负载方案:使用kube-vip作为控制平面负载入口 - (sreok.cn)
方式二:Keepalived + HAProxy
原文地址:【云原生】高可用负载方案:使用Keepalived + HAProxy作为控制平面负载入口 - (sreok.cn)
5、初始化集群
可选一:单节点-不支持ipv6双协议栈
不支持新增控制平面,因为控制平面的IP已经固定
仅支持外部解析ipv4地址访问业务
1 | cat > kubeadm.yml << EOF |
可选二:单节点-支持ipv4/ipv6双协议栈
不支持新增控制平面,因为控制平面的IP已经固定
支持外部解析ipv4/ipv6地址访问业务
1 | cat > kubeadm.yml << EOF |
可选三:高可用-不支持ipv6双协议栈
支持新增控制平面,api-server通过负载ip访问,控制平面高可用
仅支持外部解析ipv4地址访问业务
1 | kubeadm config print init-defaults > kubeadm.yml |
1 | cat > kubeadm.yml << EOF |
1 | kubeadm init --config=kubeadm.yml --upload-certs |
**可选四:高可用-**支持ipv4/ipv6双协议栈
支持新增控制平面,api-server通过负载ip访问,控制平面高可用
支持外部解析ipv4/ipv6地址访问业务
1 | cat > kubeadm.yml << EOF |
1 | kubeadm init --config=kubeadm.yml --upload-certs |
需要注意:上面无论是单节点还是高可用,初始化后都是单节点,高可用可以在后面操作新增控制节点。
配置命令行
1 | mkdir -p $HOME/.kube |
新增工作节点
1 | # 生成加入节点命令 |
新增控制节点
1 | # 生成加入节点命令 |
1 | # 生成控制节点certificate-key |
通过--control-plane --certificate-key
拼接命令
kubeadm join 10.20.13.100:6443 –token abcdef.0123456789abcdef –discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxx –control-plane –certificate-key xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
安装命令自动补齐
1 | yum install bash-completion -y |
6、安装CNI插件
原文地址:【云原生】Kubernetes 安装CNI插件calico并设置双协议栈- (sreok.cn)
卸载集群
1 | kubeadm reset -f |