【问题标题】:how to communicate with daemonset pod from another pod in another node?如何与另一个节点中另一个 pod 的 daemonset pod 通信?
【发布时间】:2022-01-25 22:06:03
【问题描述】:
我有一个在所有节点上运行的守护进程配置。
每个 pod 都在端口 34567 上侦听。我希望不同节点上的其他 pod 与该 pod 通信。我怎样才能做到这一点?
【问题讨论】:
标签:
kubernetes
service
daemonset
【解决方案1】:
如下图找到目标Pod的IP地址
controlplane $ k get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
coredns-fb8b8dccf-42pq8 1/1 Running 1 5m43s 10.88.0.4 node01 <none> <none>
coredns-fb8b8dccf-f9n5x 1/1 Running 1 5m43s 10.88.0.3 node01 <none> <none>
etcd-controlplane 1/1 Running 0 4m38s 172.17.0.23 controlplane <none> <none>
katacoda-cloud-provider-74dc75cf99-2jrpt 1/1 Running 3 5m42s 10.88.0.2 node01 <none> <none>
kube-apiserver-controlplane 1/1 Running 0 4m33s 172.17.0.23 controlplane <none> <none>
kube-controller-manager-controlplane 1/1 Running 0 4m45s 172.17.0.23 controlplane <none> <none>
kube-keepalived-vip-smkdc 1/1 Running 0 5m27s 172.17.0.26 node01 <none> <none>
kube-proxy-8sxkt 1/1 Running 0 5m27s 172.17.0.26 node01 <none> <none>
kube-proxy-jdcqc 1/1 Running 0 5m43s 172.17.0.23 controlplane <none> <none>
kube-scheduler-controlplane 1/1 Running 0 4m47s 172.17.0.23 controlplane <none> <none>
weave-net-8cxqg 2/2 Running 1 5m27s 172.17.0.26 node01 <none> <none>
weave-net-s4tcj 2/2 Running 1 5m43s 172.17.0.23 controlplane <none> <none>
下一个“exec”进入原始 pod - 在我的示例中为 kube-proxy-8sxkt
kubectl -n kube-system exec -it kube-proxy-8sxkt sh
接下来,您将使用目标 pod 的 IP 和端口(10256 - 我的示例)号进行连接。请注意,如果您的原始容器的映像不包含应用程序,您可能需要安装 curl/telnet
# curl telnet://172.17.0.23:10256
HTTP/1.1 400 Bad Request
Content-Type: text/plain; charset=utf-8
Connection: close
【解决方案2】:
你可以通过 pod 的 IP 调用。
注意:此IP只能在k8s集群中使用。