Galera Kubernetes E2E-如何在YAML中设置密码?

Galera Kubernetes E2E-如何在YAML中设置密码?,kubernetes,galera,Kubernetes,Galera,有没有办法用这个脚本设置Galera根密码 一切都很好,但我不知道如何设置密码 多谢各位 apiVersion: apps/v1 kind: StatefulSet metadata: name: mysql spec: serviceName: "galera" replicas: 3 selector: matchLabels: app: mysql template: metadata: labels: app:

有没有办法用这个脚本设置Galera根密码

一切都很好,但我不知道如何设置密码

多谢各位

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mysql
spec:
  serviceName: "galera"
  replicas: 3
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      initContainers:
      - name: install
        image: k8s.gcr.io/galera-install:0.1
        imagePullPolicy: Always
        args:
        - "--work-dir=/work-dir"
        volumeMounts:
        - name: workdir
          mountPath: "/work-dir"
        - name: config
          mountPath: "/etc/mysql"
      - name: bootstrap
        image: debian:jessie
        command:
        - "/work-dir/peer-finder"
        args:
        - -on-start="/work-dir/on-start.sh"
        - "-service=galera"
        env:
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        volumeMounts:
        - name: workdir
          mountPath: "/work-dir"
        - name: config
          mountPath: "/etc/mysql"
      containers:
      - name: mysql
        image: k8s.gcr.io/mysql-galera:e2e
        ports:
        - containerPort: 3306
          name: mysql
        - containerPort: 4444
          name: sst
        - containerPort: 4567
          name: replication
        - containerPort: 4568
          name: ist
        args:
        - --defaults-file=/etc/mysql/my-galera.cnf
        - --user=root
        readinessProbe:
          # TODO: If docker exec is buggy just use k8s.gcr.io/mysql-healthz:1.0
          exec:
            command:
            - sh
            - -c
            - "mysql -u root -e 'show databases;'"
          initialDelaySeconds: 15
          timeoutSeconds: 5
          successThreshold: 2
        volumeMounts:
        - name: datadir
          mountPath: /var/lib/
        - name: config
          mountPath: /etc/mysql
      volumes:
      - name: config
        emptyDir: {}
      - name: workdir
        emptyDir: {}
  volumeClaimTemplates:
  - metadata:
      name: datadir
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 1Gi
我想补充一下:

env:
        - name: MYSQL_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysql-pass
              key: password
那么我需要将其添加到args中吗

args:
- --defaults-file=/etc/mysql/my-galera.cnf
- --user=root
准备好了吗

 readinessProbe:
      # TODO: If docker exec is buggy just use k8s.gcr.io/mysql-healthz:1.0
      exec:
        command:
        - sh
        - -c
        - "mysql -u root -e 'show databases;'"
您需要使用,例如:

kubectl create secret generic mysql-pass --from-literal=MYSQL_ROOT_PASSWORD=YOUR_PASSWORD
然后将其用作环境:

 spec:
      containers:
      - image: mysql:5.6
        name: mysql
        env:
        - name: MYSQL_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysql-pass
              key: password
或将其装载为卷:

spec:
  containers:
  - name: mycontainer
    image: mysql
    volumeMounts:
    - name: foo
      mountPath: /etc/foo
      readOnly: true
  volumes:
  - name: foo
    secret:
      secretName: mysql-pass
      items:
      - key: username
        path: my-group/my-username

参考资料:

是的,我知道如何创建秘密,但我不知道如何将其添加到Galera statefulset yaml中。我在先前的答案中添加了一部分。我仍然有点困惑。我用更详细的问题将YAML添加到原始帖子中。