解决方案:
第一步:删除前一次初始化产生的文件及文件夹
rm -rf /etc/kubernetes/*
rm -rf ~/.kube/*
rm -rf /var/lib/etcd/*
第二步:停用前一次初始化占用的端口
(对照自己的报错提示信息,哪个占用就停哪个,别乱复制粘贴)
lsof -i :6443|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :10250|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :10257|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :10259|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :2379|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :2380|grep -v "PID"|awk '{print "kill -9",$2}'|sh
如果执行停用端口命令报错如下,就执行以下命令,没遇到这个错误,就跳过直接进行第三步:重启kubeadm:
执行以下命令:
yum install lsof
结果如下:
完成后继续执行第二步停用端口命令操作即可。
第三步:重启kubeadm
执行命令:
kubeadm reset
如果继续报类似下面这种错误,仔细看提示信息,会告诉你应该怎么做,我这里提示需要删除:[/var/lib/kubelet /var/lib/dockershim /var/run/kubernetes /var/lib/cni]
继续删除 (根据你的提示进行操作,不要急着全复制)
除了新增的提示操作,把第一二步的删除目录操作和停用端口也都重新执行一遍:
[root@master ~]# rm -rf /var/lib/kubelet/
[root@master ~]# rm -rf /var/lib/dockershim/
[root@master ~]# rm -rf /var/run/kubernetes
[root@master ~]# rm -rf /var/lib/cni
[root@master ~]# rm -rf /etc/kubernetes/*
[root@master ~]# rm -rf ~/.kube/*
[root@master ~]# rm -rf /var/lib/etcd/*
[root@master ~]# lsof -i :6443|grep -v "PID"|awk '{print "kill -9",$2}'|sh
[root@master ~]# lsof -i :10257|grep -v "PID"|awk '{print "kill -9",$2}'|sh
[root@master ~]# lsof -i :10259|grep -v "PID"|awk '{print "kill -9",$2}'|sh
[root@master ~]# lsof -i :2379|grep -v "PID"|awk '{print "kill -9",$2}'|sh
[root@master ~]# lsof -i :2380|grep -v "PID"|awk '{print "kill -9",$2}'|sh
再次重启kubeadm
执行命令:
kubeadm reset
第四步:初始化k8s
kubeadm init --apiserver-advertise-address 172.17.184.217 --pod-network-cidr=10.244.0.0/16 --kubernetes-version=1.18.1
截图之前还有很大一段输出,这里就不截图了。。。。
看到这一段初始化就成功了。
别大意,把上图中红框圈起来部分的底部token信息保存好:
kubeadm join 172.17.184.217:6443 --token 1tu02o.dgrgoc0eir12het8
–discovery-token-ca-cert-hash sha256:dc7d52c51964c502388450d5ca033778c5fe31f0900a84a73b39a4b413ef5939
这里别复制我的,把你自己的复制出来,保存好,我们后面将其他node节点加入到该集群中需要使用到它。
第五步:配置k8s环境变量
命令:
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
第六步:设置POD网络
命令:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
网络不好这一步耐心等一等,别着急,正确结果如下:
继续执行命令:
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
验证POD网络是否设置好了
命令:
ifconfig
结果如下:
截图下面还有很长一段,这里省略了。
第七步:查看污点,删除污点
kubectl describe node master|grep -i taints
结果如下:
kubectl taint nodes master node-role.kubernetes.io/master-node/master untainted
第八步:查看节点
kubectl get node
master刚刚初始化好,肯定只有一个master节点:
master节点已经是ready状态了。
到这里master节点已经重新初始化好了。
下篇文章: docker+jenkins+k8s集群搭建系列四、node节点安装k8s并加入集群 讲解配置node节点安装k8s并将node节点加入集群
更多推荐