栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

[k8s部署踩过的坑]

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[k8s部署踩过的坑]

系统环境

系统版本docker版本roleip地址

CentOS8.4.2105

(Linux version 4.18.0-348.xx

Red Hat 8.5.0-4)

20.10.12

k8s-master

192.168.100.129
k8s-node1192.168.100.130
k8s-node2192.168.100.131

kubernetes组件

组件版本
kubeadm1.23.1-0
kubectl1.23.1-0
kubelet1.23.1-0

docker镜像

REPOSITORYTAGIMAGE IDSIZE
registry.aliyuncs.com/google_containers/kube-apiserver    v1.23.1  b6d7abedde39135 MB
registry.aliyuncs.com/google_containers/kube-proxyv1.23.1b46c42588d51112MB
registry.aliyuncs.com/google_containers/kube-controller-managerv1.23.1f51846a4fd28125MB
registry.aliyuncs.com/google_containers/kube-schedulerv1.23.171d575efe62853.5MB
registry.aliyuncs.com/google_containers/etcd3.5.1-025f8c7f3da61293MB
registry.aliyuncs.com/google_containers/corednsv1.8.6a4ca41631cc746.8MB
registry.aliyuncs.com/google_containers/pause3.66270bb605e12683 kB

发现在master上init的时候出现以下问题

kubeadm init 
--apiserver-advertise-address=192.168.100.129 
--image-repository registry.aliyuncs.com/google_containers 
--kubernetes-version v1.23.1 
--service-cidr=10.96.0.0/12 
--pod-network-cidr=10.244.0.0/16

# service-cidr和pod-network-cidr需要和其他机器IP不冲突皆可

部署的时候碰到好几个问题还未解决,并且每次init之前都会再reset一下,具体见4.4.2:

1. error execution phase wait-control-plane: couldn't initialize a Kubernetes cluster

To see the stack trace of this error execute with --v=5 or higher

尝试重启下kubelet

systemctl restart kubelet && systemctl enable kubelet

systemctl status kubelet

如果重启kubelet失败,则可能是swap交换分区还开启的原因,再次关闭swapoff -a然后重复上面步骤

2. 我这里初始化一直报错,目前还未解决,后续再更新

[kubelet-check] Initial timeout of 40s passed.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp [::1]:10248: connect: connection refused.

试过以下办法: 

1. 打开/usr/lib/systemd/system/docker.service,然后将代码Environment="NO_PROXY=127.0.0.1/8, 127.0.0.1/16",一定要放在[Service] Type=notify的后面,然后重启daemon和docker,然后重启

 sudo systemctl daemon-reload
 sudo systemctl restart docker
 sudo systemctl restart kubelet

无效

2. 在 usr/docker/daemon.json当中添加以下内容, docker的默认驱动为cgroupfs,同步docker驱动到kubelet的默认驱动systemd

{
    "exec-opts": ["native.cgroupdriver=systemd"]
}

{
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": {
      "max-size": "100m"
    },
    "storage-driver": "overlay2"
}

然后重启

 sudo systemctl daemon-reload
 sudo systemctl restart docker
 sudo systemctl restart kubelet

依然无效

3. 有人说swapoff永久关闭,但是我一直都是永久的,重启系统也未起效

sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab

4. Init的时候增加一个参数--ignore-preflight-errors=Swap

kubeadm init 
--apiserver-advertise-address=192.168.100.129 
--image-repository registry.aliyuncs.com/google_containers 
--kubernetes-version v1.23.1 
--service-cidr=10.96.0.0/12 
--pod-network-cidr=10.244.0.0/16
--ignore-preflight-errors=Swap

依然无效

猜测是系统版本,docker版本和OS+k8s版本不兼容导致,正常情况下以上几种方法能解决大部分问题

后续,将版本切换至1.21.1之后,init成功了,只能后续再调查下了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/686544.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号