gpt4 book ai didi

kubernetes - 允许两个Pod相互通信

转载 作者:行者123 更新时间:2023-12-02 12:07:34 26 4
gpt4 key购买 nike

第一次使用Kubernetes。我有一个API和一个数据库,我希望两个Pod相互通信。

基于文档,我应该创建一个服务。

我仍然为两个Pod中的每一个创建了一个服务,尽管仍然无法使用服务IP地址连接到Pod。

例如,如果创建的MySQL服务的IP地址为11.22.33.44,我可以运行以下命令尝试连接到该服务的容器:

mysql -h11.22.33.44 -uuser -ppassword foo

...它将挂起,最终连接将超时。

我像这样创建 pods 和服务:
kubectl create -f ./mysql.yaml

mysql.yaml :
apiVersion: v1
kind: Service
metadata:
name: mysql-service
spec:
selector:
app: mysql
ports:
- protocol: TCP
port: 80
targetPort: 3306
---
apiVersion: v1
kind: Pod
metadata:
name: mysql
spec:
containers:
- name: mysql
image: my-custom-mysql-image:latest
ports:
- containerPort: 3306
protocol: TCP
name: mysql
env:
- name: MYSQL_DATABASE
value: "foo"
- name: MYSQL_USER
value: "user"
- name: MYSQL_ROOT_PASSWORD
value: "password"
- name: MYSQL_HOST
value: "127.0.0.1"

最佳答案

您的服务定义了选择器

selector:
app: mysql

但是您的Pod没有任何标签,因此该服务无法将其标识为后端,也没有终结点来引导ClusterIP的流量。您还应该坚持使用标准端口号,如下所示:
ports:
- protocol: TCP
port: 3306
targetPort: 3306

关于kubernetes - 允许两个Pod相互通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49071750/

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