ZBLOG

k8s deployment mysql指定用户名密码

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

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

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
spec:
  selector:
    matchLabels:
      app: mysql
  replicas: 1
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
        - name: mysql
          image: mysql:5.7
          env:
            - name: MYSQL_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: mysql-secret
                  key: root-password
            - name: MYSQL_USER
              valueFrom:
                configMapKeyRef:
                  name: mysql-config
                  key: username
            - name: MYSQL_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: mysql-secret
                  key: user-password
          ports:
            - containerPort: 3306
          volumeMounts:
            - name: mysql-persistent-storage
              mountPath: /var/lib/mysql
      volumes:
        - name: mysql-persistent-storage
          persistentVolumeClaim:
            claimName: mysql-pvc

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

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

# 创建 ConfigMap
kubectl create configmap mysql-config --from-literal=username=myuser

# 创建 Secret
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 应用程序:

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

注册

已经有帐号?