![](/img/trans.png)
[英]EKS : Running a particular service (pods) on particular AWS autoscaling group
[英]AWS EKS: Service(LoadBalancer) running but not responding to requests
我正在使用 AWS EKS。 我已經在 kubernetes 集群中的 gunicorn 的幫助下啟動了我的 django 應用程序。
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: api
labels:
app: api
type: web
spec:
replicas: 1
template:
metadata:
labels:
app: api
type: web
spec:
containers:
- name: vogofleet
image: xx.xx.com/api:image2
imagePullPolicy: Always
env:
- name: DATABASE_HOST
value: "test-db-2.xx.xx.xx.xx.com"
- name: DATABASE_PASSWORD
value: "xxxyyyxxx"
- name: DATABASE_USER
value: "admin"
- name: DATABASE_PORT
value: "5432"
- name: DATABASE_NAME
value: "test"
ports:
- containerPort: 9000
我已經應用了這些更改,並且可以看到我的 pod 在kubectl get pods
運行
現在,我試圖通過服務對象公開它。 這是我的服務對象,
# service
---
apiVersion: v1
kind: Service
metadata:
name: api
labels:
app: api
spec:
ports:
- port: 9000
protocol: TCP
targetPort: 9000
selector:
app: api
type: web
type: LoadBalancer
該服務也已啟動並運行。 它給了我訪問服務的外部IP,這是負載均衡器的地址。 我可以看到它在 AWS 控制台中啟動了一個新的負載均衡器。 但是我無法從瀏覽器訪問它。 它說該地址沒有返回任何數據。 ELB 將實例的運行狀況檢查顯示為 OutOfService。
集群中還有其他 pod 正在運行。 當我在這些 pod 中運行printenv
時,結果如下,
root@consumer-9444cf7cd-4dr5z:/consumer# printenv | grep API
API_PORT_9000_TCP_ADDR=172.20.140.213
API_SERVICE_HOST=172.20.140.213
API_PORT_9000_TCP_PORT=9000
API_PORT=tcp://172.20.140.213:9000
API_PORT_9000_TCP=tcp://172.20.140.213:9000
API_PORT_9000_TCP_PROTO=tcp
API_SERVICE_PORT=9000
我嘗試檢查與我的 api pod 的連接,
root@consumer-9444cf7cd-4dr5z:/consumer# telnet $API_PORT_9000_TCP_ADDR $API_PORT_9000_TCP_PORT
Trying 172.20.140.213...
telnet: Unable to connect to remote host: Connection refused
但是,當我將端口轉發到我的本地主機時,我可以在我的本地主機上訪問它,
$ kubectl port-forward api-6d94dcb65d-br6px 9000
並檢查連接,
$ nc -vz localhost 9000
found 0 associations
found 1 connections:
1: flags=82<CONNECTED,PREFERRED>
outif lo0
src ::1 port 53299
dst ::1 port 9000
rank info not available
TCP aux info available
Connection to localhost port 9000 [tcp/cslistener] succeeded!
為什么我無法從其他容器和公共互聯網訪問它? 而且,安全組是正確的。
我也有同樣的問題。 這是 kubectl describe service 命令的 o/p。
kubectl describe services nginx-elb Name: nginx-elb Namespace: default Labels: deploy=slido Annotations: service.beta.kubernetes.io/aws-load-balancer-internal: true Selector: deploy=slido Type: LoadBalancer IP: 10.100.29.66 LoadBalancer Ingress: internal-a2d259057e6f94965bfc1f08cf86d4ce-884461987.us-west-2.elb.amazonaws.com Port: http 80/TCP TargetPort: 3000/TCP NodePort: http 32582/TCP Endpoints: 192.168.60.119:3000 Session Affinity: None External Traffic Policy: Cluster Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal EnsuringLoadBalancer 119s service-controller Ensuring load balancer Normal EnsuredLoadBalancer 117s service-controller Ensured load balancer
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.