使用kubeadm安裝k8s踩坑記

坑1:主機的規格2C2G及以上
很重要。此坑,我填了三天。最後還是因爲受不了虛擬機太卡,所以給加了內存才解決。心血啊!

坑2:kubelet和docker的cgroup要一致。
cgroup是什麼?cgroupfs和systemd的區別?

1、修改docker的cgroup
docker info | grep ‘Cgroup’ #查看
vim /etc/docker/daemon.json
{
“exec-opts”: [“native.cgroupdriver=systemd”]
}
systemctl daemon-reload
systemctl restart docker
2、修改kubelet
vim /etc/sysconfig/kubelet
KUBELET_CGROUP_ARGS="–cgroup-driver=systemd"
systemctl daemon-reload
systemctl restart kubelet

KUBELET_EXTRA_ARGS="–cgroup-driver=$DOCKER_CGROUPS --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1"
坑3:禁用或忽略swap
swap在k8s中爲什麼禁用?
1、禁用swap
swapoff -a
2、忽略swap
vi /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS=–fail-swap-on=false
kubeadm 。。。。。 --ignore-preflight-errors=Swap

坑4:使用–image-repository registry.aliyuncs.com/google_containers,還是無法下載kube-proxy。
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy-amd64:v1.17.4
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy-amd64:v1.17.4 registry.aliyuncs.com/google_containers/kube-proxy:v1.17.4

可能還會需要將下載的所有鏡像重新打tag
docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.17.4 k8s.gcr.io/kube-proxy:v1.17.4
可能還會需要使用docker rmi刪除多餘的鏡像,一個image id只留需要的一個鏡像即可。
docker rmi registry.aliyuncs.com/google_containers/kube-proxy:v1.17.4

坑5:unable to recognize “calico.yaml”: no matches for kind “Deployment” in version "apps/v1beta1"
caclico的版本太低,需要去https://docs.projectcalico.org/getting-started/kubernetes/quickstart 下載更高版本的yaml文件。

心得1:重新初始化集羣
kubeadm reset
systemctl daemon-reload
systemctl restart kubelet
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
iptables -nL #檢查防火牆規則是否清空
netstat -antlp #檢查端口是否全被放開

心得2:查看systemd的日誌
journal命令查看日誌
有的時候使用journalctl -u kubelet查看systemd的日誌顯示不全,需要使用如下命令查看完整日誌。
journalctl -u kubelet
journalctl _PID=19593 | vim -

什麼時候用systemctl daemon-reload

Kubernetes 各版本鏡像列表:
https://www.cnblogs.com/twobrother/p/11188865.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章