gpt4 book ai didi

Kubernetes 节点端口不工作

转载 作者:行者123 更新时间:2023-12-02 03:19:06 27 4
gpt4 key购买 nike

我创建了一个 YAML 文件,其中一个 pod 中包含三个图像(它们需要通过 127.0.0.1 相互通信),看起来一切正常。我已经在 yaml 文件中定义了一个节点端口。

有一个部署定义的应用程序它包含三个图像:

  • contacts-db(MySQL 数据库)
  • 前端(Angular 网站)
  • net-core(API)

我定义了三个服务,每个容器一个。在那里我定义了类型 NodePort 来访问它。

因此我检索了服务以获取端口号:

NAME          CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
contacts-db 10.103.67.74 <nodes> 3306:30241/TCP 1d
front-end 10.107.226.176 <nodes> 80:32195/TCP 1d
net-core 10.108.146.87 <nodes> 5000:30245/TCP 1d

我在浏览器中导航到 http://:32195,它一直在加载。它没有连接。这是完整的 Yaml 文件:

---
apiVersion: v1
kind: Namespace
metadata:
name: three-tier
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: applications
labels:
name: applications
namespace: three-tier
spec:
replicas: 1
template:
metadata:
labels:
name: applications
spec:
containers:
- name: contacts-db
image: mysql/mysql-server #TBD
env:
- name: MYSQL_ROOT_PASSWORD
value: quintor
- name: MYSQL_DATABASE
value: quintor #TBD
ports:
- name: mysql
containerPort: 3306
- name: front-end
image: xanvier/angularfrontend #TBD
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 80
- name: net-core
image: xanvier/contactsapi #TBD
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 5000
---
apiVersion: v1
kind: Service
metadata:
name: contacts-db
labels:
name: contacts-db
namespace: three-tier
spec:
type: NodePort
ports:
# the port that this service should serve on
- port: 3306
targetPort: 3306
selector:
name: contacts-db
---
apiVersion: v1
kind: Service
metadata:
name: front-end
labels:
name: front-end
namespace: three-tier
spec:
type: NodePort
ports:
- port: 80
targetPort: 80 #nodePort: 30001
selector:
name: front-end
---
apiVersion: v1
kind: Service
metadata:
name: net-core
labels:
name: net-core
namespace: three-tier
spec:
type: NodePort
ports:
- port: 5000
targetPort: 5000 #nodePort: 30001
selector:
name: net-core
---

最佳答案

服务的选择器与您的 Pod 的标签相匹配。在您的情况下,定义的选择器指向容器,在选择 Pod 时不会产生任何结果。

您必须重新定义服务才能使用一个选择器或将容器拆分到不同的 Deployment/Pod。

要查看为服务定义的选择器是否有效,您可以使用以下方法检查它们:

kubectl get pods -l key=value

如果结果为空,你的服务也将陷入空白。

关于Kubernetes 节点端口不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42134515/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com