kubernetes - 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
解决方案
只需简单地为您的 pod 创建服务以在集群内访问它,服务类型应该是 ClusterIP。
尽管每个 Pod 都有一个唯一的 IP 地址,但这些 IP 在没有服务的情况下不会暴露在集群之外。服务允许您的应用程序接收流量。通过在 ServiceSpec 中指定类型,可以以不同的方式公开服务。
ClusterIP(默认)- 在集群中的内部 IP 上公开服务。这种类型使服务只能从集群内访问
蛋。:
apiVersion: v1
kind: Service
metadata:
name: test-service
spec:
selector:
app: test
请记住将服务选择器与 pod 的选择器匹配。
推荐阅读
- html - 在 iOS 应用程序的背景中查找 html 中的值
- django - 如何在 django 项目中导入和显示 csv 文件
- wordpress - 如何在 ClickFunnels 页面上的灯箱中自动播放视频?
- git - 日期错误的 Git 提交
- javascript - 如何通过在javascript中单击鼠标触发输入中的按键
- javascript - 我如何知道某个元素是否在屏幕上?
- vee-validate - 使用带有 vee-validate 的日期类型
- zsh - 如何在我的 zsh 主题中有条件地打印返回码?
- sql - 如何展示只有一个项目的员工,以及他们的项目。多对多关系问题
- reactjs - 在测试渲染获取的 API 数据的 React 组件时,如何在做出任何断言之前最好地等待该数据?