如何在不同的节点上使用Pod进行Pod ping操作?

时间:2018-09-27 21:47:40

标签: pod flannel

我希望能够从一个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通信正常工作的帮助?

1 个答案:

答案 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/shapk add curl