永远加入集群

pka*_*mol 6 kubernetes kubeadm

我已经设置了主节点,并且尝试加入一个工作节点,如下所示:

kubeadm join 192.168.30.1:6443 --token 3czfua.os565d6l3ggpagw7 --discovery-token-ca-cert-hash sha256:3a94ce61080c71d319dbfe3ce69b555027bfe20f4dbe21a9779fd902421b1a63
Run Code Online (Sandbox Code Playgroud)

但是,该命令将永久挂起,处于以下状态:

[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/
Run Code Online (Sandbox Code Playgroud)

既然这只是一个警告,为什么它实际上会失败?

编辑:我注意到以下内容/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.
Run Code Online (Sandbox Code Playgroud)

Chr*_*ala 5

首先,如果您想在您的工作人员加入 master 时查看更多详细信息,请使用:

kubeadm join 192.168.1.100:6443 --token m3jfbb.wq5m3pt0qo5g3bt9     --discovery-token-ca-cert-hash sha256:d075e5cc111ffd1b97510df9c517c122f1c7edf86b62909446042cc348ef1e0b --v=2
Run Code Online (Sandbox Code Playgroud)

使用上面的命令,我可以看到我的工人无法与主人建立连接,所以我只是停止了防火墙:

systemctl stop firewalld 
Run Code Online (Sandbox Code Playgroud)


pka*_*mol 2

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)
Run Code Online (Sandbox Code Playgroud)