Desktop Docker, Kubernetes dan MySql: Tidak dapat melekapkan volum pada /var/lib/mysql/
P粉627427202
2023-09-01 21:06:53
<p>Saya perlu melekapkan direktori /var/lib/mysql sebagai volum berterusan supaya kandungan pangkalan data tidak hilang setiap kali komputer dimulakan semula (saya menggunakan Docker Desktop dan Windows).</p>
<p>但是启动Pod时,出现以下错误:</p>
<pre class="brush:php;toolbar:false;">2023-03-07 21:10:15+00:00 [Nota] [Entrypoint]: Skrip Entrypoint untuk MySQL Server 8.0.32-1.el8 bermula.
find: '/var/lib/mysql/': Operasi tidak dibenarkan
find: '/var/lib/mysql': Operasi tidak dibenarkan
chown: menukar pemilikan '/var/lib/mysql/': Operasi tidak dibenarkan
chown: menukar pemilikan '/var/lib/mysql': Operasi tidak dibenarkan</pre>
<p>这是部署文件:</p>
<pre class="brush:php;toolbar:false;">jenis: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
nama: storan tempatan
pembekal: kubernetes.io/no-provisioner
reclaimPolicy: Kekalkan
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
jenis: PersistentVolume
metadata:
nama: mysql-pv
spesifikasi:
kapasiti:
penyimpanan: 500M
volumMod: Sistem fail
mod akses:
- BacaTulis Sekali
storageClassName: storan tempatan
tempatan:
laluan: /c/data/db
nodeAffinity:
diperlukan:
nodeSelectorTerms:
- matchExpressions:
- kunci: kubernetes.io/hostname
pengendali: Dalam
nilai:
- docker-desktop
---
apiVersion: v1
jenis: PersistentVolumeClaim
metadata:
nama: mysql-pvc
spesifikasi:
mod akses:
- BacaTulis Sekali
storageClassName: storan tempatan
sumber:
permintaan:
penyimpanan: 500M
---
apiVersion: v1
jenis: Perkhidmatan
metadata:
nama: mysql
spesifikasi:
pemilih:
aplikasi: mysql
pelabuhan:
- pelabuhan: 3306
TargetPort: 3306
---
apiVersion: v1
jenis: Perkhidmatan
metadata:
nama: mysql-lb
spesifikasi:
jenis: LoadBalancer
pemilih:
aplikasi: mysql
pelabuhan:
- pelabuhan: 3306
TargetPort: 3306
---
apiVersion: apps/v1
jenis: StatefulSet
metadata:
label:
aplikasi: mysql
nama: mysql
spesifikasi:
nama perkhidmatan: mysql
replika: 1
pemilih:
matchLabels:
aplikasi: mysql
templat:
metadata:
label:
aplikasi: mysql
spesifikasi:
bekas:
- imej: mysql:terkini
nama: mysql
pelabuhan:
- Port kontena: 3306
sumber: {}
volumeMounts:
- nama: mysql-volume
mountPath: /var/lib/mysql
env:
- nama: MYSQL_ROOT_PASSWORD
nilai Daripada:
configMapKeyRef:
kunci: MYSQL_ROOT_PASSWORD
nama: mysql-env
- nama: MYSQL_ROOT_USERNAME
nilai Daripada:
configMapKeyRef:
kunci: MYSQL_ROOT_USERNAME
nama: mysql-env
jilid:
- nama: mysql-volume
Tuntutan Volume berterusan:
Nama tuntutan: mysql-pvc</pre>
<p>如果我对卷使用另一个装载路径,pod 会启动,但当然,每次重新启动计无算会丢失。</p>
<p>Saya juga cuba menukar pemilik direktori dengan melaksanakan perintah chown sebelum memasang kelantangan: </p>
<pre class="brush:php;toolbar:false;">bekas:
- imej: mysql:terkini
nama: mysql
pelabuhan:
- Port kontena: 3306
sumber: {}
perintah:
- chown
- -R
- 999:999
- /var/lib/mysql
volumeMounts:
- nama: mysql-volume
mountPath: /var/lib/mysql</pre>
<p>Tetapi apabila memulakan pod saya mendapat ralat berikut:
<kod>chown: Tidak dapat membaca direktori '/var/lib/mysql': Operasi tidak dibenarkan</code></p>
<p>Terima kasih atas bantuan anda. </p>
Tambah
Pada komponen StatefulSet