ZBLOG

k8s deployment mysql指定用户名密码

在 Kubernetes 中,我们可以使用 ConfigMap 和 Secret 来指定应用程序中的用户名和密码。

以下是一个示例 YAML 文件,用于创建 MySQL Deployment,并从 ConfigMap 和 Secret 中获取用户名和密码:

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: mysql
  5. spec:
  6. selector:
  7. matchLabels:
  8. app: mysql
  9. replicas: 1
  10. template:
  11. metadata:
  12. labels:
  13. app: mysql
  14. spec:
  15. containers:
  16. - name: mysql
  17. image: mysql:5.7
  18. env:
  19. - name: MYSQL_ROOT_PASSWORD
  20. valueFrom:
  21. secretKeyRef:
  22. name: mysql-secret
  23. key: root-password
  24. - name: MYSQL_USER
  25. valueFrom:
  26. configMapKeyRef:
  27. name: mysql-config
  28. key: username
  29. - name: MYSQL_PASSWORD
  30. valueFrom:
  31. secretKeyRef:
  32. name: mysql-secret
  33. key: user-password
  34. ports:
  35. - containerPort: 3306
  36. volumeMounts:
  37. - name: mysql-persistent-storage
  38. mountPath: /var/lib/mysql
  39. volumes:
  40. - name: mysql-persistent-storage
  41. persistentVolumeClaim:
  42. claimName: mysql-pvc

在这个 YAML 文件中,我们使用了两个对象:ConfigMap 和 Secret。ConfigMap 包含了 MySQL 用户名,而 Secret 则包含了 MySQL 的 root 密码和用户密码。

要创建 ConfigMap 和 Secret,请使用以下命令:

  1. # 创建 ConfigMap
  2. kubectl create configmap mysql-config --from-literal=username=myuser
  3. # 创建 Secret
  4. kubectl create secret generic mysql-secret --from-literal=root-password=secret --from-literal=user-password=anothersecret

这些命令将创建一个名为 mysql-config 的 ConfigMap 和一个名为 mysql-secret 的 Secret,其中包含了 MySQL 的用户名、root 密码和用户密码。

请注意,在 MySQL 镜像中,存在一个名为 MYSQL_ROOT_PASSWORD 的环境变量,它表示 root 用户的密码。因此,在 YAML 文件中,我们只需指定 MYSQL_USER 和 MYSQL_PASSWORD 环境变量即可。同时,我们还指定了一个名为 mysql-pvc 的 PersistentVolumeClaim,以保存 MySQL 数据库文件。

最后,我们可以使用以下命令来部署 MySQL 应用程序:

  1. kubectl apply -f mysql.yaml

这将部署一个名为 mysql 的 Deployment,并创建一个 Pod,其中运行了 MySQL 容器。容器将从 ConfigMap 和 Secret 中获取用户名和密码,以及 root 密码。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=1916

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?