Heim  >  Fragen und Antworten  >  Hauptteil

Docker Desktop, Kubernetes und MySql: Volume kann nicht auf /var/lib/mysql/ gemountet werden

<p>Ich muss das Verzeichnis /var/lib/mysql als persistentes Volume bereitstellen, damit der Inhalt der Datenbank nicht bei jedem Neustart des Computers verloren geht (ich verwende Docker Desktop und Windows).</p> <p>但是启动Pod时,出现以下错误:</p> <pre class="brush:php;toolbar:false;">2023-03-07 21:10:15+00:00 [Hinweis] [Entrypoint]: Entrypoint-Skript für MySQL Server 8.0.32-1.el8 gestartet. find: '/var/lib/mysql/': Vorgang nicht zulässig find: '/var/lib/mysql': Vorgang nicht zulässig chown: Eigentümerwechsel von „/var/lib/mysql/“: Vorgang nicht zulässig chown: Eigentümerwechsel von „/var/lib/mysql“: Vorgang nicht zulässig</pre> <p>这是部署文件:</p> <pre class="brush:php;toolbar:false;">kind: StorageClass apiVersion: storage.k8s.io/v1 Metadaten: Name: lokaler Speicher Provisioner: kubernetes.io/no-provisioner reclaimPolicy: Behalten volumeBindingMode: WaitForFirstConsumer --- APIVersion: v1 Art: PersistentVolume Metadaten: Name: mysql-pv Spezifikation: Kapazität: Speicher: 500 MB volumeMode: Dateisystem Zugriffsmodi: - ReadWriteOnce storageClassName: lokaler Speicher lokal: Pfad: /c/data/db nodeAffinität: erforderlich: nodeSelectorBedingungen: - matchExpressions: - Schlüssel: kubernetes.io/hostname Betreiber: In Werte: - Docker-Desktop --- APIVersion: v1 Art: PersistentVolumeClaim Metadaten: Name: mysql-pvc Spezifikation: Zugriffsmodi: - ReadWriteOnce storageClassName: lokaler Speicher Ressourcen: Anfragen: Speicher: 500 MB --- APIVersion: v1 Art: Service Metadaten: Name: MySQL Spezifikation: Wähler: App: MySQL Häfen: - Hafen: 3306 ZielPort: 3306 --- APIVersion: v1 Art: Service Metadaten: Name: mysql-lb Spezifikation: Typ: LoadBalancer Wähler: App: MySQL Häfen: - Hafen: 3306 ZielPort: 3306 --- apiVersion: apps/v1 Art: StatefulSet Metadaten: Etiketten: App: MySQL Name: MySQL Spezifikation: Dienstname: MySQL Nachbildungen: 1 Wähler: matchLabels: App: MySQL Vorlage: Metadaten: Etiketten: App: MySQL Spezifikation: Behälter: - Bild: mysql:latest Name: MySQL Häfen: - ContainerPort: 3306 Ressourcen: {} volumeMounts: - Name: MySQL-Volume mountPath: /var/lib/mysql Umgebung: - Name: MYSQL_ROOT_PASSWORD valueVon: configMapKeyRef: Schlüssel: MYSQL_ROOT_PASSWORD Name: mysql-env - Name: MYSQL_ROOT_USERNAME valueVon: configMapKeyRef: Schlüssel: MYSQL_ROOT_USERNAME Name: mysql-env Bände: - Name: MySQL-Volume persistentVolumeClaim: ClaimName: mysql-pvc</pre> <p>会丢失.</p> <p>Ich habe auch versucht, den Eigentümer des Verzeichnisses zu ändern, indem ich vor dem Mounten des Volumes den Befehl chown ausgeführt habe: </p> <pre class="brush:php;toolbar:false;">container: - Bild: mysql:latest Name: MySQL Häfen: - ContainerPort: 3306 Ressourcen: {} Befehl: - Chown - -R - 999:999 -/var/lib/mysql volumeMounts: - Name: MySQL-Volume mountPath: /var/lib/mysql</pre> <p>Aber beim Starten des Pods erhalte ich die folgende Fehlermeldung: <code>chown: Verzeichnis „/var/lib/mysql“ kann nicht gelesen werden: Vorgang nicht zulässig</code></p> <p>Vielen Dank für Ihre Hilfe. </p>
P粉627427202P粉627427202415 Tage vor545

Antworte allen(1)Ich werde antworten

  • P粉103739566

    P粉1037395662023-09-02 09:02:55

    添加

    securityContext:
        runAsUser: 999
        allowPrivilegeEscalation: false

    在 StatefulSet 组件上

    Antwort
    0
  • StornierenAntwort