TNBLOG
首页
博客
视频
资源
问答
猿趣
手机
关于
搜索
收藏
便签
笔记
消息
创作
登录
剑轩
人生没有办法假设,我们不能站在后来的角度去责备当时无望、甚至是怯懦、犹豫的自己
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
CSS
21篇
微服务
41篇
Git
14篇
.NET
102篇
移动开发
32篇
软件架构
23篇
.NET Core
120篇
.NET MVC
11篇
英语
3篇
随笔
115篇
Bootstrap
3篇
Redis
22篇
编辑器
10篇
Js相关
15篇
虚拟化
8篇
更多
Oracle
7篇
Python
14篇
数据库
26篇
EF
17篇
微信
3篇
前端
151篇
消息队列
7篇
docker
39篇
多线程
1篇
Java
4篇
软件基础
2篇
C++
2篇
WCF
7篇
Linux
7篇
nginx
5篇
K8S
9篇
ABP
2篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2023
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术
原
k8s加入集群一直卡到Running pre-flight checks
9924
人阅读
2022/6/24 16:03
总访问:
3336405
评论:
0
收藏:
0
手机
分类:
K8S
### 情况一:token过期问题 tn2>如果是token过期问题,重新生成一下token在加入进去就行了 **重新生成一个永不过期的token:** ``` kubeadm token create --ttl 0 ```  把初始化生成命令的token换成这个新生成的即可 **重新生成一个永不过期的token并且打印加入命令:** ``` kubeadm token create --ttl 0 --print-join-command ```  ### 情况二:多网卡,监听ip地址错误 tn2> 比如我们使用virtual box来安装centos虚拟机,想要虚拟机固定Ip,而且能够访问外网,一半需要配置两张网卡,结果执行k8e初始化的时候,没有去指定要使用的ip地址,他会默认是不到第一个网卡。监听到的就是第一个网卡的地址。 #### 比如如果监听到的地址是10.0.2.15就是错的  因为这个10.0.2.15根本不该出现在这里!VirtualBox会默认给每个虚拟机创建一个NAT网卡,这个网卡的IP就是10.0.2.15,所有的虚拟机都是这个IP,互相之间不能通过这块NAT网卡互联。所以他默认监听到这个网卡的地址就是不对的。(我虚拟机默认开了两个网课,一个NAT一个是桥接网络,固定Ip配置的是桥接网络我们希望k8s监听的是桥接网络这个地址) 自己测试一下telnet加入的ip与端口访问就是拒绝的怎么能够加入进去嘛。  #### 尝试解决问题 tn2>解决方法就是重置一下k8s初始化,在重新初始化一次 **重置k8s初始化** ``` kubeadm reset ``` **重新执行初始化** ``` kubeadm init \ --apiserver-advertise-address=192.168.12.219 \ --image-repository registry.aliyuncs.com/google_containers ``` tn3> 执行kubeadm init 最好指定一下cluster Ip 网段和pod的IP网段,不然后续安装flannel或者calico时,master和node之前的网络通信可能会有异常,指定网段时,选择适合自己的网段,避免出现ip地址冲突。 --pod-network-cidr=10.244.0.0/16可以指定pod的网络,多网卡下还是指定一下最好 所以最好先这样初始化 ``` kubeadm init \ --apiserver-advertise-address=192.168.12.244 \ --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \ --kubernetes-version v1.18.0 \ --service-cidr=10.1.0.0/16 \ --pod-network-cidr=10.244.0.0/16 ``` tn3> 初始化的时候最好设置一下,pod,service网段这些,还有监听使用的ip地址这些。 不然如果有多网卡,不设置监听的ip,识别到错误的网卡,就会出现错误的ip,你集群都加入不进来的。还有不设置pod,service网段这些你可能后面部署应用后通信会有问题,比如使用了NodePort类型的service,只有工作节点能访问,master节点访问不到(-。-坑了我很久的一个问题)。当然也可以在配置文件中设置,就不用再kubeadm init中给参数了 **安装上面的方法执行成功后是可以成功加入了,但是执行kubectl get nodes会报错:** Unable to connect to the server: x509: certificate is valid for 10.96.0.1, 192.168.12.219, not 10.0.2.15  **我估计也是因为我这里多网卡的问题。** 注意看错误提示中的最后一句Unable to connect to the server: x509: certificate is valid for 10.96.0.1, 192.168.12.219, <font color='red'>not 10.0.2.15</font>是说not 10.0.2.15,也就是没有这个ip地址,这个ip地址上面也有提到是第一个网卡的ip地址,所以我们按照这个要求,又重置一下,然后在初始化的时候用--apiserver-cert-extra-sans=10.0.2.15,指定一下他说的缺少的这个地址。 两边都执行一下重置,因为刚刚加入成功了的 ``` kubeadm reset ``` 然后在执行一次初始化,多加一个配置就是刚刚上面列的,它提示少什么ip就添加什么ip ``` kubeadm init \ --apiserver-advertise-address=192.168.12.219 \ --apiserver-cert-extra-sans=10.0.2.15 \ --image-repository registry.aliyuncs.com/google_containers ``` 执行也成功了:  **子节点也加入成功了,but访问集群还是报错:** Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes") 可以使用如下命令查看证书: ``` openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text ``` 可以看到我们刚刚增加的ip地址其实已经成功加入进来了的:  **是因为我们重置的时候没有删除以前的配置,所以有这个问题** 删除在从新建一下即可 先删除 ``` rm -rf /root/.kube/config ``` 然后在执行: ``` mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` 或者像这个一样:https://blog.csdn.net/woay2008/article/details/93250137 执行kubeadm reset命令后在执行一下删除相关配置命令: ``` rm -rf $HOME/.kube ``` 我用的第一种是成功了的  把flannel组件下载一下,等一段时间,节点就ready了  ### 情况三:时间同步问题 设置时间同步即可
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}