[英]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.