Docker Desktop、Kubernetes、MySql: /var/lib/mysql/ にボリュームをマウントできません
<p>コンピューターが再起動されるたびにデータベースの内容が失われないように、/var/lib/mysql ディレクトリを永続ボリュームとしてマウントする必要があります (Docker Desktop と Windows を使用しています)。</p>
<p>ただし、Pod を起動すると、次の警告が表示されます:</p>
<pre class="brush:php;toolbar:false;">2023-03-07 21:10:15 00:00 [メモ] [エントリポイント]: MySQL Server 8.0.32-1.el8 のエントリポイント スクリプトが開始されました。
find: '/var/lib/mysql/': 操作は許可されていません
find: '/var/lib/mysql': 操作は許可されていません
chown: '/var/lib/mysql/' の所有権を変更しています: 操作は許可されていません
chown: '/var/lib/mysql' の所有権を変更しています: 操作は許可されていません</pre>
<p>これは配置文です:</p>
<pre class="brush:php;toolbar:false;">種類: StorageClass
APIバージョン: storage.k8s.io/v1
メタデータ:
名前: ローカルストレージ
プロビジョナー: kubernetes.io/no-provisioner
回収ポリシー: 保持
volumeBindingMode: WaitForFirstConsumer
---
APIバージョン: v1
種類: PersistentVolume
メタデータ:
名前: mysql-pv
仕様:
容量:
ストレージ: 500M
volumeMode: ファイルシステム
アクセスモード:
- リードライトワンス
storageClassName: ローカルストレージ
地元:
パス: /c/data/db
ノードアフィニティ:
必須:
ノードセレクター用語:
- 一致式:
- キー: kubernetes.io/ホスト名
演算子: で
値:
- ドッカーデスクトップ
---
APIバージョン: v1
種類: PersistentVolumeClaim
メタデータ:
名前: mysql-pvc
仕様:
アクセスモード:
- リードライトワンス
storageClassName: ローカルストレージ
リソース:
リクエスト:
ストレージ: 500M
---
APIバージョン: v1
種類: サービス
メタデータ:
名前: mysql
仕様:
セレクタ:
アプリ: mysql
ポート:
- ポート: 3306
ターゲットポート: 3306
---
APIバージョン: v1
種類: サービス
メタデータ:
名前: mysql-lb
仕様:
タイプ: ロードバランサー
セレクタ:
アプリ: mysql
ポート:
- ポート: 3306
ターゲットポート: 3306
---
APIバージョン: アプリ/v1
種類: ステートフルセット
メタデータ:
ラベル:
アプリ: mysql
名前: mysql
仕様:
サービス名: mysql
レプリカ: 1
セレクタ:
マッチラベル:
アプリ: mysql
テンプレート:
メタデータ:
ラベル:
アプリ: mysql
仕様:
コンテナ:
- 画像: mysql:最新
名前: mysql
ポート:
- コンテナポート: 3306
リソース: {}
ボリュームマウント:
- 名前: mysql-ボリューム
マウントパス: /var/lib/mysql
環境:
- 名前: MYSQL_ROOT_PASSWORD
値の差出人:
configMapKeyRef:
キー: MYSQL_ROOT_PASSWORD
名前: mysql-env
- 名前: MYSQL_ROOT_USERNAME
値の差出人:
configMapKeyRef:
キー: MYSQL_ROOT_USERNAME
名前: mysql-env
ボリューム:
- 名前: mysql-ボリューム
永続ボリュームクレーム:
クレーム名: mysql-pvc</pre>
<p>ポッドに別のロード経路を使用すると、ポッドは起動しますが、当然のことですが、コンピュータを再起動するたびにデータ コンテンツが失われます。</p>
<p>また、ボリュームをマウントする前に chown コマンドを実行して、ディレクトリの所有者を変更してみました。</p>
<pre class="brush:php;toolbar:false;">コンテナ:
- 画像: mysql:最新
名前: mysql
ポート:
- コンテナポート: 3306
リソース: {}
指示:
- チャウン
- -R
- 999:999
- /var/lib/mysql
ボリュームマウント:
- 名前: mysql-ボリューム
マウントパス: /var/lib/mysql</pre>
<p>しかし、ポッドを開始すると、次のエラーが発生します。
<code>chown: ディレクトリ '/var/lib/mysql' を読み取れません: 操作は許可されていません</code></p>
<p>ご協力いただきありがとうございます。 </p>