[英]Not able to communicate with Pods locally created in AWS EC2 instance with kubernetes
我在 Ubuntu EC2 实例中创建了简单的 nginx 部署,并通过 kubernetes 集群中的服务暴露于端口,但我无法在本地环境中 ping 通。 我的 Pod 运行良好,服务也成功创建。 我在下面分享一些命令输出
kubectl 获取节点
NAME STATUS ROLES AGE VERSION
ip-172-31-39-226 Ready <none> 2d19h v1.16.1
master-node Ready master 2d20h v1.16.1
kubectl 获取 po -o 宽
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-deployment-54f57cf6bf-dqt5v 1/1 Running 0 101m 192.168.39.17 ip-172-31-39-226 <none> <none>
nginx-deployment-54f57cf6bf-gh4fz 1/1 Running 0 101m 192.168.39.16 ip-172-31-39-226 <none> <none>
sample-nginx-857ffdb4f4-2rcvt 1/1 Running 0 20m 192.168.39.18 ip-172-31-39-226 <none> <none>
sample-nginx-857ffdb4f4-tjh82 1/1 Running 0 20m 192.168.39.19 ip-172-31-39-226 <none> <none>
kubectl 获取 svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d20h
nginx-deployment NodePort 10.101.133.21 <none> 80:31165/TCP 50m
sample-nginx LoadBalancer 10.100.77.31 <pending> 80:31854/TCP 19m
kubectl 描述部署 nginx-deployment
Name: nginx-deployment
Namespace: default
CreationTimestamp: Mon, 14 Oct 2019 06:28:13 +0000
Labels: <none>
Annotations: deployment.kubernetes.io/revision: 1
kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"name":"nginx-deployment","namespace":"default"},"spec":{"replica...
Selector: app=nginx
Replicas: 2 desired | 2 updated | 2 total | 2 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app=nginx
Containers:
nginx:
Image: nginx:1.7.9
Port: 80/TCP
Host Port: 0/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: <none>
NewReplicaSet: nginx-deployment-54f57cf6bf (2/2 replicas created)
Events: <none>
现在我无法从 master ping 192.168.39.17/16/18/19,也无法从 master 访问 curl 172.31.39.226:31165/31854。 任何帮助将不胜感激..
根据您提供的信息。 从讨论中,我们发现工作节点运行了 Nginx pod。 并且您已将 NodePort 服务和负载均衡器服务附加到它。
这里唯一缺少的是您尝试访问它的服务器。
所以,我试图达到这个 URL 52.201.242.84:31165
。 我认为您需要做的就是将此端口列入白名单以供公共访问或 IP。 这可以通过工作节点 EC2 的安全组来完成。
现在上面的 URL 是由工作节点的公共 IP 加上(+)附加的NodePort svc 构建的。 因此,这是一个简单的公式,您可以使用它来获取正在运行的 pod 的确切地址。
Pod Access URL = Public IP of Worker Node + The NodePort
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.