在 Ubuntu 18.04 上设置 Kubernetes 集群

在 Ubuntu 18.04 上设置 Kubernetes 集群

我正在做本教程创建 kubernetes 集群Ubuntu 16.04(我使用的是 18.04,但目前还没有关于该版本的教程)。我完成了前三个步骤,一切顺利。我现在正尝试初始化集群,其中包含主节点,但有点卡住了。

当我运行master.yml剧本时

ansible-playbook -i hosts ~/kube-cluster/master.yml

我得到以下输出:

    $ ansible-playbook -i hosts master.yml 
    /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.24.1) or chardet (3.0.4) doesn't match a supported version!
      RequestsDependencyWarning)

    PLAY [master] *********************************************************************************

    TASK [Gathering Facts] ************************************************************************
    ok: [master]

    TASK [initialize the cluster] *****************************************************************
    changed: [master]

    TASK [create .kube directory] *****************************************************************
     [WARNING]: Module remote_tmp /home/ubuntu/.ansible/tmp did not exist and was created with a
    mode of 0700, this may cause issues when running as another user. To avoid this, create the
    remote_tmp dir with the correct permissions manually

    changed: [master]

    TASK [copy admin.conf to user's kube config] **************************************************
    changed: [master]

    TASK [install Pod network] ********************************************************************
    changed: [master]

    PLAY RECAP ************************************************************************************
    master                     : ok=5    changed=4    unreachable=0    failed=0  

与教程相比,唯一不同的是有关/home/ubuntu/.ansible/tmp目录权限的警告。当我通过 ssh 进入主节点服务器并运行

kubectl get nodes

我得到以下结果:

NAME             STATUS     ROLES    AGE   VERSION
ip-address  NotReady   master   16m   v1.12.2

而不是期望的

NAME             STATUS     ROLES    AGE   VERSION
master  Ready   master   16m   v1.12.2

我尝试tmp在服务器上使用 ubuntu 用户创建目录,以便解决警告。不幸的是,这不会改变主节点未准备好或其 IP 地址为 的任何情况NAME

问题:我该如何解决这个问题?如何正确初始化集群,以便主节点配置正确并准备就绪?

答案1

我研究了您的问题,并使用 Vagrant 运行节点创建了相同的问题实例。

回购这里,如果你想尝试使用 vagrant 来协调节点设置

和你一样,我也遇到了你描述的问题。事实证明,Flannel 在 ubuntu bionic 上存在一些 coredns 问题。Flannel 干扰 coredns 设置并导致其处于待处理状态。

你可以使用它来检查 Pod 状态

ubuntu@ubuntu-bionic:~$ kubectl get pods --namespace=kube-system
NAME                                    READY   STATUS    RESTARTS   AGE
coredns-576cbf47c7-hlvdj                0/1     Pending   0          52m
coredns-576cbf47c7-xmljj                0/1     Pending   0          52m
etcd-ubuntu-bionic                      1/1     Running   0          52m
kube-apiserver-ubuntu-bionic            1/1     Running   0          52m
kube-controller-manager-ubuntu-bionic   1/1     Running   0          52m
kube-proxy-gvqk4                        1/1     Running   0          52m
kube-scheduler-ubuntu-bionic            1/1     Running   0          51m
kubernetes-dashboard-77fd78f978-5flj8   0/1     Pending   0          4m30s

经过几次搜索,我找到了一个修复链接这里在他们的问题页面上。

安装不同的 CNI,他们在那里使用编织。

kubectl 应用-f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl 版本 | base64 | tr -d '\n')"

更多细节这里来自文档

从那里开始,您的容器应该启动,并且 coredns pods 应该运行。

ubuntu@ubuntu-bionic:~$ kubectl get pods -n kube-system 


NAME                                    READY   STATUS    RESTARTS   AGE
coredns-576cbf47c7-jrlbb                1/1     Running   0          11m
coredns-576cbf47c7-nfjq8                1/1     Running   0          11m
etcd-ubuntu-bionic                      1/1     Running   0          10m
kube-apiserver-ubuntu-bionic            1/1     Running   0          10m
kube-controller-manager-ubuntu-bionic   1/1     Running   0          10m
kube-proxy-nrbpx                        1/1     Running   0          11m
kube-scheduler-ubuntu-bionic            1/1     Running   0          10m
weave-net-459mw                         2/2     Running   0          10m

最后

ubuntu@ubuntu-bionic:~$ kubectl get nodes
NAME            STATUS   ROLES    AGE   VERSION
ubuntu-bionic   Ready    master   14m   v1.12.2

相关内容