docker - 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 上访问?
这是运行服务的屏幕截图:
解决方案
根据评论,目标端口应该是 80,因为这是应用程序设置监听的端口。很高兴我能帮上忙。大约一个月前从文档中找到它。
https://kubernetes.io/docs/concepts/services-networking/service/
推荐阅读
- matlab - 是否有 Matlab 函数或代码来计算 5D 信号的 SNRdB?
- excel - WorksheetFunction.Vlookup 在 For-Each 循环中返回错误
- c# - 如何处理所有将回答包含问题详细信息的 ValidationException
- scala - Scala Maps,按键合并多个地图
- jquery - Datepicker defaultdate 根本不起作用
- ios - 如何转换 UnsafeMutablePointer
到 Swift 中的 UIImage - python - 从 Python 中的 dict 内的列表中删除元素
- r - 如何将 postgresql 数据中的数据提取到数据框中以与 sqldf 一起使用
- python - 如何散列给定范围的已散列值?
- apache-kafka - Orderer 系统通道映射到相同的 Kafka 主题