首页 > 解决方案 > Gcloud Kubernetes 连接拒绝暴露服务

问题描述

我无法连接到部署在 Google Kubernetes 上的 docker 容器的公开 IP。我一直在大致遵循本教程,但使用的是我自己的应用程序。

部署似乎工作正常,访问云仪表板时一切都是绿色并正在运行,但是当尝试访问公开 IP 上已部署的应用程序时,我收到浏览器错误:

无法访问此站点 35.231.27.158 拒绝连接

如果我 ping IP,我会收到回复。

kubectl get pods产生以下内容:

NAME                        READY     STATUS    RESTARTS   AGE
mtg-dash-7874f6c54d-nktjn   1/1       Running   0          21m

kubectl get service显示以下内容:

NAME         TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)        AGE
kubernetes   ClusterIP      10.7.240.1     <none>          443/TCP        23m
mtg-dash     LoadBalancer   10.7.242.240   35.231.27.158   80:30306/TCP   20m

kubectl describe svc显示以下内容:

Name:                     mtg-dash
Namespace:                default
Labels:                   run=mtg-dash
Annotations:              <none>
Selector:                 run=mtg-dash
Type:                     LoadBalancer
IP:                       10.7.242.240
LoadBalancer Ingress:     35.231.27.158
Port:                     <unset>  80/TCP
TargetPort:               8080/TCP
NodePort:                 <unset>  30306/TCP
Endpoints:                10.4.0.6:8080
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason                Age   From                Message
  ----    ------                ----  ----                -------
  Normal  EnsuringLoadBalancer  37m   service-controller  Ensuring load balancer
  Normal  EnsuredLoadBalancer   37m   service-controller  Ensured load balancer

我的Dockerfile包含以下内容:

FROM nginx:alpine

COPY nginx.conf /etc/nginx/nginx.conf

WORKDIR /usr/share/nginx/html

COPY dist/mtg-dash .

我有一种感觉,我错过了一些明显的东西。

我还需要做什么才能将其配置为可在 Internet 上访问?

这是运行服务的屏幕截图:

在此处输入图像描述

标签: dockerkubernetesgoogle-cloud-platform

解决方案


根据评论,目标端口应该是 80,因为这是应用程序设置监听的端口。很高兴我能帮上忙。大约一个月前从文档中找到它。

https://kubernetes.io/docs/concepts/services-networking/service/


推荐阅读