Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 允许两个吊舱相互通信_Kubernetes - Fatal编程技术网

Kubernetes 允许两个吊舱相互通信

Kubernetes 允许两个吊舱相互通信,kubernetes,Kubernetes,第一次使用Kubernetes。我有一个API和一个数据库,我希望这两个POD能够相互通信 根据文档,我应该创建一个服务 我已经为两个pod中的每一个创建了一个服务,但是仍然无法使用服务IP地址连接到pod 例如,如果创建的MySQL服务的IP地址为11.22.33.44,我可以运行以下命令尝试连接到该服务的pod: mysql -h11.22.33.44 -uuser -ppassword foo …它将挂起,最终连接将超时 我创建了pod和服务,如下所示: kubectl create -

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

根据文档,我应该创建一个服务

我已经为两个pod中的每一个创建了一个服务,但是仍然无法使用服务IP地址连接到pod

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

mysql -h11.22.33.44 -uuser -ppassword foo
…它将挂起,最终连接将超时

我创建了pod和服务,如下所示:

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

而且,看起来您正在使用自定义图像;对于标准映像,MYSQL\u ROOT\u PASSWORD不是正确的env变量。您需要使用MYSQL\u密码和MYSQL\u用户来定义应用程序用户名/密码。为此,我在pod上设置了:
labels:app:MYSQL run:MYSQL
。在Kubernetes仪表板中,它现在显示服务下的pod,它们似乎都在运行。但是,当我使用Custer IP时,当试图通过终端连接到MySQL时,它仍然挂起并超时。请使用最新内容更新原始问题中的yaml