k8s集群添加master节点报control plane 错误

天翼云开发者社区
• 阅读 3

本文分享自天翼云开发者社区《k8s集群添加master节点报control plane 错误》,作者:SummerSnow

背景介绍

在刚部署的k8s集群中添加新的master节点时,报了error execution phase preflight: One or more conditions for hosting a new control plane instance is not satisfied的错误,接下来就针对此问题进行解决说明。

环境介绍

k8s版本

  kubectl version
 Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.5", GitCommit:"xxx", GitTreeState:"clean", BuildDate:"2022-03-16T15:58:47Z", GoVersion:"go1.17.8", Compiler:"gc", Platform:"linux/amd64"}

部署方式 kubeadm 当前节点信息

  kubectl get node
 NAME          STATUS   ROLES                  AGE     VERSION
 k8s-master1   Ready    control-plane,master   24h     v1.23.5

master节点加入

  #第1步 打印加入集群的相关信息
 kubeadm token create --print-join-command
 kubeadm join xx.xx.xx.xx:6443 --token xxxx.xxxx --discovery-token-ca-cert-hash sha256:xxx
 ​
 #第2步 打印加入master的certs信息
 kubeadm init phase upload-certs --upload-certs
 I0520 14:51:22.848075    1096 version.go:255] remote version is much newer: v1.30.1; falling back to: stable-1.23
 [upload-certs] Storing the certificates in Secret "kubeadm-certs" in the "kube-system" Namespace
 [upload-certs] Using certificate key:
 aaaaaxxxxxxxxxxxxxxxxxx
 ​
 #第3步 信息拼接(第一步和第二步)
 kubeadm token create --print-join-command
 kubeadm join xx.xx.xx.xx:6443 --token xxxx.xxxx --discovery-token-ca-cert-hash sha256:xxx --control-plane --certificate-key aaaaaxxxxxxxxxxxxxxxxxx
 ​
 #第4步 在待加入节点上执行上面第3步的命令,然后报错信息如下:
 [preflight] Running pre-flight checks
     [WARNING Hostname]: hostname "xxx" could not be reached
     [WARNING Hostname]: hostname "xxx": lookup xxx on 114.114.114.114:53: no such host
     [WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'
 [preflight] Reading configuration from the cluster...
 [preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
 error execution phase preflight: 
 One or more conditions for hosting a new control plane instance is not satisfied.
 ​
 unable to add a new control plane instance to a cluster that doesn't have a stable controlPlaneEndpoint address
 ​
 Please ensure that:
 * The cluster has a stable controlPlaneEndpoint address.
 * The certificates that must be shared among control plane instances are provided.
 ​
 ​
 To see the stack trace of this error execute with --v=5 or higher

解决方法

方法1

  #1 查看 kubeadm-config的信息(只截取了一部分信息)
 kubectl get  cm kubeadm-config -n kube-system -oyaml
 ​
 apiVersion: v1
 data:
   ClusterConfiguration: |
     apiServer:
       extraArgs:
         authorization-mode: Node,RBAC
       timeoutForControlPlane: 4m0s
     apiVersion: kubeadm.k8s.io/v1beta3
     certificatesDir: /etc/kubernetes/pki
     clusterName: kubernetes
     controllerManager: {}
     dns: {}
     etcd:
       local:
         dataDir: /var/lib/etcd
     imageRepository: xxx
     kind: ClusterConfiguration
     kubernetesVersion: v1.23.5
     networking:
       dnsDomain: cluster.local
       podSubnet: xx.xx.0.0/16
       serviceSubnet: xx.xx.0.0/16
     scheduler: {}
 ​
 #2 添加controlPlaneEndpoint
 kubectl edit cm kubeadm-config -n kube-system
 ​
 apiVersion: v1
 data:
   ClusterConfiguration: |
     apiServer:
       extraArgs:
         authorization-mode: Node,RBAC
       timeoutForControlPlane: 4m0s
     apiVersion: kubeadm.k8s.io/v1beta3
     certificatesDir: /etc/kubernetes/pki
     clusterName: kubernetes
     controllerManager: {}
     dns: {}
     etcd:
       local:
         dataDir: /var/lib/etcd
     imageRepository: xxx
     kind: ClusterConfiguration
     kubernetesVersion: v1.23.5
     #在下面添加一行信息
     controlPlaneEndpoint: "xx.xx.xx.xx:port" ## 换成自己的ip和port
     networking:
       dnsDomain: cluster.local
       podSubnet: xx.xx.0.0/16
       serviceSubnet: xx.xx.0.0/16
     scheduler: {}

方法2 如果k8s集群中只有一个节点,可将k8s集群重置,然后重新初始化

  #1 重置k8s,然后删除相关文件
 kubeadm reset -f
 rm -rf /etc/kubernetes
 rm -rf ~/.kube
 ​
 #2 重新初始化
 kubeadm init --kubernetes-version 1.23.5 --control-plane-endpoint "xx.xx.xx.xx:port" --pod-network-cidr=xx.xx.xx.xx/16 --service-cidr=xx.xx.xx.xx/16 --upload-certs
点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
tidb集群某个节点报错之:node_exporter
今天启动集群tidb时出现一个错误,是某个tikv节点报错:node\_exporter9100.service failed一个节点的问题会导致整个集群启动失败。去此节点下的日志文件中查找,发现没有什么报错原因。无奈此时只能去系统日志中查看发生了什么问题果然发现了问题Jan1615:35:05ip1723126133
Wesley13 Wesley13
3年前
GoJS API学习
varnode{};node"key""节点Key";node"loc""00";//节点坐标node"text""节点名称";//添加节点通过按钮点击,添加新的节点到画布myDiagram.model.addNodeData(nod
Stella981 Stella981
3年前
RabbitMQ镜像队列
本节主要讲述镜像队列。镜像队列的主要作用是用来解决队列的单点故障。镜像队列主要有两种类型:master和slave。master和slave节点位于同一个集群中。master只要一个节点,slave可以有多个节点。生产者发送到主节点消息会同时被发往各个slave节点,除了发送消息,其他动作只会发给master,然后通过master广播给其他slave
Stella981 Stella981
3年前
Ambari在离线环境中安装Hadoop集群
(WJW)Ambari在离线环境中安装Hadoop集群    如果手工安装Hadoop集群,在管理和后继部署中,越来越多的问题不断出现,主要如下:各集群节点的配置同步新应用的部署:比如为集群添加hbase应用,需要很细心复杂的配置才能完成,而且要是操作错误,还可能导致正常的集
Stella981 Stella981
3年前
Kubernetes 学习笔记(二):本地部署一个 kubernetes 集群
目标是方便快捷地部署一个比较稳定的k8s集群前言前面用到过的minikube只是一个单节点的k8s集群,这对于学习而言是不够的。我们需要有一个多节点集群,才能用到各种调度/监控功能。而且单节点只能是一个加引号的“集群”。kubernetes安装方式面面观kubernetes是一个
Stella981 Stella981
3年前
Kubernetes集群部署之五node节点部署
Node节点是Kubernetes集群中的工作负载节点.每个node都会被master分配一些工作负载,每个node节点都运行以下关键服务进程.Kubelet:负责pod对应的容器的创建、启停等任务,同时与master节点密切协作,实现集群管理的基本功能.Kubeproxy:实现kubernetesservice的通信与负载均衡机制的重要
Stella981 Stella981
3年前
PG cannot execute UPDATE in a read
  PGcannotexecuteUPDATEinareadonlytransaction出现这种情况时,说明SQL语句可能是运行在一个PG集群中的非master节点上。查看data/pg\_hba.conf。  SELECTpg_is_in_recovery();Thiscannotreturntrueinam
Stella981 Stella981
3年前
K8S的Ingress实现:K8S学习篇1
本系列将会包含多篇文章,敬请期待。大魏在笔记本上安装了双节点的K8S集群,K8S版本为1.20.2:!(https://oscimg.oschina.net/oscnet/c46c218d4dd24fc08fd27650e23b0f75.png)SDN使用Calico、Ingress使用NGINX:!(https:
Stella981 Stella981
3年前
K8s StatfulSet使用总结
StatefulSet:在1.3以前K8s中StatefulSet叫PetSet(宠物集),由此也可看出StatefulSet是关注个体,而非群体。StatefulSet要满足以下几点:稳定且唯一的网络标识符;如:Redis集群,在Redis集群中,它是通过槽位来存储数据的,假如:第一个节点是0~1000,第二个节点是1
DevOpSec DevOpSec
2年前
自建k8s集群之负载均衡使用
自建k8s而非云环境,组件mysql类(部分有状态服务)部署在虚机里也即集群外,业务服务部署在k8s集群内。需求:集群内、集群外,业务服务和组件相互间通过负载均衡、高可用的形式连通。此需求拆解成两个问题进行解决,接着往下看。集群内:k8s集群集群外:k8s集群外的应用部署在虚拟机或物理机环境
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
890
粉丝
16
获赞
40