基于 kubeadm 搭建高可用的kubernetes 1.18.2 (k8s)集群二 搭建高可用集群
2021-02-15 11:20
标签:journal service 加入集群 初始化 ica cal this tca des 我们使用calico官方的安装方式来部署,请参阅下面的地址 Calico配置文件说明 基于 kubeadm 搭建高可用的kubernetes 1.18.2 (k8s)集群二 搭建高可用集群 标签:journal service 加入集群 初始化 ica cal this tca des 原文地址:https://www.cnblogs.com/itgiser/p/12984584.html1. 部署keepalived - apiserver高可用(任选两个master节点)
1.1 安装keepalived
# 在两个主节点上安装keepalived(一主一备)
$ yum install -y keepalived
1.2 创建keepalived配置文件
# 创建目录
$ ssh
1.3 启动keepalived
# 分别在master和backup上启动服务
$ systemctl enable keepalived && service keepalived start
# 检查状态
$ systemctl status keepalived
# 查看日志
$ journalctl -f -u keepalived
# 查看虚拟ip
$ ip a
2. 部署第一个主节点
# 准备配置文件
$ scp target/configs/kubeadm-config.yaml
3. 部署网络插件 - calico
# 创建目录(在配置了kubectl的节点上执行)
$ mkdir -p /etc/kubernetes/addons
# 上传calico配置到配置好kubectl的节点(一个节点即可)
$ scp target/addons/calico*
4. 加入其它master节点
# 使用之前保存的join命令加入集群
$ kubeadm join ...
# 例如:
$ kubeadm join 172.16.249.133:6443 --token 8mr8km.w3ucsw6gbq50ffpw --discovery-token-ca-cert-hash sha256:b7eb3ab4c45577386a6801e166aa7d844a246b5afcaf7890126e1a95bfad3d30 --control-plane --certificate-key d5c80e1843f6b0f5eddb0c88d215390dbe2c0ef6d4f6b63463b3c2ef6dfd726e
# 耐心等待一会,并观察日志
$ journalctl -f
# 查看集群状态
# 1.查看节点
$ kubectl get nodes
# 2.查看pods
$ kubectl get pods --all-namespaces
# 遇到问题
# certificate-key 默认2小时的有效期,如果过期按照提示重新生成
error execution phase control-plane-prepare/download-certs: error downloading certs: error downloading the secret: Secret "kubeadm-certs" was not found in the "kube-system" Namespace. This Secret might have expired. Please, run `kubeadm init phase upload-certs --upload-certs` on a control plane to generate a new one
# 使用命令重新生成 certificate-key
# 用新证书替换--certificate-key后面的内容
# 如上面的命令中的:d5c80e1843f6b0f5eddb0c88d215390dbe2c0ef6d4f6b63463b3c2ef6dfd726e
$ kubeadm init phase upload-certs --upload-certs
[upload-certs] Using certificate key:
a542b8308394773278da70ab0d11914f6e048fcd73524ecfef56b3633a39d3f1
5. 加入worker节点
# 使用之前保存的join命令加入集群
$ kubeadm join ...
# 例如
$ kubeadm join 172.16.249.133:6443 --token 8mr8km.w3ucsw6gbq50ffpw --discovery-token-ca-cert-hash sha256:b7eb3ab4c45577386a6801e166aa7d844a246b5afcaf7890126e1a95bfad3d30
# 耐心等待一会,并观察日志
$ journalctl -f
# 查看节点
$ kubectl get nodes
# 重新添加节点
# 默认情况下,kubeadm init产生的token的有效期是24个小时,在一天之后才kubeadm join的,用下面的命令来重新产生token
$ kubeadm token create --certificate-key xxxx --print-join-command
例如
kubeadm token create --certificate-key a542b8308394773278da70ab0d11914f6e048fcd73524ecfef56b3633a39d3f1 --print-join-command
# 直接使用 kubeadm token create --print-join-command 也可以
文章标题:基于 kubeadm 搭建高可用的kubernetes 1.18.2 (k8s)集群二 搭建高可用集群
文章链接:http://soscw.com/index.php/essay/55631.html