Kubernetes v1.22.1部署报错1:validation is ‘[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*...

54 篇文章 3 订阅
12 篇文章 3 订阅

环境介绍:

master 192.168.2.18

node1 192.168.2.19

node2 192.168.2.20

CentOS 7.5

Docker 19.03.13

2核+CPU,2GB+内存

报错信息:

1.在k8s_master1上进行初始化时出现以下报错

[root@k8s_master1 ~]# kubeadm init --kubernetes-version=v1.22.1 --apiserver-advertise-address=192.168.1.18 --image-repository registry.aliyuncs.com/google0.0/16         
[init] Using Kubernetes version: v1.22.1
[preflight] Running pre-flight checks
        [WARNING Service-Docker]: docker service is not enabled, please run 'systemctl enable docker.service'
        [WARNING Hostname]: hostname "k8s-master" could not be reached
        ......
        nodeRegistration.name: Invalid value: "k8s_master1": a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.',or validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')
To see the stack trace of this error execute with --v=5 or higher

2.在k8s_node1/2上加入集群时也出现同样报错

[root@k8s_node1 ~]# kubeadm join 192.168.1.18:6443 --token 9t2nu9.00ieyfqmc50dgub6 \
>         --discovery-token-ca-cert-hash sha256:183b6c95b4e49f0bd4074c61aeefc56d70215240fbeb7a633afe3526006c4dc9
nodeRegistration.name: Invalid value: "k8s_node1": a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.',or validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')
To see the stack trace of this error execute with --v=5 or higher

问题分析:

 从上面k8s_master1跟k8s_node1/2的相同报错可以判断出,报错的原因是因为我们三台主机的命名问题,不能在主机名中使用下划线”_”来命名。

解决方法:

 修改三台主机的名称,不使用下划线“_”,使用“-”来命名即可。

[root@k8s_node1 ~]# vim /etc/hostname      //永久修改主机名
k8s-node1

[root@k8s_node1 ~]# hostname k8s-node1     //临时修改主机名

 修改完主机名称后可以使用Ctrl+D来退出当前终端,重新登录即可显示新主机名。

验证:

 修改完主机名后,在k8s-node1主机上验证重新加入集群

注意:

在加入集群时,可以在命令尾部加上 –ignore-preflight-errors=Swap ,以忽略 k8s 对主机swap的检查(k8s为了性能所以要求禁止swap)。

[root@k8s-node1 ~]# kubeadm join 192.168.1.18:6443 --token 9t2nu9.00ieyfqmc50dgub6         --discovery-token-ca-cert-hash sha256:183b6c95b4e49f0b
[preflight] Running pre-flight checks
        [WARNING Service-Docker]: docker service is not enabled, please run 'systemctl enable docker.service'
        [WARNING Hostname]: hostname "k8s-node1" could not be reached
        [WARNING Hostname]: hostname "k8s-node1": lookup k8s-node1 on 192.168.1.1:53: no such host
[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'
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...

This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

 可以看到现在k8s-node1已经成功加入到集群中,问题解决!

可能会出现其他报错:

 在安装部署Kubenetes的过程中出现的任何报错,尝试解决报错问题后,最好是先执行一次kubeadm reset -f来清除一下kubeadm的信息,再进行验证上个错误是否得到解决,不然可能上个报错没有解决又出现以下或者新的报错。

[root@k8s-master ~]# kubeadm init --kubernetes-version=v1.22.1 --apiserver-advertise-address=192.168.1.18 --image-repository registry.aliyuncs.com/google0.0/16
[init] Using Kubernetes version: v1.22.1
[preflight] Running pre-flight checks
        [WARNING Service-Docker]: docker service is not enabled, please run 'systemctl enable docker.service'
        [WARNING Hostname]: hostname "k8s-master" could not be reached
        [WARNING Hostname]: hostname "k8s-master": lookup k8s-master on 192.168.1.1:53: no such host
error execution phase preflight: [preflight] Some fatal errors occurred:
        [ERROR Port-6443]: Port 6443 is in use
        [ERROR Port-10259]: Port 10259 is in use
        [ERROR Port-10257]: Port 10257 is in use
        [ERROR FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml]: /etc/kubernetes/manifests/kube-apiserver.yaml already exis
        [ERROR FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml]: /etc/kubernetes/manifests/kube-controller-manager
        [ERROR FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml]: /etc/kubernetes/manifests/kube-scheduler.yaml already exis
        [ERROR FileAvailable--etc-kubernetes-manifests-etcd.yaml]: /etc/kubernetes/manifests/etcd.yaml already exists
        [ERROR Port-10250]: Port 10250 is in use
        [ERROR Port-2379]: Port 2379 is in use
        [ERROR Port-2380]: Port 2380 is in use
        [ERROR DirAvailable--var-lib-etcd]: /var/lib/etcd is not empty
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher
[root@k8s-master ~]# kubeadm reset -f       --- 清除/重置kubeadm

↓↓↓↓↓↓

最近刚申请了个微信公众号,上面也会分享一些运维知识,大家点点发财手关注一波,感谢大家。 【原创公众号】:非著名运维 【福利】:公众号回复 “资料” 送运维自学资料大礼包哦!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非著名运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值