首页 > 解决方案 > kubernetes v1.15.0 master 无法访问 pod ip 地址

问题描述

kubernetes v1.15.0 master 无法访问 pod ip 地址。我已经能够让它工作到 1.14,但这次它不再工作了。我一直在使用 kubeadm 在 ec2 中使用和设置 k8s 集群。

请在下面找到日志;任何意见。

[ec2-user@ip-172-31-18-31 ~]$ kubectl get nodes
NAME                                           STATUS   ROLES    AGE    VERSION
ip-172-31-16-120.ap-south-1.compute.internal   Ready    <none>   97m    v1.15.0
ip-172-31-18-31.ap-south-1.compute.internal    Ready    master   116m   v1.15.0
[ec2-user@ip-172-31-18-31 ~]$ kubectl get pod -o wide
NAME                           READY   STATUS    RESTARTS   AGE     IP          NODE                                           NOMINATED NODE   READINESS GATES
hello-deploy-7fd5fc7ff-dh9pw   1/1     Running   0          6m32s   10.44.0.3   ip-172-31-16-120.ap-south-1.compute.internal   <none>           <none>
hello-deploy-7fd5fc7ff-vrxbd   1/1     Running   0          6m32s   10.44.0.4   ip-172-31-16-120.ap-south-1.compute.internal   <none>           <none>
hello-pod1                     1/1     Running   0          22m     10.44.0.1   ip-172-31-16-120.ap-south-1.compute.internal   <none>           <none>
[ec2-user@ip-172-31-18-31 ~]$ hostname
ip-172-31-18-31.ap-south-1.compute.internal
[ec2-user@ip-172-31-18-31 ~]$ curl http://10.44.0.4

标签: kubernetes

解决方案


只需简单地为您的 pod 创建服务以在集群内访问它,服务类型应该是 ClusterIP。

尽管每个 Pod 都有一个唯一的 IP 地址,但这些 IP 在没有服务的情况下不会暴露在集群之外。服务允许您的应用程序接收流量。通过在 ServiceSpec 中指定类型,可以以不同的方式公开服务。

ClusterIP(默认)- 在集群中的内部 IP 上公开服务。这种类型使服务只能从集群内访问

蛋。:

apiVersion: v1
kind: Service
metadata:
  name: test-service
spec:
  selector:
    app: test

请记住将服务选择器与 pod 的选择器匹配。


推荐阅读