Ubuntu安装k8s集群遇到的问题及解决办法【都已解决】
解决:k8s init出现Warning:detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd".
执行kubeadm init集群初始化时遇到:
[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd".
[警告IsDockerSystemdCheck]:检测到“cgroupfs”作为Docker cgroup驱动程序。 推荐的驱动程序是“systemd”。
所以我们更换一下驱动。
当时忘记截图,图片来自下面链接的大佬。
解决前:
解决方法:
修改docker
由于Ubuntu默认没有设置root,所以设置一下root用户
$ sudo passwd root
$ su root
输入密码后,切换root用户:su root
修改 /etc/docker/daemon.json
$ vim /etc/docker/daemon.json
#加入以下内容
{
"registry-mirrors": ["https://y0qd3iq.mirror.aliyuncs.com"],
"exec-opts":["native.cgroupdriver=systemd"]
}
然后重新加载json配置,重启docker服务
$ systemctl daemon-reload
$ systemctl restart docker
解决后:
$ docker info | grep Cgrou
参考链接:https://www.cnblogs.com/liuyi778/p/12123994.html
解决kubernetes v1.21.1 从 registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0 拉取镜像失败的问题
虽然我已经配置了阿里镜像仓库,但是还是无法下载coredns。
报错信息
Pulled registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0
failed to pull image "registry.cn-hangzhou.aliyuncs.com/google_containers/coredns/coredns:v1.8.0": output: Error response from daemon: pull access denied for registry.cn-hangzhou.aliyuncs.com/google_containers/coredns/coredns, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
, error: exit status 1
解决方案
#1.手动下载镜像
hadoop@master:~$ docker pull coredns/coredns
#2.查看kubeadm需要镜像
hadoop@master:~$ kubeadm config images list
#3.查看镜像
hadoop@master:~$ docker images
#4.打标签,修改名称
hadoop@master:~$ docker tag coredns/coredns:latest registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0
#5.删除多余镜像
hadoop@master:~$ docker rmi coredns/coredns:latest
参考链接:https://blog.51cto.com/8999a/2784605
解决flannel无法下载问题
查看所有节点的状态:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
master01 NotReady master 3m21s v1.19.3
node01 NotReady <none> 71s v1.19.3
node02 NotReady <none> 56s v1.19.3
发现STATUS
为NotReady
,是因为我们还没有安装网络组件。
安装网络:
$ kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
再次检测,已经Ready
了
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
master01 Ready master 4m32s v1.19.3
node01 Ready <none> 2m22s v1.19.3
node02 Ready <none> 2m7s v1.19.3
参考链接:https://www.pkslow.com/archives/install-kubernetes-on-ubuntu-with-kubeadm
搭建k8s集群,master节点初始化init模板
$ sudo kubeadm init --apiserver-advertise-address=10.60.238.130 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.21.1 --ignore-preflight-errors=Swap --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
其中需要修改的地方:
--apiserver-advertise-address: 自己的master节点的IP地址
--kubernetes-version: 自己的kubernetes版本,可以通过 kubectl version 进行查看