Kubernetes 为什么可以';t我使用格式http://<;到达另一个命名空间中的pod;带破折号的ip_>&书信电报;命名空间>;。吊舱,集群,本地?

Kubernetes 为什么可以';t我使用格式http://<;到达另一个命名空间中的pod;带破折号的ip_>&书信电报;命名空间>;。吊舱,集群,本地?,kubernetes,kubernetes-pod,project-calico,k3s,Kubernetes,Kubernetes Pod,Project Calico,K3s,我在其中创建了一个名称空间和一个pod,如下所示: #创建名称空间 kubectl创建命名空间1 #创建pod(注意-无服务) kubectl运行rest-none--image nginx--labels app=rest--expose--port 80 然后,我创建了第二个名称空间和pod(我将使用它来访问第一个名称空间和pod) #创建名称空间 kubectl创建命名空间2 #创建pod(注意-无服务) kubectl run call rest-n2-image alpine-sle

我在其中创建了一个名称空间和一个pod,如下所示:

#创建名称空间
kubectl创建命名空间1
#创建pod(注意-无服务)
kubectl运行rest-none--image nginx--labels app=rest--expose--port 80
然后,我创建了第二个名称空间和pod(我将使用它来访问第一个名称空间和pod)

#创建名称空间
kubectl创建命名空间2
#创建pod(注意-无服务)
kubectl run call rest-n2-image alpine-sleep 3600
然后我获取第一个pod的ip地址:

kubectl获得吊舱休息-n一-o宽
#这给了我
#名称就绪状态重新启动老化IP节点指定节点就绪门
#其余1/1运行0 10m 192.168.0.142 k3d-dev-server-0
我用那个ip地址从另一个吊舱呼叫它

#这使用K8s为DNS创建的格式
kubectl exec-it call rest-n2--wget-qO--timeout=2http://192-168-0-142.one.pod.cluster.local
上面的代码刚好超时

wget:下载超时
命令终止,退出代码为1

为了验证,我检查了该群集的域,并且该域是正确的:

#在吊舱内运行此操作
kubectl exec-it调用rest-n2-cat/etc/resolv.conf
#并打印出:
#
#搜索2.svc.cluster.local svc.cluster.local cluster.local
#名称服务器10.43.0.10
#备选方案:5
如果pod在同一个名称空间中,它们可以相互联系(但是我不需要使用ip地址)

你知道我怎样才能让他们互相联系吗

我正在使用:

  • k3d版本v4.4.1
  • k3s版本v1.20.5-k3s1(默认)
  • 印花布

    • 原来这是因为我用的是印花布。对于k3d中使用的默认法兰绒,上述方法确实有效。但是,在Calico中,它为POD创建集群范围的IP地址,而不是每个命名空间中的IP地址。因此,以下工作:

      kubectl exec-it调用rest-n2--wget-qO--timeout=2http://192.168.0.142