kubernetes - 无法访问 Kubernetes 服务 - 连接被拒绝
问题描述
我正在尝试在我的 Kubernetes 集群上运行一个非常基本的应用程序。它由一个 ASP.NET Core WebAPI 和一个访问 WebAPI 的 .NET Core 控制台应用程序组成。
在控制台应用程序中,我收到错误:“连接被拒绝”:
[rro-a@dh-lnx-01 ~]$ sudo kubectl exec -it synchronizer-54b47f496b-lkb67 -n pv2-test -- /bin/bash
root@synchronizer-54b47f496b-lkb67:/app# curl http://svc-coreapi/api/Synchronizations
curl: (7) Failed to connect to svc-coreapi port 80: Connection refused
root@synchronizer-54b47f496b-lkb67:/app#
以下是我的服务 YAML:
apiVersion: v1
kind: Service
metadata:
name: svc-coreapi
namespace: pv2-test
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
---
WebAPI 的 YAML:
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
creationTimestamp: null
labels:
app: pv2
name: coreapi
namespace: pv2-test
spec:
replicas: 1
selector:
matchLabels:
app: pv2
strategy: {}
template:
metadata:
annotations:
creationTimestamp: null
labels:
app: pv2
spec:
containers:
- env:
- name: DBNAME
value: <DBNAME>
- name: DBPASS
value: <PASSWORD>
- name: DBSERVER
value: <SQLSERVER>
- name: DBUSER
value: <DBUSER>
image: myrepoapi:latest
name: coreapi
ports:
- containerPort: 80
resources: {}
restartPolicy: Always
imagePullSecrets:
- name: pv2-repo-cred
status: {}
最有趣的是:当我执行kubectl expose deployment coreapi --type=NodePort --name=svc-coreapi
它时,它可以工作,但我不希望 WebAPI 暴露在外面。省略--type=NodePort
将类型恢复为ClusterIP
,我将再次获得 Connection Refused。
谁能告诉我我能做些什么来解决这个问题?
解决方案
正如@David Maze 建议的那样,您的ClusterIP
服务定义缺少选择器字段,该字段负责选择一组带有键和值的Pods
标签,如您的示例所示:app
pv2
...
spec:
replicas: 1
selector:
matchLabels:
app: pv2
strategy: {}
template:
metadata:
annotations:
creationTimestamp: null
labels:
app: pv2
...
您的服务定义可能如下所示,它应该可以正常工作:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: pv2
ports:
- protocol: TCP
port: 80
targetPort: 80
推荐阅读
- java - 如何使用用户设置打印 PDF 文档?
- oracle - Oracle:日期和时间戳之间的差异(0)
- amazon-web-services - AWS SageMaker 上的数据预处理
- kubernetes - StorageClass ProvisioningFailed:在 matchLabelExpressions 中找到不受支持的键:topology.kubernetes.io/region
- openvpn - OpenVPN 客户端作为互联网网关
- logging - 如何为 3rd 方库使用 bunyan 日志记录?
- tensorflow - Tensorflow 模型权重没有完全保存
- javascript - 如何成功等待函数结束?
- android - NFC读卡时,会自行打开应用,请问如何解决?
- file-upload - DevExtreme - 带有 FileUpload 的单元格