重置 Kubernetes 集群
Reset Kubernetes cluster
我的网络中有六台台式机,我想构建两个 Kubernetes 集群。每台机器都安装了 Ubuntu 16.04 LTS。最初,所有机器都是单个集群的一部分。但是,我删除了其中三台机器来设置另一个集群,并在每台机器上执行以下命令:
RESET COMMAND:
sudo kubeadm reset -f &&
sudo systemctl stop kubelet &&
sudo systemctl stop docker &&
sudo rm -rf /var/lib/cni/ &&
sudo rm -rf /var/lib/kubelet/* &&
sudo rm -rf /etc/cni/ &&
sudo ifconfig cni0 down &&
sudo ifconfig flannel.1 down &&
sudo ifconfig docker0 down &&
sudo ip link delete cni0 &&
sudo ip link delete flannel.1
在此之后我重新启动了每台机器,并通过设置主节点继续设置新集群:
INSTALL COMMAND:
sudo kubeadm init phase certs all &&
sudo kubeadm init phase kubeconfig all &&
sudo kubeadm init phase control-plane all --pod-network-cidr 10.244.0.0/16 &&
sudo sed -i 's/initialDelaySeconds: [0-9][0-9]/initialDelaySeconds: 240/g' /etc/kubernetes/manifests/kube-apiserver.yaml &&
sudo sed -i 's/failureThreshold: [0-9]/failureThreshold: 18/g' /etc/kubernetes/manifests/kube-apiserver.yaml &&
sudo sed -i 's/timeoutSeconds: [0-9][0-9]/timeoutSeconds: 20/g' /etc/kubernetes/manifests/kube-apiserver.yaml &&
sudo kubeadm init \
--v=1 \
--skip-phases=certs,kubeconfig,control-plane \
--ignore-preflight-errors=all \
--pod-network-cidr 10.244.0.0/16
之后我也安装了flannel。 master 安装成功后,我继续 kubeadm join 添加另外两台机器。添加这些机器后,我在master节点上安装了NGINX-Ingress。
现在,我想重置集群并重新设置。我使用 RESET COMMAND 重置了每台机器,并在主节点上继续执行 INSTALL 命令。但是,在我 运行 安装命令和 运行 kubectl get pods --all-namespaces
之后,我仍然可以看到之前安装的 pods:
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-fb8b8dccf-h5hhk 0/1 ContainerCreating 1 20h
kube-system coredns-fb8b8dccf-jblmv 0/1 ContainerCreating 1 20h
kube-system etcd-ubuntu6 1/1 Running 0 19h
kube-system kube-apiserver-ubuntu6 1/1 Running 0 76m
kube-system kube-controller-manager-ubuntu6 0/1 CrashLoopBackOff 7 75m
kube-system kube-flannel-ds-amd64-4pqq6 1/1 Running 0 20h
kube-system kube-flannel-ds-amd64-dvfmp 0/1 CrashLoopBackOff 7 20h
kube-system kube-flannel-ds-amd64-dz9st 1/1 Terminating 0 20h
kube-system kube-proxy-9vfjx 1/1 Running 0 20h
kube-system kube-proxy-q5c86 1/1 Running 0 20h
kube-system kube-proxy-zlw4v 1/1 Running 0 20h
kube-system kube-scheduler-ubuntu6 1/1 Running 0 76m
nginx-ingress nginx-ingress-6957586bf6-fg2tt 0/1 Terminating 22 19h
为什么我会看到之前安装的 pods?
所以是的,基本上当您使用 kubeadm 创建单个 control-plane 集群时 - 您正在安装具有单个 control-plane 节点和单个 etcd 数据库的集群 运行 就可以了。
kubeadm 使用的默认 etcd 目录是 control-plane 节点上的 /var/lib/etcd
。您应该清理它以避免恢复以前的集群配置。
顺便说一句,有相同的 for k8s 1.15. And it should be fixed 1.15.1 https://github.com/kubernetes/sig-release/blob/3a3c9f92ef484656f0cb4867f32491777d629952/releases/patch-releases.md#115
我的网络中有六台台式机,我想构建两个 Kubernetes 集群。每台机器都安装了 Ubuntu 16.04 LTS。最初,所有机器都是单个集群的一部分。但是,我删除了其中三台机器来设置另一个集群,并在每台机器上执行以下命令:
RESET COMMAND:
sudo kubeadm reset -f &&
sudo systemctl stop kubelet &&
sudo systemctl stop docker &&
sudo rm -rf /var/lib/cni/ &&
sudo rm -rf /var/lib/kubelet/* &&
sudo rm -rf /etc/cni/ &&
sudo ifconfig cni0 down &&
sudo ifconfig flannel.1 down &&
sudo ifconfig docker0 down &&
sudo ip link delete cni0 &&
sudo ip link delete flannel.1
在此之后我重新启动了每台机器,并通过设置主节点继续设置新集群:
INSTALL COMMAND:
sudo kubeadm init phase certs all &&
sudo kubeadm init phase kubeconfig all &&
sudo kubeadm init phase control-plane all --pod-network-cidr 10.244.0.0/16 &&
sudo sed -i 's/initialDelaySeconds: [0-9][0-9]/initialDelaySeconds: 240/g' /etc/kubernetes/manifests/kube-apiserver.yaml &&
sudo sed -i 's/failureThreshold: [0-9]/failureThreshold: 18/g' /etc/kubernetes/manifests/kube-apiserver.yaml &&
sudo sed -i 's/timeoutSeconds: [0-9][0-9]/timeoutSeconds: 20/g' /etc/kubernetes/manifests/kube-apiserver.yaml &&
sudo kubeadm init \
--v=1 \
--skip-phases=certs,kubeconfig,control-plane \
--ignore-preflight-errors=all \
--pod-network-cidr 10.244.0.0/16
之后我也安装了flannel。 master 安装成功后,我继续 kubeadm join 添加另外两台机器。添加这些机器后,我在master节点上安装了NGINX-Ingress。
现在,我想重置集群并重新设置。我使用 RESET COMMAND 重置了每台机器,并在主节点上继续执行 INSTALL 命令。但是,在我 运行 安装命令和 运行 kubectl get pods --all-namespaces
之后,我仍然可以看到之前安装的 pods:
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-fb8b8dccf-h5hhk 0/1 ContainerCreating 1 20h
kube-system coredns-fb8b8dccf-jblmv 0/1 ContainerCreating 1 20h
kube-system etcd-ubuntu6 1/1 Running 0 19h
kube-system kube-apiserver-ubuntu6 1/1 Running 0 76m
kube-system kube-controller-manager-ubuntu6 0/1 CrashLoopBackOff 7 75m
kube-system kube-flannel-ds-amd64-4pqq6 1/1 Running 0 20h
kube-system kube-flannel-ds-amd64-dvfmp 0/1 CrashLoopBackOff 7 20h
kube-system kube-flannel-ds-amd64-dz9st 1/1 Terminating 0 20h
kube-system kube-proxy-9vfjx 1/1 Running 0 20h
kube-system kube-proxy-q5c86 1/1 Running 0 20h
kube-system kube-proxy-zlw4v 1/1 Running 0 20h
kube-system kube-scheduler-ubuntu6 1/1 Running 0 76m
nginx-ingress nginx-ingress-6957586bf6-fg2tt 0/1 Terminating 22 19h
为什么我会看到之前安装的 pods?
所以是的,基本上当您使用 kubeadm 创建单个 control-plane 集群时 - 您正在安装具有单个 control-plane 节点和单个 etcd 数据库的集群 运行 就可以了。
kubeadm 使用的默认 etcd 目录是 control-plane 节点上的 /var/lib/etcd
。您应该清理它以避免恢复以前的集群配置。
顺便说一句,有相同的