我在一个Pod中运行我的应用程序,在另一个Pod中运行Mongo数据库。 为了使应用程序成功启动,它需要知道Mongo运行的IP地址。
我有以下问题:
答案 0 :(得分:2)
您需要使用Kubernetes Services公开mongodb。借助服务的帮助,无需应用程序知道Pod的实际IP地址,您就可以使用服务名称来解析mongodb。
参考:https://kubernetes.io/docs/concepts/services-networking/service/
使用mysql的示例:
apiVersion: v1
kind: Service
metadata:
labels:
name: mysql
name: mysql
spec:
ports:
- port: 3306
selector:
name: mysql
---
apiVersion: v1
kind: Pod
metadata:
name: mysql
labels:
name: mysql
spec:
containers:
image: mysql
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: wppassword
ports:
- containerPort: 3306
name: mysql
如果在同一名称空间中有应用程序容器,尝试使用mysql容器,则可以直接使用mysql:3306
通过POD IP地址进行连接。如果应用程序位于其他名称空间中,则为mysql.namespace_name:3306
。