[英]GKE - Bypass Pod LoadBalancer (Pod's external IP) to Pod's container's IP at runtime for WebSocket purpose
[英]Kubernetes Pod container's websocket not reachable
我创建了一个示例春季启动应用程序,该应用程序在localhost:8080 / ws公开了一个websocket端点。 基本上,我遵循本指南,只是我没有使用.withSockJS选项。
当我在本地运行此应用程序时,我的示例角度应用程序可以连接到websocket。
现在,我想将两个容器(spring boot应用程序和angular应用程序)都放在一个Kubernetes容器中。 当我运行它们时,它们都会旋转。 然后,我公开了角度前端的端口,以便能够查看该应用程序。 但是日志告诉我它无法通过ws:// localhost:8080 / ws连接到websocket后端
即使我连接到后端容器,也可以看到它已启动并正在运行,但是我的curl websocket测试也总是失败。
这是我的pod def:
---
apiVersion: v1
kind: Pod
metadata:
name: my-app.example.org
labels:
app: my-app-system
spec:
containers:
- name: backend
image: test/my-app-backend
ports:
- containerPort: 8080
env:
- name: SPRING_PROFILES_ACTIVE
value: "dev-docker-postgres"
- name: JAVA_OPTIONS
value: "-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n"
- name: frontend
image: test/my-app-frontend
ports:
- containerPort: 4200
imagePullPolicy: Always
command: ["/bin/sh"]
args: ["-c", "npm run kubstart"]
imagePullSecrets:
- name: registrykey
还有一件事:
当我另外通过NodePort类型公开后端容器的端口,并使用服务的URL在我的机器上本地启动angular app时,websocket连接成功。
看来我无法让pod中的两个容器通过ws://相互通信
没关系...当然,这不能通过本地主机运行。 我需要公开后端的端口并“从外部”访问websocket
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.