Kubernetes入门。我似乎无法连接在不同节点上运行的Pod相互通信。
我在三个AWS EC2实例(一个主服务器,两个工作人员all with src/dest check disabled as described by the Calico website)上建立了带有Calico网络的Kubernetes集群。每个实例都使用相同的安全组,并为10.0.0.0/8和192.168.0.0/16打开所有TCP / UDP / ICMP端口,以确保群集内没有阻塞的端口。
使用香草仓库安装
~$ sudo apt-get install -y docker.io kubelet kubeadm kubectl
~$ sudo kubeadm init --pod-network-cidr=192.168.0.0/16
和基本的Calico安装
~$ kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
将两个工作节点加入集群
sudo kubeadm join <Master IP>:6443 --token <Token> --discovery-token-ca-cert-hash sha256:<cert hash>
启动并运行后,我创建了三个副本进行测试:
~$ kubectl run pingtest --image=busybox --replicas=3 -- sleep infinity
第一个节点上两个,第二个节点上
~$ kubectl get pod -l run=pingtest -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pingtest-7689dd958f-9mfgl 1/1 Running 0 15m 192.168.218.65 ip-10-78-31-198 <none> <none>
pingtest-7689dd958f-l288v 1/1 Running 0 15m 192.168.218.66 ip-10-78-31-198 <none> <none>
pingtest-7689dd958f-z2l97 1/1 Running 0 15m 192.168.237.65 ip-10-78-11-83 <none> <none>
登录第一个Pod上的外壳
~$ kubectl exec -ti pingtest-7689dd958f-9mfgl /bin/sh
当我在同一节点上ping pod时,一切正常
/ # ping 192.168.218.66 -c 2
PING 192.168.218.66 (192.168.218.66): 56 data bytes
64 bytes from 192.168.218.66: seq=0 ttl=63 time=0.105 ms
64 bytes from 192.168.218.66: seq=1 ttl=63 time=0.078 ms
但是当我在另一个节点上ping一个pod时,没有响应
/ # ping 192.168.237.65 -c 2
PING 192.168.237.65 (192.168.237.65): 56 data bytes
--- 192.168.237.65 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss
我想念什么?是什么原因阻止了不同节点上的Pod之间的通信?
答案 0 :(得分:1)
我发现了问题。它是与AWS配置一起使用的,您必须在该环境中完成一些额外的工作。
curl
命令为Pods / ServiceIP寻址
AWS Security Group Settings