如何访问我的kubernetes集群外的MySQL?

我在我的centos机器上运行一个kubernetes集群。 我不想为mysql创build一个窗格。 MySQL被安装在同一networking中的另一台机器上(机器不在kubernates专用networking中)。

我如何从运行在kubernetes集群中的pod访问mysql服务?

我已经尝试过以下configuration的服务和终点。 但是,没有运气。

apiVersion: v1 kind: Service metadata: name: database spec: ports: - port: 13080 targetPort: 13080 protocol: TCP --- kind: Deployment apiVersion: v1 metadata: name: database subsets: - addresses: - ip: XX.XX.XX.XX ports: - port: 13080 --- kind: ReplicationController metadata: name: test spec: replicas: 1 selector: app: test template: metadata: name: test labels: app: test spec: containers: - name: my_pods image: my_pods env: - name: DATABASE_HOST value: database - name: DATABASE_PORT value: "13080" - name: DATABASE_USER value: "SAAS" - name: DATABASE_PASSWORD value: "SAAS" - name: DATABASE_NAME value: "SAASDB" ports: - containerPort: 8080 imagePullSecrets: - name: my-secret --- apiVersion: v1 kind: Service metadata: name: test-service labels: name: test-service spec: type: NodePort ports: - port: 11544 targetPort: 8080 nodePort: 30600 selector: name: test 

您不需要群集外部的服务。 根据您使用的networking模型,docker容器(例如kubernetes pod)应该能够通过Docker设置的网桥正常连接到MySQL容器。 检查主机在端口3306上是否有连通性,并且只需要inputDNS名称(您的kube-dns pod应该将任何基于非kubernetes的请求转发到主机的resolv.conf中)