Настройка кластера kubernetes в Ubuntu 18.04 - proUbuntu
Купить гитару в Москве
0 голосов
/

Я делаю этот учебник по созданию кластера kubernetes на Ubuntu 16.04 (я использую 18.04, но пока нет учебника по этой версии). Я закончил первые три шага, и все прошло хорошо. Сейчас я пытаюсь инициализировать кластер с главным узлом, и я немного застрял.

Когда я запускаю master.yml playbook с

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 Ответ

0 голосов
/

Я рассмотрел вашу проблему и создал тот же экземпляр проблемы, используя Vagrant для запуска узлов.

Репо здесь , если вы хотите попробовать организовать установку узла с помощью vagrant

Так же, как и вы, я столкнулся с проблемой, которую вы описали. Оказывается, у фланели есть пара проблем с сердечниками на Ubuntu Bionic. Фланель мешает настройке сердечников и заставляет ее оставаться в состоянии ожидания.

Вы можете использовать это для проверки состояния модуля

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 apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl версия | base64 | tr -d '\ n')"

Подробнее здесь из документов

Оттуда ваши контейнеры должны запуститься, и стручки сердечников должны работать.

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
Добро пожаловать на сайт proUbuntu, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...