spring-boot - Kubernetes 服务连接被拒绝
问题描述
我想用 Kubernetes 创建一个示例应用程序,但是如果我尝试连接到 Kubernetes 中的响应式服务,我会被拒绝连接。
例如,如果我从另一个 pod 连接到http://random-generator-svc:5050/,我会收到一个错误,提示连接被拒绝。
这是为随机生成器创建服务和部署的 yaml 文件:
apiVersion: v1
kind: Service
metadata:
name: random-generator-svc
labels:
app: rand-gen
spec:
selector:
app: rand-gen
type: NodePort
ports:
- protocol: "TCP"
port: 5050
targetPort: 5050
name: http
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: random-generator-deployment
labels:
app: rand-gen
spec:
replicas: 2
selector:
matchLabels:
app: rand-gen
template:
metadata:
labels:
app: rand-gen
spec:
containers:
- name: random-generator-container
image: toky03/random-generator-image:1.2
ports:
- containerPort: 5050
这是指定“调用者”应用程序的服务和部署的 yaml 文件:
apiVersion: v1
kind: Service
metadata:
name: middle-tier-svc
labels:
app: rand-gen
spec:
selector:
app: rand-gen
type: NodePort
ports:
- protocol: "TCP"
port: 7070
targetPort: 7070
name: http
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: middle-tier-controller
labels:
app: rand-gen
spec:
replicas: 1
selector:
matchLabels:
app: rand-gen
template:
metadata:
labels:
app: rand-gen
spec:
containers:
- name: random-controller-container
image: toky03/random-controller-image:1.2
ports:
- containerPort: 7070
我将类型更改NodePort
为尝试是否也存在此错误,但我能够从集群外部访问服务。我的 Kubernetes DNS 解析器可能有问题吗?
非常感谢您的帮助。
解决方案
默认情况下,kubernetes 创建一个虚拟代理。然后,您可以在端口转发后访问您的服务。
kubectl port-forward svc random-generator-svc 5050:5050
推荐阅读
- c# - Azure 是否有用于应用服务域和 SSL 测试的沙箱?
- php - 当站点用户使用 php 出现 404 错误时,如何找到尝试的 URL?
- node.js - admin.auth().verifyIdToken(idToken) 错误:在 8.0.0 之后无法使用 firebase-admin 加载默认凭据
- python - 最近邻算法?
- android - Android Firebase 检索每个孩子的前 2 个值
- html - 通过组件应用全局样式
- vue.js - 让 Vega-Lite / D3 在 Nuxt.js 中工作
- android - 在 Firebase Firestore 中获取当前服务器日期和时间
- swift - 字符串到数据:为什么使用 string.data(using: .utf8) 而不是 Data(string.utf8)
- c - 二叉树比较和递归插入