使用kubeadm初始化k8s集群遇到问题

我在尝试部署KubeEdge框架,在部署K8s使用 kubeadm init语句初始化集群时遇到了问题

使用的

Ubuntu版本为18.04

Docker版本为18.06.3

Kubernetes版本为1.17.4

遇到的如下的报错

img

起先是卡在

img

这个位置

按照网络上的教学修改了kubelet与Docker的驱动程序改为systemd

然后就出现了上面那张图的报错
想了解错误原因与解决的方案

该回答内容部分引用GPT,GPT_Pro更好的解决问题
答:在使用kubeadm初始化K8s集群时,如果遇到了上面这张图的报错,可能是由于docker和kubelet的驱动程序出现了问题,所以我们要先检查docker和kubelet服务是否正常。

检查docker服务:
我们可以使用下面的命令来检查docker服务是否正常:

systemctl status docker

如果服务状态出现active (running)则表明docker服务正常运行;如果服务状态出现inactive (dead)则表明docker服务不正常,需要重启docker服务。

重启docker服务:

systemctl restart docker

检查kubelet服务:
我们可以使用下面的命令来检查kubelet服务是否正常:

systemctl status kubelet

如果服务状态出现active (running)则表明kubelet服务正常运行;如果服务状态出现inactive (dead)则表明kubelet服务不正常,需要重启kubelet服务。

重启kubelet服务:

systemctl restart kubelet

重新检查docker和kubelet服务之后如果都正常了,就可以尝试重新初始化K8s集群,看看问题是否解决。
如果回答有帮助,望采纳。

以下答案引用自GPT-3大模型,请合理使用:

```
错误信息可能是由于kubelet和Docker之间存在兼容性问题引起的,因此可能需要将kubelet或者Docker进行升级。如果错误发生在初始化群集期间,可以尝试使用如下命令进行修复:

sudo systemctl restart docker # 重启docker
sudo systemctl restart kubelet # 重启kubelet

如果错误仍然出现,您可以尝试升级Docker或Kubelet,具体步骤如下:

升级Docker

wget https://download.docker.com/linux/ubuntu/dists/[ubuntu%E7%89%88%E6%9C%AC]/pool/stable/amd64/ # 下载docker-ce包
sudo apt purge docker-ce # 清除docker
sudo dpkg -i # 安装docker-ce
sudo systemctl start docker # 重新启动docker

升级kubelet

curl -sSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - # 添加GPG Key
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt update #

该回答引用GPTᴼᴾᴱᴺᴬᴵ
在初始化集群时遇到的问题可能有很多种,可以根据具体错误信息进行排查。以下是一些可能遇到的问题及解决方法:

  1. 执行kubeadm init时提示"error execution phase preflight: [preflight] Some fatal errors occurred:",并列出了一些错误信息。
    这可能是由于Kubernetes要求系统满足一些先决条件,例如关闭swap、设置正确的iptables规则等。可以根据错误信息逐一解决这些问题。

  2. 执行kubeadm init时提示"error execution phase kubelet-start: [kubelet-start] Init failed",并列出了一些错误信息。
    这可能是由于kubelet启动失败,可以查看kubelet日志找出具体原因,并尝试解决。例如,可能是kubelet启动时缺少某些依赖项,可以手动安装这些依赖项。

  3. 执行kubeadm init时提示"error execution phase certs/apiserver: couldn't initialize a Kubernetes API client: get https://localhost:6443/api/v1/namespaces/kube-public: dial tcp [::1]:6443: connect: connection refused"。
    这可能是由于kube-apiserver未成功启动,可以查看kube-apiserver日志找出具体原因,并尝试解决。例如,可能是kube-apiserver启动时出现了某些错误,可以查看相关日志文件找出具体错误信息。

  4. 执行kubeadm init时提示"error execution phase kubelet-finalize: [kubelet-finalize] Update NodeStatuses failed: the server has asked for the client to provide credentials"。
    这可能是由于kubectl未正确配置认证信息,可以执行"kubectl config use-context "命令切换到正确的上下文,或者重新生成认证信息。

  5. 执行kubeadm init时提示"error execution phase upload-config: [upload-config] storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace failed"。
    这可能是由于kubelet未正确启动,可以查看kubelet日志找出具体原因,并尝试解决。例如,可能是kubelet启动时缺少某些依赖项,可以手动安装这些依赖项。

以上仅是一些可能遇到的问题及解决方法,具体问题需要根据错误信息进行排查。如果仍无法解决,建议查阅Kubernetes官方文档或向社区寻求帮助。