我在我的centos机器上运行kubernetes集群.
我不想为
mysql创建一个pod.
MySQL安装在同一网络中的另一台机器上(机器不在kubernates专用网络中).
如何从kubernetes集群中运行的pod访问mysql服务?
我已尝试使用以下配置的服务和终点.但是,没有运气.
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
最佳答案 您不需要为群集外的事物提供服务.根据您使用的网络模型,docker容器(即kubernetes pod)应该能够通过Docker设置的桥接器正常连接到MySQL容器.检查主机是否在端口3306上具有连接,并且确实如此,只需输入DNS名称(您的kube-dns pod应该将任何基于非kubernetes的请求转发给它所安排的主机的主机resolv.conf)