k8s mysql 远程访问_使用Secrets输入密码时无法连接到Kubernetes中的mysql pod(拒绝访问)...
我尝试在Kubernetes中设置一个mysql数据库。我配置了一个ConfigMap来存储数据库名称和一个Secret,其中包含根密码,用户和用户密码。之后,当我尝试连接到数据库时(在mysql cli的容器内部以及IntelliJDatabase工具的外部),我得到一个“错误1045(28000):用户’testadm’@’localhost’的访问被拒绝(使用密码:是)”错误。我的kuber
我尝试在Kubernetes中设置一个mysql数据库。我配置了一个ConfigMap来存储数据库名称和一个Secret,其中包含根密码,用户和用户密码。
之后,当我尝试连接到数据库时(在mysql cli的容器内部以及IntelliJ
Database工具的外部),我得到一个“错误1045(28000):用户’testadm’@’localhost’的访问被拒绝(使用密码:是)”错误。
我的kubernetes.yaml文件:
apiVersion: v1
kind: ConfigMap
metadata:
name: db
data:
mysql-database: database
---
apiVersion: v1
kind: Secret
metadata:
name: db-credentials
type: Opaque
data:
mysql-root-password: VGVzdDEyMzQK # Test1234
mysql-user: dGVzdGFkbQo= # testadm
mysql-password: VGVzdDEyMzQK # Test1234
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: mysql
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.7
ports:
- containerPort: 3306
env:
- name: MYSQL_DATABASE
valueFrom:
configMapKeyRef:
name: db
key: mysql-database
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: db-credentials
key: mysql-root-password
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: db-credentials
key: mysql-user
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: db-credentials
key: mysql-password
如果我直接像下面那样设置密码,则连接成功 在容器内部和外部进行!
env:
- name: MYSQL_ROOT_PASSWORD
value: Test1234
如果检查容器内的env变量,则无法发现这两种方法之间的差异。
使用秘密中存储的密码是否需要其他格式?我还尝试将值放在数据字典中,如下所示:
data:
mysql-root-password: "VGVzdDEyMzQK"
版本信息
Docker 17.06.0-ce
Minikube 0.21.0
Kubectl Server 1.7.0
Kubectl Client 1.7.3
更多推荐
所有评论(0)