sit*_*ant 9 mysql architecture docker kubernetes
我在我的 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
Run Code Online (Sandbox Code Playgroud)
您不需要为集群外部的事物提供服务。根据您使用的网络模型,docker 容器(即 kubernetes pod)应该能够通过 Docker 设置的网桥正常连接到 MySQL 容器。检查主机在端口 3306 上是否有连接,并且确实如此,只需输入 DNS 名称(您的 kube-dns pod 应该将任何非基于 kubernetes 的请求转发到其计划所在主机的主机 resolv.conf)
| 归档时间: |
|
| 查看次数: |
6104 次 |
| 最近记录: |