kube-up.sh не может инициализировать мастер Ubuntu в кластере в Kubernetes v1.9

Я пытаюсь запустить кластер Ubuntu Kubernetes v1.9 со следующим:

export KUBE_ROOT=~/kubernetes
export NUM_NODES=1
export NODE_SIZE=n1-standard-8
export NODE_DISK_SIZE=100GB
export KUBE_GCE_INSTANCE_PREFIX=kubernetes-test

export KUBE_OS_DISTRIBUTION=ubuntu
export KUBE_MASTER_OS_DISTRIBUTION=ubuntu
export KUBE_GCE_MASTER_PROJECT=ubuntu-os-cloud
export KUBE_GCE_MASTER_IMAGE=ubuntu-1604-xenial-v20161130
export KUBE_NODE_OS_DISTRIBUTION=ubuntu
export KUBE_GCE_NODE_PROJECT=ubuntu-os-cloud
export KUBE_GCE_NODE_IMAGE=ubuntu-1604-xenial-v20161130

~/kubernetes/cluster/kube-up.sh 

Как есть, это приводит к неудачной инициализации:

Waiting up to 300 seconds for cluster initialization.

  This will continually check to see if the API for kubernetes is reachable.
  This may time out if there was some uncaught error during start up.

........................................................................................
....................................................Cluster failed to initialize within 300 seconds.

В журнале (/var/log/syslog) на главном узле я вижу ошибки, возникающие из-за (1) отсутствия python-yaml:

master configure.sh[2013]: Traceback (most recent call last):
master configure.sh[2013]:   File "<string>", line 2, in <module>
master configure.sh[2013]: ImportError: No module named yaml

Исправление этого (см. ниже) приводит к сообщению об ошибке, касающемуся (2) неудачной загрузки образа Docker:

master configure.sh[1979]: Try to load docker image file /home/kubernetes/kube-docker-files/kube-apiserver.tar
master configure.sh[1979]: timeout: failed to run command 'docker': No such file or directory
master configure.sh[1979]: message repeated 4 times: [ timeout: failed to run command 'docker': No such file or directory]
master configure.sh[1979]: Fail to load docker image file /home/kubernetes/kube-docker-files/kube-apiserver.tar after 5 retries. Exit!!
master systemd[1]: kube-master-installation.service: Main process exited, code=exited, status=1/FAILURE
master systemd[1]: Failed to start Download and install k8s binaries and configurations.

Я исправил проблемы, включив в kubernetes/cluster/gce/gci/configure.sh следующее:

function special-ubuntu-setup {
 # Special installation required for ubuntu 16.04?
 apt-get install python-yaml

 # Install docker
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
 add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
 apt-get update
 apt-cache policy docker-ce
 apt-get install -y docker-ce
}

Затем в «основном цикле» внизу configure.sh вызовите эту функцию перед загрузкой kube-env:

special-ubuntu-setup

Это позволяет мне успешно настроить кластер. Однако это исправление кажется в очень плохой форме. Я попытался добавить то же самое в сценарий запуска, передаваемый экземплярам GCE через метаданные, но он запускается после configure.sh и, следовательно, не исправляет ошибки. Обратите внимание, что работа с ОС по умолчанию (cos) работает нормально.

Что я здесь делаю неправильно? Есть ли лучший способ запустить кластер Ubuntu?


person Karmel    schedule 05.01.2018    source источник


Ответы (1)


Возможно, вам повезет больше, используя kubeadm — см. использование кластера kubeadm для создания кластера в документации по кубернету.

person mosaic    schedule 07.01.2018