gpt4 book ai didi

kubernetes - 从任何POD调用服务

转载 作者:行者123 更新时间:2023-12-02 11:37:56 26 4
gpt4 key购买 nike

我想如何从节点内部或外部的任何Pod调用服务。

我有3个具有部署和服务的节点。我已经有kube-proxy。

我在其他Pod上执行bash:

kubectl exec --namespace=develop myotherdpod-78c6bfd876-6zvh2 -i -t -- /bin/bash

在我的另一个Pod中,我试图执行curl:
curl -v http://myservice.develop.svc.cluster.local/user

这是我创建的服务:
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "myservice",
"namespace": "develop",
"selfLink": "/api/v1/namespaces/develop/services/mydeployment-svc",
"uid": "1b5fb4ae-ecd1-11e7-8599-02cc6a4bf8be",
"resourceVersion": "10660278",
"creationTimestamp": "2017-12-29T19:47:30Z",
"labels": {
"app": "mydeployment-deployment"
}
},
"spec": {
"ports": [
{
"name": "http",
"protocol": "TCP",
"port": 80,
"targetPort": 8080
}
],
"selector": {
"app": "mydeployment-deployment"
},
"clusterIP": "100.99.99.140",
"type": "ClusterIP",
"sessionAffinity": "None"
},
"status": {
"loadBalancer": {}
}
}

最佳答案

在我看来,您部署的网络覆盖可能不正确。首先,我将仔细检查Pod是否可以访问kube-dns并获得服务的正确IP。

nslookup myservice.develop.svc.cluster.local
nslookup myservice # If they are in the same namespace it should work as well

如果您能够确认这一点,那么我还将检查kube-proxy之类的服务是否正常运行。您可以通过使用
systemctl status kube-proxy

如果这样做不起作用,我还将通过执行以下操作来检查覆盖网络中的Pod
kubectl get pods --namespace=kube-system

如果一切正常,我将尝试使用其他网络覆盖: https://kubernetes.io/docs/concepts/cluster-administration/networking/

如果两者都不起作用,我将检查是否存在阻止节点之间进行某些通信的防火墙规则。

关于kubernetes - 从任何POD调用服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48092942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com