所以我有一个Kubernetes集群,在其中建立了带有两个Pod的部署。在一个容器中,有一个运行的MySQL容器,在另一个容器中,有一个Ubuntu容器。在Ubuntu容器中,我想执行一个Python脚本,该脚本连接到MySQL容器。
但是当我尝试连接到另一个Pod时,它说:
mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on 'mysql-service:3306' (111 Connection refused)
我的服务如下:
apiVersion: v1
kind: Service
metadata:
name: mysql-service
labels:
app: mysql-db-app
spec:
selector:
app: mysql-db-app
ports:
- port: 3306
targetPort: 3306
这是我的mysql-deployment.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
io.kompose.service: mysql-db-app
name: mysql-db-app
spec:
selector:
matchLabels:
io.kompose.service: mysql-db-app
strategy: {}
template:
metadata:
labels:
io.kompose.service: mysql-db-app
spec:
containers:
- image: mysql:8
name: mysql-db-app
env:
- name: MYSQL_ROOT_PASSWORD
value: root
ports:
- containerPort: 3306
volumeMounts:
- mountPath: /var/lib/mysql
name: mysql-data
volumes:
- name: mysql-data
persistentVolumeClaim:
claimName: mysql-pvc
restartPolicy: Always
你知道如何解决这个问题吗?
答案 0 :(得分:1)
标签选择器似乎有问题。 将您的服务更新为此
apiVersion: v1
kind: Service
metadata:
name: mysql-service
labels:
io.kompose.service: mysql-db-app
spec:
selector:
io.kompose.service: mysql-db-app
ports:
- port: 3306
targetPort: 3306
服务标签选择器应与Deployment.yaml中定义的标签选择器匹配