我希望能够从一个Pod ping到另一个Pod。如果Pod位于同一主机上,则可以使用。如果Pod位于不同的主机上,则无法使用。
$ kubectl获取pod,svc -o宽 名称就绪状态重新开始年龄IP节点命名节点 pod / bbtest-5949c4d8c5-259wx 1/1正在运行1 2d 192.168.114.158 gordon-dm1.sdsc.edu pod / busybox-7cd98849ff-m75qv 0/1运行0 3m 192.168.78.30 gordon-dm3.sdsc.edu pod / nginx-64f497f8fd-j4qml 1/1运行0 20m 192.168.114.163 gordon-dm1.sdsc.edu pod / nginx-64f497f8fd-tw4vb 1/1正在运行0 22m 192.168.209.32 gordon-dm4.sdsc.edu
名称类型集群IP外部IP端口年龄选择器 服务/ kubernetes ClusterIP 10.96.0.1 443 / TCP 17d $ kubectl运行busybox --rm -ti --image busybox / bin / sh /#ping 192.168.114.163 PING 192.168.114.163(192.168.114.163):56个数据字节 ^ C -192.168.114.163 ping统计- 已发送4个数据包,已接收0个数据包,丢失率100% /#
我设置了法兰绒,但没有做任何改变。我尝试felixconfiguration只是得到一个错误:资源不存在:FelixConfiguration(默认)
是否有任何帮助使Pod到Pod通信正常工作的帮助?
答案 0 :(得分:0)
最佳做法是使用 service
并打开需要接收连接和使用服务主机名的 nginx 特定端口。
使用 curl -I <service-name>.<namespace>
进行测试。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
spec:
selector:
matchLabels:
run: my-nginx
replicas: 2
template:
metadata:
labels:
run: my-nginx
spec:
containers:
- name: my-nginx
image: nginx
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: my-nginx
labels:
run: my-nginx
spec:
ports:
- port: 80
protocol: TCP
selector:
run: my-nginx
结果:
/ # curl -I my-nginx.default
HTTP/1.1 200 OK
Server: nginx/1.19.6
Date: Sun, 03 Jan 2021 17:44:26 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 15 Dec 2020 13:59:38 GMT
Connection: keep-alive
ETag: "5fd8c14a-264"
Accept-Ranges: bytes
P.S.我使用了 kubectl run alpine --rm -ti --image alpine /bin/sh
和 apk add curl