重置kubernetes集群

简介: 重置kubernetes集群

重启 (work 和master 都需要执行)


1、kubeadm reset


master 节点reset之后,需要手动删除 $HOME/.kube 这个目录,这个目录是旧集群的配置信息。

2、执行init


kubeadm init  --apiserver-advertise-address=10.50.10.187  --control-plane-endpoint=cluster-endpoint  --image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images  --kubernetes-version v1.20.9  --service-cidr=10.96.0.0/16  --pod-network-cidr=192.168.0.0/16

此步骤报错基本都是reset不彻底,端口占用等问题. 在reset完之后需要先将kubelet 启动起来.

3、配置文件

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

worker 节点上加入

4、将node节点加入集群


kubeadm join cluster-endpoint:6443 --token lgmx3u.1kurxaj26csfsddk --discovery-token-ca-cert-hash sha256:3a263d320bbe1ce863e851812cc663885be3adf6614e72fa4500a3809121bdae

报错

  解决:
  1、rm -f /etc/kubernetes/kubelet.conf /etc/kubernetes/pki/ca.crt
  2、systemctl restart kubelet
  重启kubelet报错排查(刚开始忘记在worker节点reset了,如果在worker节点上先reset就不会有后面这些问题了)
  journalctl -xefu kubelet  # 可以查看kubelet日志
  ERROR: failed to run Kubelet: misconfiguration: kubelet cgroup driver: "systemd" is different from docker cgroup driver: "cgroupfs"
      发现kubelet cgroup driver与docker cgroup driver 不一致    
      s]# docker info|grep "Cgroup Driver"
      Cgroup Driver: cgroupfs

docker: Error response from daemon: OCI runtime create failed: systemd cgroup flag passed, but systemd support for managing cgroups is not available: unknown.

  解决: 修改docker 的配置文件和k8s一致
  kubelet cgroup driver配置: /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
  修改docker,只需在/etc/docker/daemon.json中,添加"exec-opts": ["native.cgroupdriver=systemd"]即可。
  重启docker cgreoup驱动变成了systemd

重新执行kubeadm join如下报错:

[kubelet-check] Initial timeout of 40s passed.

timed out waiting for the condition

error uploading crisocket

到这里才知道原来worker节点也需要reset,因为master 执行了kubelet reset集群的名字变了,所以join时找不到会超时。


worker 节点上执行kubelet reset worker节点顺利加入


参考:

1、https://www.cnblogs.com/hellxz/p/kubelet-cgroup-driver-different-from-docker.html

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
9天前
|
Kubernetes 监控 Cloud Native
Kubernetes集群的高可用性与伸缩性实践
Kubernetes集群的高可用性与伸缩性实践
36 1
|
30天前
|
JSON Kubernetes 容灾
ACK One应用分发上线:高效管理多集群应用
ACK One应用分发上线,主要介绍了新能力的使用场景
|
1月前
|
Kubernetes 持续交付 开发工具
ACK One GitOps:ApplicationSet UI简化多集群GitOps应用管理
ACK One GitOps新发布了多集群应用控制台,支持管理Argo CD ApplicationSet,提升大规模应用和集群的多集群GitOps应用分发管理体验。
|
1月前
|
Kubernetes Cloud Native 云计算
云原生之旅:Kubernetes 集群的搭建与实践
【8月更文挑战第67天】在云原生技术日益成为IT行业焦点的今天,掌握Kubernetes已成为每个软件工程师必备的技能。本文将通过浅显易懂的语言和实际代码示例,引导你从零开始搭建一个Kubernetes集群,并探索其核心概念。无论你是初学者还是希望巩固知识的开发者,这篇文章都将为你打开一扇通往云原生世界的大门。
124 17
|
1月前
|
Kubernetes 应用服务中间件 nginx
搭建Kubernetes v1.31.1服务器集群,采用Calico网络技术
在阿里云服务器上部署k8s集群,一、3台k8s服务器,1个Master节点,2个工作节点,采用Calico网络技术。二、部署nginx服务到k8s集群,并验证nginx服务运行状态。
603 1
|
1月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
76 3
|
1月前
|
Kubernetes Cloud Native 微服务
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
114 1
|
1月前
|
负载均衡 应用服务中间件 nginx
基于Ubuntu-22.04安装K8s-v1.28.2实验(二)使用kube-vip实现集群VIP访问
基于Ubuntu-22.04安装K8s-v1.28.2实验(二)使用kube-vip实现集群VIP访问
57 1
|
1月前
|
Kubernetes Cloud Native Ubuntu
云原生之旅:Kubernetes集群搭建与应用部署
【8月更文挑战第65天】本文将带你进入云原生的世界,通过一步步指导如何在本地环境中搭建Kubernetes集群,并部署一个简单的应用。我们将使用Minikube和Docker作为工具,探索云原生技术的魅力所在。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和实践技巧。
|
2月前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
下一篇
无影云桌面