簡體   English   中英

無法與使用 kubernetes 在 AWS EC2 實例中本地創建的 Pod 通信

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM