Docker Desktop、Kubernetes 和 MySql:无法在 /var/lib/mysql/ 上挂载卷
P粉627427202
P粉627427202 2023-09-01 21:06:53
0
1
412
<p>我需要将 /var/lib/mysql 目录挂载为持久卷,以便每次电脑重新启动时数据库的内容都不会丢失(我使用 Docker 桌面和 Windows)。</p> <p>但是启动Pod时,出现以下错误:</p> <pre class="brush:php;toolbar:false;">2023-03-07 21:10:15+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.32-1.el8 started. find: '/var/lib/mysql/': Operation not permitted find: '/var/lib/mysql': Operation not permitted chown: changing ownership of '/var/lib/mysql/': Operation not permitted chown: changing ownership of '/var/lib/mysql': Operation not permitted</pre> <p>这是部署文件:</p> <pre class="brush:php;toolbar:false;">kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: local-storage provisioner: kubernetes.io/no-provisioner reclaimPolicy: Retain volumeBindingMode: WaitForFirstConsumer --- apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv spec: capacity: storage: 500M volumeMode: Filesystem accessModes: - ReadWriteOnce storageClassName: local-storage local: path: /c/data/db nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - docker-desktop --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pvc spec: accessModes: - ReadWriteOnce storageClassName: local-storage resources: requests: storage: 500M --- apiVersion: v1 kind: Service metadata: name: mysql spec: selector: app: mysql ports: - port: 3306 targetPort: 3306 --- apiVersion: v1 kind: Service metadata: name: mysql-lb spec: type: LoadBalancer selector: app: mysql ports: - port: 3306 targetPort: 3306 --- apiVersion: apps/v1 kind: StatefulSet metadata: labels: app: mysql name: mysql spec: serviceName: mysql replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - image: mysql:latest name: mysql ports: - containerPort: 3306 resources: {} volumeMounts: - name: mysql-volume mountPath: /var/lib/mysql env: - name: MYSQL_ROOT_PASSWORD valueFrom: configMapKeyRef: key: MYSQL_ROOT_PASSWORD name: mysql-env - name: MYSQL_ROOT_USERNAME valueFrom: configMapKeyRef: key: MYSQL_ROOT_USERNAME name: mysql-env volumes: - name: mysql-volume persistentVolumeClaim: claimName: mysql-pvc</pre> <p>如果我对卷使用另一个装载路径,pod 会启动,但当然,每次重新启动计算机时数据库内容都会丢失。</p> <p>我还尝试通过在安装卷之前执行 chown 命令来更改目录的所有者:</p> <pre class="brush:php;toolbar:false;">containers: - image: mysql:latest name: mysql ports: - containerPort: 3306 resources: {} command: - chown - -R - 999:999 - /var/lib/mysql volumeMounts: - name: mysql-volume mountPath: /var/lib/mysql</pre> <p>但是启动 pod 时出现以下错误: <code>chown:无法读取目录“/var/lib/mysql”:不允许操作</code></p> <p>感谢您的帮助。</p>
P粉627427202
P粉627427202

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!