当前位置: 首页 > 面试题库 >

重置Kubernetes集群

严锐
2023-03-14
问题内容

我的网络中有六台台式机,我想构建两个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

此后,我还安装了法兰绒。成功安装主服务器后,我继续进行kubeadm连接以添加其他两台计算机。添加这些机器之后,我在主节点上安装了NGINX-
Ingress。

现在,我想重置群集,然后再次重新进行此设置。我使用RESET
COMMAND重置每台计算机,并在主节点上执行INSTALL命令。但是,在运行INSTALL命令并运行之后,kubectl get pods --all- namespaces我仍然可以看到以前安装的吊舱:

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

为什么我看到以前安装的吊舱?


问题答案:

因此,是的,基本上,当您使用kubeadm创建单个控制平面群集时-
您正在安装具有单个控制平面节点并在其上运行单个etcd数据库的集群。

kubeadm使用的默认etcd目录/var/lib/etcd在控制平面节点上。您应该清理它,以避免恢复先前的群集配置

顺便说一句,k8s 1.15 也有同样的问题。它应该固定为1.15.1
https://github.com/kubernetes/sig-
release/blob/3a3c9f92ef484656f0cb4867f32491777d629952/releases/patch-
releases.md#115



 类似资料:
  • 在使用 TiDB 集群的过程中,如果你发现某个 Pod 存在内存泄漏等问题,需要对集群进行重启,本文描述了如何优雅滚动重启 TiDB 集群内某个组件的所有 Pod 或通过优雅重启指令来将 TiDB 集群内某个 Pod 优雅下线然后再进行重新启动。 警告: 在生产环境中,未经过优雅重启而手动删除某个 TiDB 集群 Pod 节点是一件极其危险的事情,虽然 StatefulSet 控制器会将 Pod

  • 本文介绍如何对 Kubernetes 上的集群进行初始化配置完成初始化账号和密码设置,以及批量自动执行 SQL 语句对数据库进行初始化。 注意: 如果 TiDB 集群创建完以后手动修改过 root 用户的密码,初始化会失败。 以下功能只在 TiDB 集群创建后第一次执行起作用,执行完以后再修改不会生效。 配置 TidbInitializer 请参考 TidbInitializer 示例和 API

  • 一个Kubernetes集群由分布式存储etcd、控制节点controller以及服务节点Node组成。 控制节点主要负责整个集群的管理,比如容器的调度、维护资源的状态、自动扩展以及滚动更新等 服务节点是真正运行容器的主机,负责管理镜像和容器以及cluster内的服务发现和负载均衡 etcd集群保存了整个集群的状态 详细的介绍请参考Kubernetes架构。 集群联邦 集群联邦(Federatio

  • 我是新点燃的。 步骤1:我在两个VM(ubuntu)中安装了Ignite 2.6.0,在一个VM中启动了节点。下面有COMAND。bin/ignite.sh examples/config/example-ignite.xml 步骤2:我的所有配置都在example-default.xml中 步骤3:在其他VM中执行包含datagrid逻辑的client.jar(该VM既是客户机也是节点)。 步骤

  • 本系列文档介绍使用二进制部署最新 kubernetes v1.6.2 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群。 在部署的过程中,将详细列出各组件的启动参数,它们的含义和可能遇到的问题。 部署完成后,你将理解系统各组件的交互原理,进而能快速解决实际问题。 所以本文档主要适合于那些有一定 kubernetes 基础,想通过一步步部署的方式来学习和了解系统配置、运行原理的人。

  • 根据用户部署和暴露服务的方式不同,有很多种方式可以用来访问 kubernetes 集群。 最简单也是最直接的方式是使用 kubectl 命令。 其次可以使用 kubeconfig 文件来认证授权访问 API server。 通过各种 proxy 经过端口转发访问 kubernetes 集群中的服务 使用 Ingress,在集群外访问 kubernetes 集群内的 service