0

次のコマンドを使用して、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 の後に実行されるため、エラーは修正されません。デフォルトの OS (cos) で実行しても問題なく動作することに注意してください。

ここで何が間違っていますか?Ubuntu クラスターを実行するためのより良い方法はありますか?

4

1 に答える 1