helm 安装 mysql 相关注意事项及记录

配置持久化到nfs

参考 https://blog.csdn.net/gs80140/article/details/93199622

mysql默认配置是写到外面的/var/lib/mysql目录, 所以这里面不改配置的情况下,把外面的/var/lib/mysql目录建好, 并mount到 nfs上

 initContainers:
      - name: "remove-lost-found"
        image: "{{ .Values.busybox.image}}:{{ .Values.busybox.tag }}"
        imagePullPolicy: {{ .Values.imagePullPolicy | quote }}
        resources:
{{ toYaml .Values.initContainer.resources | indent 10 }}
        command:  ["rm", "-fr", "/var/lib/mysql/lost+found"]
        volumeMounts:
        - name: data
          mountPath: /var/lib/mysql
          {{- if .Values.persistence.subPath }}
          subPath: {{ .Values.persistence.subPath }}

volumeMounts:
        - name: data
          mountPath: /var/lib/mysql
          {{- if .Values.persistence.subPath }}
          subPath: {{ .Values.persistence.subPath }}
          {{- end }}

然后执行安装

helm install --name mysql \
  --set mysqlRootPassword=root,mysqlUser=my-user,mysqlPassword=my-password,mysqlDatabase=my-database \
    stable/mysql

报错 pod has unbound immediate PersistentVolumeClaims

查看 持久化 kubectl describe PersistentVolumeClaim/mysql

Name:          mysql
Namespace:     default
StorageClass:  
Status:        Pending
Volume:        
Labels:        app=mysql
               chart=mysql-1.2.0
               heritage=Tiller
               release=mysql
Annotations:   <none>
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      
Access Modes:  
VolumeMode:    Filesystem
Events:
  Type       Reason         Age                   From                         Message
  ----       ------         ----                  ----                         -------
  Normal     FailedBinding  14s (x12 over 2m44s)  persistentvolume-controller  no persistent volumes available for this claim and no storage class is set
Mounted By:  mysql-b76bd86d7-d5fw7

上面是因为缺少pv的定义 , 参考 https://blog.csdn.net/gs80140/article/details/93475231

重新运行,添加配置

helm install --name mysql \
  --set mysqlRootPassword=root,mysqlUser=myname,mysqlPassword=mypsw,mysqlDatabase=mydb,livenessProbe.initialDelaySeconds=300,persistence.size=2Gi,persistence.storageClass=nfs,persistence.accessMode=ReadWriteOnce \
    stable/mysql

报错 Error: a release named mysql already exists.

通过 命令 helm ls --all 查看所有 release

然后通过 helm del --purge mysql 去删除 , 这种状态显示是DELETE, 应该是helm delete没有实际删除导致的.

猜你喜欢

转载自blog.csdn.net/gs80140/article/details/93471482