Kubernetes MySQL连接超时

时间:2018-09-02 09:39:31

标签: kubernetes

我已经为MySQL设置了Kubernetes部署和服务。我无法使用其DNS名称从任何Pod访问MySQL服务……这只是超时。任何其他端口都会立即拒绝连接,但是我的服务配置中的端口会在约10秒后超时。

  1. 我能够解析MySQL Pod DNS。
  2. 我无法ping通主机。

Service.yml

apiVersion: v1
kind: Service
metadata:
  name: mysql-service
  labels:
    run: mysql-service
spec:
  ports:
  - port: 3306
    protocol: TCP
  - port: 3306
    protocol: UDP
  selector:
    run: mysql-service

Deployment.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql-service
  labels:
    app: mysql-service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql-service
  template:
    metadata:
      labels:
        app: mysql-service
    spec:
      containers:
      - name: 'mysql-service'
        image: mysql:5.5
        env:
          - name: MYSQL_ROOT_PASSWORD
            value: some_password
          - name: MYSQL_DATABASE
            value: some_database
        ports:
          - containerPort: 3306

1 个答案:

答案 0 :(得分:2)

您的部署(更具体地说是其pod规范)说

labels:
  app: mysql-service

但是您的服务说

selector:
  run: mysql-service

这些不匹配,因此您的服务未附加到广告连播。如果您kubectl describe service mysql-service,则“端点”列表将为空。

更改服务的选择器以匹配pod的标签(反之亦然),这应该更好。