首頁  >  問答  >  主體

Docker Desktop、Kubernetes 和 MySql:無法在 /var/lib/mysql/ 上掛載磁碟區

<p>我需要將 /var/lib/mysql 目錄掛載為持久卷,以便每次電腦重新啟動時資料庫的內容都不會遺失(我使用 Docker 桌面和 Windows)。</p> <p>但是啟動Pod時,出現以下錯誤:</p>
2023-03-07 21:10:15 00:00 [注意] [入口點]:MySQL Server 8.0.32-1.el8 的入口點腳本已啟動。
find: '/var/lib/mysql/': 不允許操作
尋找:'/var/lib/mysql':不允許操作
chown:更改“/var/lib/mysql/”的所有權:不允許操作
chown:更改「/var/lib/mysql」的所有權:不允許操作</pre>
<p>這是設定檔:</p>
kind: StorageClass
api版本:storage.k8s.io/v1
元數據:
  名稱:本地存儲
設定者:kubernetes.io/no-provisioner
回收政策:保留
VolumeBindingMode:WaitForFirstConsumer

---

api版本:v1
種類:持久卷
元數據:
  名稱:mysql-pv
規格:
  容量:
    儲存空間:500M
  VolumeMode:檔案系統
  訪問模式:
  - 讀寫一次
  storageClassName:本地存儲
  當地的:
    路徑:/c/data/db
  節點親和力:
    必需的:
      節點選擇器條款:
      - 匹配表達式:
        - 金鑰:kubernetes.io/主機名
          運算符:In
          價值觀:
          - docker-桌面

---

api版本:v1
種類:持久卷聲明
元數據:
  名稱:mysql-pvc
規格:
  訪問模式:
  - 讀寫一次
  storageClassName:本地存儲
  資源:
    要求:
      儲存空間:500M

---

api版本:v1
種類: 服務
元數據:
  名稱:mysql
規格:
  選擇器:
    應用程式: mysql
  連接埠:
  - 埠:3306
    目標連接埠:3306

---
api版本:v1
種類: 服務
元數據:
  名稱:mysql-lb
規格:
  類型:負載平衡器
  選擇器:
    應用程式: mysql
  連接埠:
  - 埠:3306
    目標連接埠:3306

---

api版本:apps/v1
種類:StatefulSet
元數據:
  標籤:
    應用程式: mysql
  名稱:mysql
規格:
  服務名稱:mysql
  副本:1
  選擇器:
    匹配標籤:
      應用程式: mysql
  模板:
    元數據:
      標籤:
        應用程式: mysql
    規格:
      容器:
        - 圖片:mysql:最新
          名稱:mysql
          連接埠:
          - 貨櫃連接埠:3306
          資源: {}
          體積安裝:
          - 名稱:mysql-volume
            掛載路徑:/var/lib/mysql
          環境:
            - 名稱:MYSQL_ROOT_PASSWORD
              值來自:
                配置映射密鑰參考:
                  鍵:MYSQL_ROOT_PASSWORD
                  名稱:mysql-env
            - 名稱:MYSQL_ROOT_USERNAME
              值來自:
                配置映射密鑰參考:
                  鍵:MYSQL_ROOT_USERNAME
                  名稱:mysql-env
      卷:
      - 名稱:mysql-volume
        持久卷聲明:
          聲明名稱:mysql-pvc
<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粉627427202P粉627427202415 天前544

全部回覆(1)我來回復

  • P粉103739566

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

    新增

    securityContext:
        runAsUser: 999
        allowPrivilegeEscalation: false

    在 StatefulSet 元件上

    回覆
    0
  • 取消回覆