前言:因为kubeam版本是1.9.0(可用命令查询 kubeam version
参考:https://www.cnblogs.com/skymyyang/p/11093686.html

检查证书是否过期(如图)

openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ' Not '

在这里插入图片描述
已过期几个月,本编记录时间为2020-3-26

先将原先的配置文件和证书备份

cd /etc/kubernetes
//创建备份文件
mkdir ./pki_bak
mkdir ./conf_bak
//证书
mv pki/apiserver* ./pki_bak/
mv pki/front-proxy-client.* ./pki_bak/
//配置文件
mv ./admin.conf ./conf_bak/
mv ./kubelet.conf ./conf_bak/
mv ./controller-manager.conf ./conf_bak/
mv ./scheduler.conf ./conf_bak/

运行命令会重新生成证书

kubeadm alpha phase certs all --apiserver-advertise-address=主机外网IP --apiserver-cert-extra-sans=主机内网IP,主机外网IP

在这里插入图片描述

检查证书时间是否修改(如图)

openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ' Not '

在这里插入图片描述
图上显示加了一年

生成新配置文件

kubeadm alpha phase kubeconfig all --apiserver-advertise-address=主机外网IP

如果出现:

unable to get URL "https://dl.k8s.io/release/stable-1.9.txt":Get https://storage.googleapis.com/kubernetes-release/release/stable-1.9.txt: dial tcp 172.217.160.112:443: i/o timeout

说明生成新配置文件需要翻墙,因此,换成另外一种方法替代,写yaml文件,这里我的k8s版本是1.9.6(可用命令查询 kubectl version

例:

vim config.yaml

内容:

kind: MasterConfiguration
apiVersion: kubeadm.k8s.io/v1alpha1
kubernetesVersion: v1.9.6
api:
  advertiseAddress: 主机外网IP

生成新配置文件的命令替换成

kubeadm alpha phase kubeconfig all --config=config.yaml

在这里插入图片描述

将新生成的admin配置文件覆盖掉原本的admin文件(.kube是隐藏文件夹,在root下)

mv .kube/config .kube/config.old
cp -i /etc/kubernetes/admin.conf .kube/config
chown $(id -u):$(id -g) .kube/config
chmod 777 .kube/config

重新启动docker容器中的kube-apiserver,kube-controller,kube-scheduler,etcd

检查是否成功

kubectl get cs

在这里插入图片描述
以上内容希望对大家有所帮助

Logo

开源、云原生的融合云平台

更多推荐