使用现有持久性卷声明部署 bitnami/mysql helm 图表

Jér*_*eau 11 mysql bitnami kubernetes minikube kubernetes-helm

我正在尝试在我的minikube中部署bitnami/mysql图表。我正在使用 Kubernetes v1.19、Minikube v1.17.1 和Helm 3

我创建了 PVC 和 PV,如下所示:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: mysql-pvc
spec:
  storageClassName: standard
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi
  selector:
    matchLabels:
      id: mysql-pv
----
kind: PersistentVolume
apiVersion: v1
metadata:
  name: mysql-pv
  labels:
    type: local
    id: mysql-pv
spec:
  storageClassName: standard
  capacity:
    storage: 8Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /var/lib/mysql
Run Code Online (Sandbox Code Playgroud)

/var/lib/mysql我通过以下方式创建了目录sudo mkdir -p /var/lib/mysql 这就是我创建 PVC 和 PC 的方式:

kubectl apply -f mysql-pv-dev.yaml
kubectl apply -f mysql-pvc-dev.yaml
Run Code Online (Sandbox Code Playgroud)

这似乎有效:

NAME       STATUS   VOLUME     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
mysql-pvc  Bound    mysql-pv   8Gi        RWO            standard          59s
Run Code Online (Sandbox Code Playgroud)

我正在部署我mysql的: helm upgrade --install dev-mysql -f mysql-dev.yaml bitnami/mysql

自定义值文件 - mysql-dev.yaml

auth:
  database: dev_db
  username: dev_user
  password: passworddev
  rootPassword: rootpass
image:
  debug: true
primary:
  persistence:
    existingClaim: mysql-pvc
  extraVolumeMounts: |
      - name: init
        mountPath: /docker-entrypoint-initdb.d
  extraVolumes: |
      - name: init
        hostPath:
          path: /home/dev/init_db_scripts/
          type: Directory
volumePermissions:
  enabled: true
Run Code Online (Sandbox Code Playgroud)

部署工作:

NAME         READY   STATUS    RESTARTS   AGE
dev-mysql-0  0/1     Running   0          8s 
Run Code Online (Sandbox Code Playgroud)

问题是 pod 永远不会准备好,因为:

  Warning  Unhealthy  0s (x2 over 10s)  kubelet            Readiness probe failed: mysqladmin: [Warning] Using a password on the command line interface can be insecure.
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
Run Code Online (Sandbox Code Playgroud)

mysqld正在 pod 内运行,但由于某些原因,root 密码未正确设置,因为当我执行 pod 并尝试连接时,mysql我得到:

$ kubectl exec -ti dev-mysql bash
I have no name!@dev-mysql-0:/$ mysql -u root -prootpass
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
I have no name!@dev-mysql-0:/$
Run Code Online (Sandbox Code Playgroud)

相反,它使用默认值,所以如果我尝试: mysql -u root -p没有密码它效果很好。

谢谢

小智 4

这里的一位 bitnami 工程师,我能够重现这个问题,我将创建一个内部任务来解决这个问题。当我们获得更多信息时,我们将更新此线程。