我跟随着答案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
$ 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
节点上。我检查了他们是否使用了相同的网络。
网络是
NAT
Host-only Adapter Names:
vboxnet0`
执行kubeadm join
加入集群。
如果从cli获得确切的输出。更糟的是。因为命令输出正在调用localhost
,并且当涉及到执行程序时,这意味着它会调用自身,这是错误的,因此在执行之后。总站会显示超时错误
kubeadm join 192.168.99.105:8443 --token 856tch.tpccuji4nnc2zq5g --discovery-token-ca-cert-hash sha256:cfbb7a0f9ed7fca018b45fdfecb753a88aec64d4e46b5ac9ceb6d04bbb0a46a6
当然我没有任何节点
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready master 104m v1.13.3
问题:
如何让kubeadm
在cli中正确跟随我给定的IP地址?
如何防止localhost
在此过程中回来?
答案 0 :(得分:0)
在第2步中,您应该运行以下命令:
kubeadm令牌创建--print-join-command
这应该提供将工作节点添加到集群所需的精确语法。不要改变任何东西
答案 1 :(得分:0)
这似乎是当前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)。
要实现这一目标,必须完成许多工作。