报错
[ERROR Port-10259]: Port 10259 is in use
[ERROR Port-10257]: Port 10257 is in use
[ERROR FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml]: /etc/kubernetes/manifests/kube-apiserver.yaml already exists
[ERROR FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml]: /etc/kubernetes/manifests/kube-controller-manager.yaml already exists
[ERROR FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml]: /etc/kubernetes/manifests/kube-scheduler.yaml already exists
[ERROR FileAvailable--etc-kubernetes-manifests-etcd.yaml]: /etc/kubernetes/manifests/etcd.yaml already exists
[ERROR Port-10250]: Port 10250 is in use
1. 重置之前的集群状态
在进行新的 kubeadm init
之前,确保清理掉旧的 Kubernetes 配置和数据。
使用 kubeadm reset
命令重置之前的 Kubernetes 集群状态:
sudo kubeadm reset -f
这将删除之前初始化的集群配置和数据。你会看到类似以下的输出:
[reset] Reading configuration from the cluster...
[reset] Deleting cluster configuration from the cluster...
[reset] Deleting files from the stateful paths...
[reset] Deleting contents of the directories:
[/etc/kubernetes/manifests /var/lib/etcd /var/lib/kubelet /var/lib/dockershim /var/run/kubernetes]
只用执行到这就行下面不用管
2. 删除残留文件
重置后,手动删除残留的配置文件和目录:
sudo rm -rf /etc/kubernetes/
sudo rm -rf /var/lib/etcd
sudo rm -rf ~/.kube/
这些命令会删除 Kubernetes 的配置文件和 Etcd 的数据。
3. 重启 Docker 和 Kubelet
重启 Docker 和 Kubelet 服务,确保没有残留的进程或缓存:
sudo systemctl restart docker
sudo systemctl restart kubelet
4. 再次初始化 Kubernetes 集群
现在,可以再次运行 kubeadm init
:
sudo kubeadm init \
--apiserver-advertise-address=47.120.22.111 \
--image-repository=registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.18.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16