web-dev-qa-db-ja.com

クラスターへの参加は永遠にかかります

マスターノードをセットアップし、次のようにワーカーノードに参加させようとしています。

kubeadm join 192.168.30.1:6443 --token 3czfua.os565d6l3ggpagw7 --discovery-token-ca-cert-hash sha256:3a94ce61080c71d319dbfe3ce69b555027bfe20f4dbe21a9779fd902421b1a63

ただし、コマンドは次の状態で永久にハングします。

[preflight] Running pre-flight checks
    [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/

これは単なる警告なので、実際に失敗するのはなぜですか?

編集/var/log/syslog

Mar 29 15:03:15 ubuntu-xenial kubelet[9626]: F0329 15:03:15.353432    9626 server.go:193] failed to load Kubelet config file /var/lib/kubelet/config.yaml, error failed to read kubelet config file "/var/lib/kubelet/config.yaml", error: open /var/lib/kubelet/config.yaml: no such file or directory
Mar 29 15:03:15 ubuntu-xenial systemd[1]: kubelet.service: Main process exited, code=exited, status=255/n/a
Mar 29 15:03:15 ubuntu-xenial systemd[1]: kubelet.service: Unit entered failed state.
6
pkaramol

問題は、kubeadmがネットワークCNI互換ソリューションをそのままインストールしないことに関係していました。

したがって、この手順がないと、kubernetesノード/マスターは、どのような形式の通信も確立できません。

次のタスクは問題に対処しました:

- name: kubernetes.yml --> Install Flannel
  Shell: kubectl -n kube-system apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml
  become: yes
  environment:
    KUBECONFIG: "/etc/kubernetes/admin.conf"
  when: inventory_hostname in (groups['masters'] | last)
1
pkaramol

CentOS 7でも同じエラーが発生しましたが、私の場合、joinコマンドは問題なく動作したため、実際には単なる警告でした。

>  [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker
> cgroup driver. The recommended driver is "systemd". Please follow the
> guide at https://kubernetes.io/docs/setup/cri/ [preflight] Reading
> configuration from the cluster... [preflight] FYI: You can look at
> this config file with 'kubectl -n kube-system get cm kubeadm-config
> -oyaml' [kubelet-start] Downloading configuration for the kubelet from the "kubelet-config-1.14" ConfigMap in the kube-system namespace

公式ドキュメントに記載されているように、initがハングする一般的な問題が2つあります(これはjoinコマンドにも当てはまると思います)。

kubeletのデフォルトのcgroupドライバー構成は、Dockerで使用されるものとは異なります。システムログファイル(/ var/log/messageなど)を確認するか、journalctl -u kubeletからの出力を確認します。次のようなものが表示された場合:

まず 公式ドキュメント の手順を試してください。それでもうまくいかない場合は、必要に応じてさらにトラブルシューティングできるように、詳しい情報を提供してください。

0
aurelius

私はこの同じエラーメッセージで最近壊れたk8sデプロイメントスクリプトの束を持っていました... dockerがインストールを変更したようです。これを試して -

以前のインストール:apt-get isntall docker-ce

更新されたインストール:apt-get install docker-ce docker-ce-cli containerd.io

0
Master Splinter