【问题标题】:Can join the cluster, but unable to fetch kubeadm-config可以加入集群,但无法获取 kubeadm-config
【发布时间】:2019-08-06 07:58:17
【问题描述】:

我正在关注答案here step 6th。制作我自己的本地 minikube single master and 2 nodes 集群。

master 姓名minikube

$ kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.3", GitCommit:"721bfa751924da8d1680787490c54b9179b1fed0", GitTreeState:"clean", BuildDate:"2019-02-01T20:05:53Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
$ kubelet --version
Kubernetes v1.13.3

通过以下方式登录minikube 控制台 minikube ssh

然后用ifconfig检查ip地址

$ ifconfig
docker0   Link encap:Ethernet  HWaddr 02:42:0E:E5:B4:9C
          inet addr:172.17.0.1  Bcast:172.17.255.255  Mask:255.255.0.0
          inet6 addr: fe80::42:eff:fee5:b49c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:18727 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21337 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1621416 (1.5 MiB)  TX bytes:6858635 (6.5 MiB)

eth0      Link encap:Ethernet  HWaddr 08:00:27:04:9E:5F
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe04:9e5f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:139646 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11964 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:202559446 (193.1 MiB)  TX bytes:996669 (973.3 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:10:7A:A5
          inet addr:192.168.99.105  Bcast:192.168.99.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe10:7aa5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2317 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2231 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:197781 (193.1 KiB)  TX bytes:199788 (195.1 KiB)

因此我的minikube ip地址是192.168.99.105

在我的VM 节点上。我检查过他们使用的是同一个网络。 网络是

  1. NAT

  2. Host-only Adapter Names:vboxnet0`

这是nmap 证明没有针对连接端口的防火墙

执行kubeadm join 加入集群。 如果它从 cli 获得准确的输出。情况更糟。因为命令输出调用localhost,当涉及到执行程序时,这意味着它调用了自己,这是错误的,因此在执行它之后。终端会显示超时错误

kubeadm join 192.168.99.105:8443 --token 856tch.tpccuji4nnc2zq5g --discovery-token-ca-cert-hash sha256:cfbb7a0f9ed7fca018b45fdfecb753a88aec64d4e46b5ac9ceb6d04bbb0a46a6

kubeadm 告诉我localhost 回来!

我没有得到任何节点

$ kubectl get nodes
NAME       STATUS   ROLES    AGE    VERSION
minikube   Ready    master   104m   v1.13.3

问题:

  1. 如何让kubeadm在cli中正确跟随我给定的ip地址?

  2. 如何防止localhost在过程中回来?

【问题讨论】:

    标签: kubernetes localhost kubectl minikube kubeadm


    【解决方案1】:

    在第 2 步中,您应该运行以下命令:

    kubeadm 令牌创建 --print-join-command

    这应该提供向集群添加工作节点所需的精确语法。不要改变任何东西

    【讨论】:

    • 感谢分享。请检查我更新的问题。
    【解决方案2】:

    这似乎是当前 Minikube 代码的一个问题,我猜自从发布帖子以来它已经改变了。 看看https://github.com/kubernetes/minikube/issues/3916。 我已经设法通过 DNATting 127.0.0.1:8443 将第二个节点加入到原来的 minikube 主节点。

    只是 FTR,我在第二个节点添加了 /etc/rc.local: (将 LOCAL_IF、MASTER_IP 和 WORKER_IP 替换为敏感数据)

    #!/bin/sh
    echo 1 > /proc/sys/net/ipv4/conf/<LOCAL_IF>/route_localnet
    /sbin/iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --destination-port
    8443 -j DNAT --to-destination <MASTER_IP>:8443
    /sbin/iptables -t nat -A POSTROUTING -p tcp -s 127.0.0.1 -d <MASTER_IP>
    --dport 8443 -j SNAT --to <WORKER_IP>
    

    但问题并没有就此结束。安装法兰绒:

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    

    工作(在通过控制器管理器分配节点 CIDR 之后),但我的第二个节点不知何故安装了不同的 kubelet,将 cni 安装为网络插件,并最终创建了一个与 docker 网络冲突的新桥 (cni0)。

    要让它飞起来,有很多东西必须协同工作。

    【讨论】:

    • 感谢分享。我将再次回到这个问题。
    猜你喜欢
    • 2020-04-07
    • 2020-09-24
    • 2019-09-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 2019-04-03
    • 1970-01-01
    相关资源
    最近更新 更多