作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试在 Kubernetes 中设置一个 mysql 数据库。我配置了一个 ConfigMap 来存储数据库名称和一个包含 root 密码、用户和用户密码的 Secret。
当我之后尝试连接到数据库时(在容器内使用 mysql cli 并从外部使用 IntelliJ 数据库工具)我得到一个“错误 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
如果我检查容器内的环境变量,我无法发现这两种方法之间的区别。
使用存储在 secret 中的密码是否需要任何其他格式?我还尝试将数据字典中的值放在引号中,如下所示:
data:
mysql-root-password: "VGVzdDEyMzQK"
版本信息
Docker 17.06.0-ce
Minikube 0.21.0
Kubectl Server 1.7.0
Kubectl Client 1.7.3
最佳答案
你确定你的 secret yaml 中的数据是正确的 base64 编码的吗?使用https://www.base64encode.org/ ,您的 data
block 应该如下所示:
data:
mysql-root-password: VGVzdDEyMzQ= # Test1234
mysql-user: dGVzdGFkbQ== # testadm
mysql-password: VGVzdDEyMzQ= # Test1234
关于mysql - 使用 Secrets 作为密码时无法连接到 Kubernetes 中的 mysql pod(访问被拒绝),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45650044/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!