应无所住,而生其心
排名
1
文章
860
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

k8s加入集群一直卡到Running pre-flight checks

14863人阅读 2022/6/24 16:03 总访问:5192103 评论:0 收藏:0 手机
分类: K8S

情况一:token过期问题


如果是token过期问题,重新生成一下token在加入进去就行了

重新生成一个永不过期的token:

  1. kubeadm token create --ttl 0

把初始化生成命令的token换成这个新生成的即可

重新生成一个永不过期的token并且打印加入命令:

  1. kubeadm token create --ttl 0 --print-join-command

情况二:多网卡,监听ip地址错误


比如我们使用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与端口访问就是拒绝的怎么能够加入进去嘛。

尝试解决问题


解决方法就是重置一下k8s初始化,在重新初始化一次

重置k8s初始化

  1. kubeadm reset

重新执行初始化

  1. kubeadm init \
  2. --apiserver-advertise-address=192.168.12.219 \
  3. --image-repository registry.aliyuncs.com/google_containers


执行kubeadm init 最好指定一下cluster Ip 网段和pod的IP网段,不然后续安装flannel或者calico时,master和node之前的网络通信可能会有异常,指定网段时,选择适合自己的网段,避免出现ip地址冲突。
—pod-network-cidr=10.244.0.0/16可以指定pod的网络,多网卡下还是指定一下最好

所以最好先这样初始化

  1. kubeadm init \
  2. --apiserver-advertise-address=192.168.12.244 \
  3. --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
  4. --kubernetes-version v1.18.0 \
  5. --service-cidr=10.1.0.0/16 \
  6. --pod-network-cidr=10.244.0.0/16


初始化的时候最好设置一下,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, not 10.0.2.15是说not 10.0.2.15,也就是没有这个ip地址,这个ip地址上面也有提到是第一个网卡的ip地址,所以我们按照这个要求,又重置一下,然后在初始化的时候用—apiserver-cert-extra-sans=10.0.2.15,指定一下他说的缺少的这个地址。

两边都执行一下重置,因为刚刚加入成功了的

  1. kubeadm reset

然后在执行一次初始化,多加一个配置就是刚刚上面列的,它提示少什么ip就添加什么ip

  1. kubeadm init \
  2. --apiserver-advertise-address=192.168.12.219 \
  3. --apiserver-cert-extra-sans=10.0.2.15 \
  4. --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”)

可以使用如下命令查看证书:

  1. openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text

可以看到我们刚刚增加的ip地址其实已经成功加入进来了的:

是因为我们重置的时候没有删除以前的配置,所以有这个问题
删除在从新建一下即可

先删除

  1. rm -rf /root/.kube/config

然后在执行:

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

或者像这个一样:https://blog.csdn.net/woay2008/article/details/93250137
执行kubeadm reset命令后在执行一下删除相关配置命令:

  1. rm -rf $HOME/.kube

我用的第一种是成功了的

把flannel组件下载一下,等一段时间,节点就ready了

情况三:时间同步问题

设置时间同步即可


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

k8s编写yaml文件的一些小问题

Yaml文件编写的小毛病kubenetes yaml 随在编写yaml文件中难免会出现一些磕磕碰碰的问题 建议大家去这个网站编写 yaml 文...

初探k8s

概念补充Deployment 是在 Pod 这个抽象上更为上层的一个抽象层,它可以定义一组 Pod 的副本数量,以及这个 Pod 的版本。一...

k8s 结合 Service 与 Deployment 部署容器

前言最近看到了学习k8s的网站,在文章末尾分享给大家,所以我最近的教程也会根据上面的课程来进行一些总结Service:暴露容...

k8s理论整理(持续更新)

整理一GOKubernetes 的工作节点负责运行应用程序 Pod 等工作负载;还可以运行网络或存储等扩展功能;每个节点上都运行了 ku...

k8s详解基本对象

k8s详解基本对象[TOC] 参考yaml代码如下apiVersion: apps/v1 kind: Deployment metadata: name: k8s-demo names...

.netcore 通过Flurl验证k8s内部访问与获取环境变量

.netcore验证k8s内部访问与获取环境变量[TOC] 创建k8s-name项目 项目结构如下 实验过程 st=>start: k8s-demo项...

.netcore 通过Flurl验证k8s内部访问与获取环境变量 (二)

.netcore验证k8s内部访问与获取环境变量 (二)[TOC] 修改k8s-name项目 NameController.cs [ApiController] ...

Mysql k8s部署Volume(hostPath)

Mysql K8s部署Volume[TOC] Mysql 与 Yaml 稍作修改这里提供的是官网的链接:https://kubernetes.io/docs/tasks/run-a...

k8s ConfigMap 配置中心

k8s ConfigMap 配置中心[TOC] ConfigMap 简介 ConfigMap用于保存配置数据的键值对,可以用来保存单个属性,也可以用...

k8s Deployment中Rollout与Rollback使用与滚动更新

k8s Deployment中Rollout与Rollback使用[TOC] Rollout 简介 Deployment 的 rollout 当且仅当 Deployment 的 pod temp...

kubectl proxy 让外部网络访问k8s service的ClusterIP

kubectl proxy 让外部网络访问K8S service的ClusterIP[TOC] 使用kubectl proxy命令就可以使API server监听在本地的800...

k8s 网络(笔记)

K8s 网络(笔记)[TOC] K8s 网络 Docker容器网络回顾K8s CNIFlannel 网络插件跨node的 pod to podCluster Service是什么...

Jenkins在k8s中的安装

Jenkins在k8s中的安装[TOC] k8s部署Jenkins.yaml--- apiVersion: apps/v1 kind: Deployment #设置资源的类型为Deploym...

Centos7安装k8s(基于kubeadm)

Centos7安装k8s(基于kubeadm)[TOC] 下载相关包 链接:https://pan.baidu.com/s/1H9MuZsf28f_3uyVHBUS8jQ提取码:w9tv ...

Docker和k8s的区别与介绍

2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。这家公司主要提供基于PaaS的云计算技术服务。...

如何把阿里云的主机加入到腾讯云的k8s节点中,或者如何把外网的服务器用到自建的k8s节点

如何把阿里云的主机加入到腾讯云的k8s节点中 考虑使用iptables转换了下就好了