【发布时间】:2019-11-24 03:36:53
【问题描述】:
我需要将托管在命名空间 A 中的 mysql 数据库提供给部署在命名空间“B”中的应用程序。
到目前为止,我已经尝试了几种方法,其中最有希望的是使用 Endpoint 和服务的组合,如下所示:
kind: Service
apiVersion: v1
metadata:
name: mysql
spec:
ports:
- port: 3306
targetPort: 31234
---
kind: Endpoints
apiVersion: v1
metadata:
name: mysql
subsets:
- addresses:
- ip: 12.34.567.8
ports:
- port: 31234
虽然 mysql 容器的一个实例已经在命名空间“A”中分离出来,并通过 NodePort 配置在 31234 处公开。
应用程序有一个初始化容器 init-mysql,它使用主机名“mysql”和正确的凭据 ping mysql 实例。 我希望应用程序能像往常一样启动,但它卡在了 pod 初始化状态。 当我尝试检查 init-mysql 的日志时,我只得到以下内容:
Warning: Using a password on the command line interface can be insecure.
用于 initContainer 'init-mysql' 的命令是:
command:
- sh
- -c
- 'mysqladmin ping -hmysql -P3306 -uusername -ppassword'
【问题讨论】:
标签: kubernetes kubernetes-helm