K8S 部署问题处理

 K8S 是目前非常火的容器管理工具,具有弹性伸缩,服务发现等功能。

本文就部署过程中遇到的问题做记录。

部署环境

操作系统:CentOS Linux release 7.6.1810 (Core) 

内核:3.10.0-229.el7.x86_64

容器版本:Docker version 1.13.1, build 7f2769b/1.13.1

相关问题

1、yum install docker 报错

Error: docker-ce-cli conflicts with 2:docker-1.13.1-102.git7f2769b.el7.centos.x86_64

Error: docker-ce conflicts with 2:docker-1.13.1-102.git7f2769b.el7.centos.x86_64

You could try using --skip-broken to work around the problem

** Found 2 pre-existing rpmdb problem(s), 'yum check' output follows:

containerd.io-1.2.6-3.3.el7.x86_64 has installed conflicts containerd: containerd.io-1.2.6-3.3.el7.x86_64

containerd.io-1.2.6-3.3.el7.x86_64 has installed conflicts runc: containerd.io-1.2.6-3.3.el7.x86_64

原因分析:

由于虚拟机中有之前安装的 docker-CE 版本,因此 yum 安装时出现版本冲突。

解决方案:

卸载之前安装的版本。

yum list installed | grep docker

#输出
containerd.io.x86_64              1.2.6-3.3.el7                       @docker-ce-stable
docker-ce.x86_64                  3:19.03.1-3.el7                     @docker-ce-stable
docker-ce-cli.x86_64              1:19.03.1-3.el7                     @docker-ce-stable

yum remove containerd.io.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64 -y

2、docker 服务启动失败,由于该原因导致kubelet服务也无法启动

Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel. Either boot into a newer kernel or disable selinux in docker (--selinux-enabled=false)

原因分析:

报错信息中有提示,要么升级内核,要么禁用 selinux。

解决方案:设置“--selinux-enables=false”。

vi /etc/sysconfig/docker
# /etc/sysconfig/docker
 
# Modify these options if you want to change the way the docker daemon runs
 
OPTIONS='--selinux-enabled=false  --log-driver=journald --signature-verification=false'
if [ -z "${DOCKER_CERT_PATH}" ]; then
    DOCKER_CERT_PATH=/etc/docker
fi

systemctl restart docker

3、执行kubectl get nodes 无法发现其他节点

在 node 节点执行该命令会出现以下提示,应该是正常现象。

The connection to the server localhost:8080 was refused - did you specify the right host or port?

原因分析:注意防火墙设置

解决方案:关闭防火墙。

4、在配置 flanneld 后无法启动 docker 服务

/usr/bin/docker-current: Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/2dba6bbf247c36bffb11858d9a5c09127d5a9502af791bf4cb8dc538caccbd73/merged: invalid argument.

原因分析:overlay 网络参数错误,将配置文件里的overlay2改成overlay

vim /etc/sysconfig/docker-storage
DOCKER_STORAGE_OPTIONS="--storage-driver overlay "

systemctl restart docker

 5、K8S 在启动 pod 后显示一直处于ContainerCreating状态

 执行kubectl describe pod [pod_name]会提示:

Trying to pull repository registry.access.redhat.com/rhel7/pod-infrastructure ...  open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file or directory 

ll /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt
lrwxrwxrwx. 1 root root 27 Aug 25 23:55 /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt -> /etc/rhsm/ca/redhat-uep.pem

问题分析:

查看发现这个 crt 文件的软链接提示并不存在 ,因此需要生成这个 pem 文件。

解决方案:生成 pem 文件后可从 redhat 的仓库下载 pod-infrastructure ,最好将其 push 到本地仓库。

注意:网上的解决方案yum install *rhsm* 没有生效,安装完 pem 文件仍为空。

wget https://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm
##从阿里云上下载软件包
             
rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem    
##生成/etc/rhsm/ca/redhat-uep.pem文件.     

docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest

 

你可能感兴趣的:(云计算)