kubernetes - 将其公开为服务后无法访问由谷歌 kubernetes 引擎(GKE)创建的 IP
问题描述
我有一个应用程序,它将启动一个服务器127.0.0.1:8080
并使用 aDockerfile
创建一个用于在 GKE 上托管它的图像。我port 8080
在 kubernetes 集群上部署了这个应用程序。然后我将服务公开LoadBalancer
为同一端口 8080,但不允许从外部访问它。所以我为外部访问创建了一个入口,但仍然无法正常工作。当我单击入口提供的 IP 时,我收到此错误:
Error: Server Error
The server encountered a temporary error and could not complete your request.
Please try again in 30 seconds.
我想问一下我在实施过程中是否遗漏了什么或做错了什么。
我的 YAML 文件:
---
apiVersion: "apps/v1"
kind: "Deployment"
metadata:
name: "app"
namespace: "default"
labels:
app: "app"
spec:
replicas: 3
selector:
matchLabels:
app: "app"
template:
metadata:
labels:
app: "app"
spec:
containers:
- name: "app-sha256-1"
image: "gcr.io/project-1234/github.com/user/app@sha256:b17b8159668d44fec3d"
---
apiVersion: "autoscaling/v2beta1"
kind: "HorizontalPodAutoscaler"
metadata:
name: "app-hpa-y3ay"
namespace: "default"
labels:
app: "app"
spec:
scaleTargetRef:
kind: "Deployment"
name: "app"
apiVersion: "apps/v1"
minReplicas: 1
maxReplicas: 5
metrics:
- type: "Resource"
resource:
name: "cpu"
targetAverageUtilization: 80
---
apiVersion: "v1"
kind: "Service"
metadata:
name: "app-service"
namespace: "default"
labels:
app: "app"
spec:
ports:
- protocol: "TCP"
port: 8080
selector:
app: "app"
type: "LoadBalancer"
loadBalancerIP: ""
---
apiVersion: "extensions/v1beta1"
kind: "Ingress"
metadata:
name: "ingress"
namespace: "default"
spec:
backend:
serviceName: "app-service"
servicePort: 8080
谢谢!期待建议。
解决方案
start a server at 127.0.0.1:8080
这将允许您的应用仅接受 pod 内的连接。改为绑定0.0.0.0
。
还有你的部署:
...
containers:
- name: "app-sha256-1"
image: "gcr.io/project-1234/github.com/user/app@sha256:b17b8159668d44fec3d"
ports:
- containerPort: <the port# that your container serves>
你的服务:
...
ports:
- protocol: "TCP"
port: 8080
targetPort: <the port that your container serves>
推荐阅读
- embedded - TlsrComSwireWriter 在 Mac OS 上无法与 Cp2102 一起使用
- apache-kafka - 以编程方式清除 Kafka 主题
- python - 带有 DB2 的 Django 3.2 项目(IBM_DB 驱动程序)
- printing - 打印结果在 databricks 笔记本中被截断
- matlab - MATLAB:绘制 1D 条件分布,其中 k 密度堆叠在 3D 图中
- python - 用列表python中的数字替换哈希
- jquery - 如何使用SpringBoot根据另一个下拉列表动态更新下拉列表
- r - 在 R 中寻找一个循环来一次更改函数中对象和值的名称
- c# - FirstFloor ModernUI 无法通过 TitleLinks.LinkNavigator 导航
- php - phpspreadsheet getElementsByTagNameNS() on null