kubenetes集群 Master证书更新

k8s集群采用3master架构,上层haproxy+vip做负载均衡,以下脚本需人工参与(也可提前检查,无需人工参与),并且,需在每个master节点上都执行(或者自己用except做远程执行脚本,或借助ansible远程执行)。

cat kube-cert-update.sh

#!/bin/bash

# 获取今日时间
td_date=`date +%Y%m%d`
echo $td_date

# 查看证书状态
kubeadm alpha certs check-expiration
# 此处增加手动确认,比如给5秒时间,秒内输入Y,则继续脚本,否则退出脚本。
# //Todo

# 更新证书
kubeadm alpha  certs renew all

# 更新节点kubectl配置文件(这里为避免cp的alias(cp -i)的影响,使用/usr/bin/cp执行,否则还需要交互)
/usr/bin/cp /etc/kubernetes/admin.conf /root/.kube/config

# 备份apiserver、controller manager、schedule配置文件
/usr/bin/cp -r /etc/kubernetes/manifests/ /etc/kubernetes/manifests-backup-${td_date}

# 重启apiserver、controller manager、schedule
cd /etc/kubernetes/manifests
## 下面这一条命令即可执行删除pod
mv kube-apiserver.yaml kube-controller-manager.yaml kube-scheduler.yaml ../

# 睡眠5秒,等待apiserver controller scheduler的pod全部删除
sleep 5s 

# 此处增加手动确认,确认pod已删除,比如给5秒时间,秒内输入Y,则继续脚本,否则退出脚本。
# //Todo

# 查看apiserver、controller manager、schedule pod,等待当前节点相关pod删除后,还原配置文件
## 还原配置文件到目录内,即可完成恢复pod
cp ../manifests-backup-${td_date}/kube*.yaml .

sleep 5s

# 当前节点apiserver、controller manager、schedule无异常后,操作下一节点。
kubectl get pods -n kube-system -o wide |grep kube-apiserver
kubectl get pods -n kube-system -o wide |grep kube-controller-manager
kubectl get pods -n kube-system -o wide |grep kube-scheduler

# 再次查看证书状态
kubeadm alpha certs check-expiration

脚本执行完,需人工查看证书状态及apiserver、controller manager、schedule无异常,确保更新无误。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 kubeadm 工具可以自动化安装和配置 Kubernetes 集群。以下是在单节点 CentOS 7 上使用 kubeadm 安装 Kubernetes 集群的步骤: 1. 安装 Docker:在单节点上安装 Docker,这是 Kubernetes 集群所需的容器运行时。 ``` sudo yum install -y docker sudo systemctl enable docker sudo systemctl start docker ``` 2. 安装 kubeadm:kubeadm 是用于安装 Kubernetes 集群的命令行工具。 ``` sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo touch /etc/apt/sources.list.d/kubernetes.list echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubeadm ``` 3. 初始化 Kubernetes 集群:使用 kubeadm 工具初始化 Kubernetes 集群,此命令将在单节点上安装 Kubernetes 控制平面组件。 ``` sudo kubeadm init --pod-network-cidr=10.244.0.0/16 ``` 该命令将在单节点上启动 Kubernetes 控制平面组件,并在完成后输出一个 kubeadm join 命令。将此命令保存以便稍后使用。 4. 安装网络插件:安装 CNI 网络插件,以便 Kubernetes 集群中的 Pod 可以相互通信。 ``` sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 5. 加入节点(可选):如果您想将其他节点添加到 Kubernetes 集群中,请使用之前保存的 kubeadm join 命令。 ``` sudo kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash <hash> ``` <control-plane-host> 是 Kubernetes 控制平面节点的 IP 地址或主机名,<control-plane-port> 是 Kubernetes API 服务器的端口号,<token> 是用于加入节点的安全令牌,<hash> 是用于加入节点的证书哈希值。 现在,您已经在单节点上成功安装和配置了 Kubernetes 集群。您可以使用 kubectl 命令管理 Kubernetes 集群中的 Pod、服务和其他资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值