~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/minikube-pvc $ cat pvc.yml
apiVersion: v1 ##「표1PersistentVolumeClaim v1 core」
kind: PersistentVolumeClaim
metadata: ##「표2 ObjectMeta v1 meta」
name: data1
spec: ##「표3 PersistentVolumeClaimSpec v1 core」
accessModes:
- ReadWriteOnce
storageClassName: standard
resources:
requests:
storage: 2Gi
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/minikube-pvc $ cat pod.yml
apiVersion: v1
kind: Pod
metadata:
name: pod1
spec:
volumes: ##「표5 Volume v1 core」참고
- name: pvc1
persistentVolumeClaim:
claimName: data1 ## <-- PVC의 이름 설정
containers:
- name: ubuntu
image: ubuntu:16.04
volumeMounts: ## 「표6 VolumeMount v1 core」참고
- name: pvc1
mountPath: /mnt ## <-- 컨테이너 상 마운트 경로
command: ["/usr/bin/tail","-f","/dev/null"]
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/minikube-pvc $ kubectl apply -f pod.yml
pod/pod1 created
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/minikube-pvc $ kubectl get po
NAME READY STATUS RESTARTS AGE
pod1 0/1 Pending 0 5s
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/minikube-pvc $ kubectl apply -f pvc.yml
persistentvolumeclaim/data1 created
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/minikube-pvc $ kubectl get po
NAME READY STATUS RESTARTS AGE
pod1 0/1 ContainerCreating 0 32s
^C ~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/minikube-pvc $ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/pod1 1/1 Running 0 60s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 28h
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/minikube-pvc $ kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
standard (default) k8s.io/minikube-hostpath Delete Immediate false 28h
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/minikube-pvc $ kubectl get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod1 1/1 Running 0 104s 10.244.1.2 minikube-m02 <none> <none>
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/minikube-pvc $ kubectl exec -it pod1 -- bash
root@pod1:/# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdd 8:48 0 1T 0 disk /etc/hosts
sdb 8:16 0 186M 1 disk
sdc 8:32 0 2G 0 disk [SWAP]
sda 8:0 0 388.6M 1 disk
root@pod1:/# df
Filesystem 1K-blocks Used Available Use% Mounted on
overlay 1055762868 138765852 863293544 14% /
tmpfs 65536 0 65536 0% /dev
/dev/sdd 1055762868 138765852 863293544 14% /mnt
shm 65536 0 65536 0% /dev/shm
tmpfs 8003792 12 8003780 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 4001896 0 4001896 0% /proc/acpi
tmpfs 4001896 0 4001896 0% /proc/scsi
tmpfs 4001896 0 4001896 0% /sys/firmware
root@pod1:/# mount
/dev/sdd on /mnt type ext4 (rw,relatime,discard,errors=remount-ro,data=ordered)
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/minikube-pvc $ kubectl get pv,pvc
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE
persistentvolume/pvc-a9034bc9-d9c3-43c9-815f-d7316fba34cf 2Gi RWO Delete Bound default/data1 standard <unset> 7m38s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
persistentvolumeclaim/data1 Bound pvc-a9034bc9-d9c3-43c9-815f-d7316fba34cf 2Gi RWO standard <unset> 7m38s
- NFS persistentVolume
- install nfs
~ $ sudo apt install nfs-kernel-server
~ $ sudo mkdir -p /srv/nfs/shared
~ $ sudo chown nobody:nogroup !$
sudo chown nobody:nogroup /srv/nfs/shared
~ $ echo "/srv/nfs/shared client_ip_address(rw,sync,no_subtree_check)" | tee -a /etc/exports
tee: /etc/exports: Permission denied
/srv/nfs/shared client_ip_address(rw,sync,no_subtree_check)
~ $ kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
minikube Ready control-plane 29h v1.35.1 192.168.49.2 <none> Debian GNU/Linux 12 (bookworm) 6.6.87.2-microsoft-standard-WSL2 docker://29.2.1
minikube-m02 Ready <none> 29h v1.35.1 192.168.49.3 <none> Debian GNU/Linux 12 (bookworm) 6.6.87.2-microsoft-standard-WSL2 docker://29.2.1
minikube-m03 Ready <none> 29h v1.35.1 192.168.49.4 <none> Debian GNU/Linux 12 (bookworm) 6.6.87.2-microsoft-standard-WSL2 docker://29.2.1
~ $ echo "/srv/nfs/shared 192.168.49.0/24(rw,sync,no_subtree_check,no_root_squash)" | sudo tee -a /etc/exports
/srv/nfs/shared 192.168.49.0/24(rw,sync,no_subtree_check,no_root_squash)
~ $ tail !$
tail /etc/exports
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/srv/nfs/shared 192.168.49.0/24(rw,sync,no_subtree_check,no_root_squash)
~ $ sudo exportfs -a
~ $ sudo systemctl restart nfs-kernel-server
~ $ sudo exportfs -v
/srv/nfs/shared
192.168.49.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
~ $ sudo ufw allow from 192.168.49.2 to any port nfs
Rules updated
~ $ sudo ufw allow from 192.168.49.3 to any port nfs
Rules updated
~ $ sudo ufw allow from 192.168.49.4 to any port nfs
Rules updated
~ $ sudo ufw status
Status: inactive
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/nfs $ minikube ssh
Linux minikube 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
docker@minikube:~$ ip route
default via 192.168.49.1 dev eth0
10.244.0.2 dev vethb327c39a scope host
10.244.1.0/24 via 192.168.49.3 dev eth0
10.244.2.0/24 via 192.168.49.4 dev eth0
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.49.0/24 dev eth0 proto kernel scope link src 192.168.49.2
`nfs-pvc.yml`
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-1
spec:
accessModes:
- ReadWriteMany
storageClassName: "" ## PV를 라벨로 매치하기 위해 Null을 설정
resources:
requests:
storage: "100Mi"
selector: ## 대응하는 PV의 라벨을 설정
matchLabels:
name: pv-nfs-1
`nfs-pv.yml`
## 「표7 PersistentVolume v1 core」참고
apiVersion: v1
kind: PersistentVolume
metadata: ## 표8 참고
name: nfs-1
labels:
name: pv-nfs-1
spec: ## 표9 참고
capacity:
storage: 100Mi
accessModes:
- ReadWriteMany
nfs: ## 표10참고
server: 192.168.49.1 ## Vagrant상의 NFS서버 IP주소
path: /srv/nfs/shared ## NFS서버 공개 경로
`nfs-client.yml`
apiVersion: apps/v1
kind: Deployment
metadata:
name: nfs-client
spec:
replicas: 2
selector:
matchLabels:
app: ubuntu
template:
metadata:
labels:
app: ubuntu
spec:
containers:
- name: ubuntu
image: ubuntu:16.04
volumeMounts:
- name: nfs
mountPath: /mnt
command: ["/usr/bin/tail","-f","/dev/null"]
volumes:
- name: nfs
persistentVolumeClaim:
claimName: nfs-1
# ~ $ sudo vi /etc/exports # /srv/nfs/shared 192.168.49.*(rw,sync,no_subtree_check,no_root_squash)
# ~ $ sudo exportfs -a
# ~ $ sudo systemctl restart nfs-kernel-server
# ~ $ sudo exportfs -v
# /srv/nfs/shared
# 192.168.49.*(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash) # fails
~ $ minikube ssh
docker@minikube:~$ sudo mkdir /mnt/test
docker@minikube:~$ sudo mount -t nfs 192.168.49.1:/srv/nfs/shared /mnt/test
Created symlink /run/systemd/system/remote-fs.target.wants/rpc-statd.service → /lib/systemd/system/rpc-statd.service.
mount.nfs: access denied by server while mounting 192.168.49.1:/srv/nfs/shared
# ~ $ sudo vi /etc/exports # /srv/nfs/shared 192.168.49.0/24(rw,sync,no_subtree_check,no_root_squash)
# ~ $ sudo exportfs -a
# ~ $ sudo systemctl restart nfs-kernel-server
# ~ $ sudo exportfs -v
# /srv/nfs/shared
# 192.168.49.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
~ $ minikube ssh
docker@minikube:~$ ls /mnt
test
docker@minikube:~$ sudo mount -t nfs 192.168.49.1:/srv/nfs/shared /mnt/test
docker@minikube:~$ df -h
Filesystem Size Used Avail Use% Mounted on
overlay 1007G 133G 824G 14% /
tmpfs 64M 0 64M 0% /dev
shm 64M 84K 64M 1% /dev/shm
tmpfs 3.9G 8.0K 3.9G 1% /tmp
tmpfs 3.9G 12M 3.9G 1% /run
/dev/sdd 1007G 133G 824G 14% /var
none 3.9G 0 3.9G 0% /usr/lib/modules/6.6.87.2-microsoft-standard-WSL2
tmpfs 5.0M 0 5.0M 0% /run/lock
192.168.49.1:/srv/nfs/shared 1007G 133G 824G 14% /mnt/test
docker@minikube:~$ sudo umount /mnt/test
docker@minikube:~$ df -h
Filesystem Size Used Avail Use% Mounted on
overlay 1007G 133G 824G 14% /
tmpfs 64M 0 64M 0% /dev
shm 64M 84K 64M 1% /dev/shm
tmpfs 3.9G 8.0K 3.9G 1% /tmp
tmpfs 3.9G 12M 3.9G 1% /run
/dev/sdd 1007G 133G 824G 14% /var
none 3.9G 0 3.9G 0% /usr/lib/modules/6.6.87.2-microsoft-standard-WSL2
tmpfs 5.0M 0 5.0M 0% /run/lock
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/nfs $ kubectl get po,pv,pvc
NAME READY STATUS RESTARTS AGE
pod/nfs-client-6688d767bf-9s4dw 1/1 Running 0 12m
pod/nfs-client-6688d767bf-b2zk4 1/1 Running 0 12m
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE
persistentvolume/nfs-1 100Mi RWX Retain Bound default/nfs-1 <unset> 12m
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
persistentvolumeclaim/nfs-1 Bound nfs-1 100Mi RWX <unset> 12m
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/nfs $ kubectl exec -it pod/nfs-client-6688d767bf-9s4dw -- bash
root@nfs-client-6688d767bf-9s4dw:/# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 1007G 133G 824G 14% /
tmpfs 64M 0 64M 0% /dev
192.168.49.1:/srv/nfs/shared 1007G 133G 824G 14% /mnt
shm 64M 0 64M 0% /dev/shm
/dev/sdd 1007G 133G 824G 14% /etc/hosts
tmpfs 7.7G 12K 7.7G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 3.9G 0 3.9G 0% /proc/acpi
tmpfs 3.9G 0 3.9G 0% /proc/scsi
tmpfs 3.9G 0 3.9G 0% /sys/firmware
root@nfs-client-6688d767bf-9s4dw:/# touch /mnt/from_nfs-client-6688d767bf-9s4dw
root@nfs-client-6688d767bf-9s4dw:/# exit
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/nfs $ ls -l /srv/nfs/shared/
total 0
-rw-r--r-- 1 root root 0 Mar 23 21:16 from_nfs-client-6688d767bf-9s4dw
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/nfs $ kubectl exec -it pod/nfs-client-6688d767bf-b2zk4 -- bash
root@nfs-client-6688d767bf-b2zk4:/# ls /mnt
from_nfs-client-6688d767bf-9s4dw
root@nfs-client-6688d767bf-b2zk4:/# touch /mnt/from_nfs-client-6688d767bf-b2zk4
root@nfs-client-6688d767bf-b2zk4:/# ls -l /mnt
total 0
-rw-r--r-- 1 root root 0 Mar 23 12:16 from_nfs-client-6688d767bf-9s4dw
-rw-r--r-- 1 root root 0 Mar 23 12:18 from_nfs-client-6688d767bf-b2zk4
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/nfs $ ls -l /srv/nfs/shared/
total 0
-rw-r--r-- 1 root root 0 Mar 23 21:16 from_nfs-client-6688d767bf-9s4dw
-rw-r--r-- 1 root root 0 Mar 23 21:18 from_nfs-client-6688d767bf-b2zk4
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/nfs $ kubectl exec -it pod/nfs-client-6688d767bf-9s4dw -- bash
root@nfs-client-6688d767bf-9s4dw:/# ls -l /mnt
total 0
-rw-r--r-- 1 root root 0 Mar 23 12:16 from_nfs-client-6688d767bf-9s4dw
-rw-r--r-- 1 root root 0 Mar 23 12:18 from_nfs-client-6688d767bf-b2zk4
~/gitclone/playground/reading/57_15_step_de_shutoku_docker_kara_hairu_kubernetes/15_DandK/step11/minikube-pvc $ kubectl get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nfs-client-6688d767bf-9s4dw 1/1 Running 0 36m 10.244.2.2 minikube-m03 <none> <none>
nfs-client-6688d767bf-b2zk4 1/1 Running 0 36m 10.244.1.3 minikube-m02 <none> <none>
~ $ sudo systemctl status nfs-kernel-server
● nfs-server.service - NFS server and services
Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2026-03-23 21:10:08 KST; 16min ago
Process: 39651 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Process: 39652 ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS)
Main PID: 39652 (code=exited, status=0/SUCCESS)
CPU: 22ms
Mar 23 21:10:10 Win11-01 systemd[1]: Starting NFS server and services...
Mar 23 21:10:08 Win11-01 systemd[1]: Finished NFS server and services.
~ $ sudo systemctl disable !$
sudo systemctl disable nfs-kernel-server
Synchronizing state of nfs-kernel-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable nfs-kernel-server
Removed /etc/systemd/system/multi-user.target.wants/nfs-server.service.
~ $ sudo systemctl status nfs-kernel-server
● nfs-server.service - NFS server and services
Loaded: loaded (/lib/systemd/system/nfs-server.service; disabled; vendor preset: enabled)
Drop-In: /run/systemd/generator/nfs-server.service.d
└─order-with-mounts.conf
Active: active (exited) since Mon 2026-03-23 21:10:08 KST; 16min ago
Main PID: 39652 (code=exited, status=0/SUCCESS)
CPU: 22ms
Mar 23 21:10:10 Win11-01 systemd[1]: Starting NFS server and services...
Mar 23 21:10:08 Win11-01 systemd[1]: Finished NFS server and services.
~ $ cat mysql-sts.yml
apiVersion: v1
kind: Service
metadata:
name: mysql ## 이 이름이 k8s내 DNS에 등록됨.
labels:
app: mysql-sts
spec:
ports:
- port: 3306
name: mysql
clusterIP: None ## 특징① 헤드리스 서비스 설정
selector:
app: mysql-sts ## 후술하는 스테이트풀셋과 연결시키는 라벨
---
## MySQL 스테이트풀셋
#
apiVersion: apps/v1 ## 표1 스테이트풀셋 참고
kind: StatefulSet
metadata:
name: mysql
spec: ## 표2 스테이트풀셋 사양
serviceName: mysql ## 특징② 연결할 서비스의 이름 설정
replicas: 1 ## 파드 기동 개수
selector:
matchLabels:
app: mysql-sts
template: ## 표3 파드의 템플릿
metadata:
labels:
app: mysql-sts
spec:
containers:
- name: mysql
image: mysql:5.7 ## Docker Hub MySQL 리포지터리 지정
env:
- name: MYSQL_ROOT_PASSWORD
value: qwerty
ports:
- containerPort: 3306
name: mysql
volumeMounts: ## 특징③ 컨테이너상의 마운트 경로 설정
- name: pvc
mountPath: /var/lib/mysql
subPath: data ## 초기화 시 빈 디렉터리가 필요
livenessProbe: ## MySQL 기동 확인
exec:
command: ["mysqladmin","-p$MYSQL_ROOT_PASSWORD","ping"]
initialDelaySeconds: 60
timeoutSeconds: 10
volumeClaimTemplates: ## 특징④볼륨 요구 템플릿
- metadata:
name: pvc
spec: ## 표4 퍼시스턴트볼륨 요구 스펙
accessModes: [ "ReadWriteOnce" ]
## 환경에 맞게 선택하여, sotrage의 값을 편집
#storageClassName: ibmc-file-bronze # 용량 20Gi IKS
#storageClassName: gluster-heketi # 용량 12Gi GlusterFS
storageClassName: standard # 용량 2Gi Minikube/GKE
resources:
requests:
storage: 2Gi
~ $ kubectl describe pod !$
kubectl describe pod mysql-0
Name: mysql-0
Namespace: default
Priority: 0
Service Account: default
Node: minikube-m03/192.168.49.4
Start Time: Mon, 23 Mar 2026 21:57:56 +0900
Labels: app=mysql-sts
apps.kubernetes.io/pod-index=0
controller-revision-hash=mysql-85c4b895c5
statefulset.kubernetes.io/pod-name=mysql-0
Annotations: <none>
Status: Pending
IP: 10.244.2.3
IPs:
IP: 10.244.2.3
Controlled By: StatefulSet/mysql
Containers:
mysql:
Container ID:
Image: mysql:5.7
Image ID:
Port: 3306/TCP (mysql)
Host Port: 0/TCP (mysql)
State: Waiting
Reason: CreateContainerConfigError
Ready: False
Restart Count: 0
Liveness: exec [mysqladmin -p$MYSQL_ROOT_PASSWORD ping] delay=60s timeout=10s period=10s #success=1 #failure=3
Environment:
MYSQL_ROOT_PASSWORD: qwerty
Mounts:
/var/lib/mysql from pvc (rw,path="data")
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-mqbtj (ro)
Conditions:
Type Status
PodReadyToStartContainers True
Initialized True
Ready False
ContainersReady False
PodScheduled True
Volumes:
pvc:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: pvc-mysql-0
ReadOnly: false
kube-api-access-mqbtj:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
Optional: false
DownwardAPI: true
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 35s default-scheduler 0/3 nodes are available: pod has unbound immediate PersistentVolumeClaims. not found
Warning FailedScheduling 34s (x2 over 35s) default-scheduler 0/3 nodes are available: pod has unbound immediate PersistentVolumeClaims. not found
Normal Scheduled 34s default-scheduler Successfully assigned default/mysql-0 to minikube-m03
Normal Pulled 4s (x5 over 35s) kubelet spec.containers{mysql}: Container image "mysql:5.7" already present on machine and can be accessed by the pod
Warning Failed 4s (x5 over 35s) kubelet spec.containers{mysql}: Error: stat /tmp/hostpath-provisioner/default/pvc-mysql-0: no such file or directory
$ kubectl get po,pv,pvc,svc
NAME READY STATUS RESTARTS AGE
pod/mysql-0 0/1 CreateContainerConfigError 0 2m56s
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE
persistentvolume/pvc-65a320a5-e98a-4091-88d6-6e6d41e76901 2Gi RWO Delete Bound default/pvc-mysql-0 standard <unset> 2m56s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
persistentvolumeclaim/pvc-mysql-0 Bound pvc-65a320a5-e98a-4091-88d6-6e6d41e76901 2Gi RWO standard <unset> 2m56s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 30h
service/mysql ClusterIP None <none> 3306/TCP 2m57s
~ $ kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
minikube Ready control-plane 30h v1.35.1 192.168.49.2 <none> Debian GNU/Linux 12 (bookworm) 6.6.87.2-microsoft-standard-WSL2 docker://29.2.1
minikube-m02 Ready <none> 30h v1.35.1 192.168.49.3 <none> Debian GNU/Linux 12 (bookworm) 6.6.87.2-microsoft-standard-WSL2 docker://29.2.1
minikube-m03 Ready <none> 30h v1.35.1 192.168.49.4 <none> Debian GNU/Linux 12 (bookworm) 6.6.87.2-microsoft-standard-WSL2 docker://29.2.1
~/gitclone/15_DandK/step11/nfs $ minikube ssh --node minikube-m02
Linux minikube-m02 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
docker@minikube-m02:~$ ls /tmp/hostpath-provisioner/default/pvc-mysql-0
ls: cannot access '/tmp/hostpath-provisioner/default/pvc-mysql-0': No such file or directory
docker@minikube-m02:~$
logout
ssh: Process exited with status 2
~ $ minikube ssh --node minikube-m03
Linux minikube-m03 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
docker@minikube-m03:~$ ls /tmp/hostpath-provisioner/default/pvc-mysql-0
ls: cannot access '/tmp/hostpath-provisioner/default/pvc-mysql-0': No such file or directory
docker@minikube-m03:~$
logout
ssh: Process exited with status 2
~ $ minikube ssh
Linux minikube 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
docker@minikube:~$ ls /tmp/hostpath-provisioner/default/pvc-mysql-0
docker@minikube:~$
~ $ cat mysql-sts-nfs-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-nfs-pv
labels:
app: mysql
spec:
capacity:
storage: 2Gi
accessModes:
- ReadWriteMany
nfs:
server: 192.168.49.1
path: /srv/nfs/shared
~ $ cat mysql-sts-nfs-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-nfs-pvc
spec:
accessModes:
- ReadWriteMany
storageClassName: ""
resources:
requests:
storage: 2Gi
selector:
matchLabels:
app: mysql
~ $ kubectl apply -f mysql-sts-nfs-pv.yml
persistentvolume/mysql-nfs-pv created
~ $ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE
mysql-nfs-pv 2Gi RWX Retain Available <unset> 6s
pvc-65a320a5-e98a-4091-88d6-6e6d41e76901 2Gi RWO Delete Bound default/pvc-mysql-0 standard <unset> 13m
~ $ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
pvc-mysql-0 Bound pvc-65a320a5-e98a-4091-88d6-6e6d41e76901 2Gi RWO standard <unset> 13m
~ $ kubectl apply -f mysql-sts-nfs-pvc.yml
persistentvolumeclaim/mysql-nfs-pvc created
~ $ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
mysql-nfs-pvc Bound mysql-nfs-pv 2Gi RWX <unset> 5s
pvc-mysql-0 Bound pvc-65a320a5-e98a-4091-88d6-6e6d41e76901 2Gi RWO standard <unset> 14m
~ $ kubectl apply -f mysql-sts.yml
service/mysql unchanged
The StatefulSet "mysql" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'ordinals', 'template', 'updateStrategy', 'revisionHistoryLimit', 'persistentVolumeClaimRetentionPolicy' and 'minReadySeconds
' are forbidden
~ $ cat mysql-sts.yml
apiVersion: v1
kind: Service
metadata:
name: mysql ## 이 이름이 k8s내 DNS에 등록됨.
labels:
app: mysql-sts
spec:
ports:
- port: 3306
name: mysql
clusterIP: None ## 특징① 헤드리스 서비스 설정
selector:
app: mysql-sts ## 후술하는 스테이트풀셋과 연결시키는 라벨
---
## MySQL 스테이트풀셋
#
apiVersion: apps/v1 ## 표1 스테이트풀셋 참고
kind: StatefulSet
metadata:
name: mysql
spec: ## 표2 스테이트풀셋 사양
serviceName: mysql ## 특징② 연결할 서비스의 이름 설정
replicas: 1 ## 파드 기동 개수
selector:
matchLabels:
app: mysql-sts
template: ## 표3 파드의 템플릿
metadata:
labels:
app: mysql-sts
spec:
containers:
- name: mysql
image: mysql:5.7 ## Docker Hub MySQL 리포지터리 지정
env:
- name: MYSQL_ROOT_PASSWORD
value: qwerty
ports:
- containerPort: 3306
name: mysql
volumeMounts: ## 특징③ 컨테이너상의 마운트 경로 설정
- name: mysql-storage
mountPath: /var/lib/mysql
subPath: data ## 초기화 시 빈 디렉터리가 필요
livenessProbe: ## MySQL 기동 확인
exec:
command: ["mysqladmin","-p$MYSQL_ROOT_PASSWORD","ping"]
initialDelaySeconds: 60
timeoutSeconds: 10
volumes:
- name: mysql-storage
persistentVolumeClaim:
claimName: mysql-nfs-pvc
~ $ kubectl delete sts mysql
statefulset.apps "mysql" deleted from default namespace
~ $ kubectl get all
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 30h
service/mysql ClusterIP None <none> 3306/TCP 20m
~ $ kubectl get po,pv,pvc,sts
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE
persistentvolume/mysql-nfs-pv 2Gi RWX Retain Bound default/mysql-nfs-pvc <unset> 7m14s
persistentvolume/pvc-65a320a5-e98a-4091-88d6-6e6d41e76901 2Gi RWO Delete Bound default/pvc-mysql-0 standard <unset> 20m
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
persistentvolumeclaim/mysql-nfs-pvc Bound mysql-nfs-pv 2Gi RWX <unset> 6m44s
persistentvolumeclaim/pvc-mysql-0 Bound pvc-65a320a5-e98a-4091-88d6-6e6d41e76901 2Gi RWO standard <unset> 20m
~ $ kubectl apply -f !$
kubectl apply -f mysql-sts.yml
service/mysql unchanged
statefulset.apps/mysql created
~ $ kubectl get po,pv,pvc,svc,sts
NAME READY STATUS RESTARTS AGE
pod/mysql-0 1/1 Running 0 54s
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE
persistentvolume/mysql-nfs-pv 2Gi RWX Retain Bound default/mysql-nfs-pvc <unset> 8m26s
persistentvolume/pvc-65a320a5-e98a-4091-88d6-6e6d41e76901 2Gi RWO Delete Bound default/pvc-mysql-0 standard <unset> 21m
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
persistentvolumeclaim/mysql-nfs-pvc Bound mysql-nfs-pv 2Gi RWX <unset> 7m56s
persistentvolumeclaim/pvc-mysql-0 Bound pvc-65a320a5-e98a-4091-88d6-6e6d41e76901 2Gi RWO standard <unset> 21m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 30h
service/mysql ClusterIP None <none> 3306/TCP 21m
NAME READY AGE
statefulset.apps/mysql 1/1 54s
~ $ kubectl exec -it mysql-0 -- bash
bash-4.2# mysql -u root -pqwerty
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.44 MySQL Community Server (GPL)
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database hello;
Query OK, 1 row affected (0.03 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| hello |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> ^DBye
bash-4.2# exit
~ $ kubectl delete -f mysql-sts.yml
service "mysql" deleted from default namespace
statefulset.apps "mysql" deleted from default namespace
~ $ kubectl get svc,sts,po,pvc,pv
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 30h
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
persistentvolumeclaim/mysql-nfs-pvc Bound mysql-nfs-pv 2Gi RWX <unset> 10m
persistentvolumeclaim/pvc-mysql-0 Bound pvc-65a320a5-e98a-4091-88d6-6e6d41e76901 2Gi RWO standard <unset> 24m
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE
persistentvolume/mysql-nfs-pv 2Gi RWX Retain Bound default/mysql-nfs-pvc <unset> 10m
persistentvolume/pvc-65a320a5-e98a-4091-88d6-6e6d41e76901 2Gi RWO Delete Bound default/pvc-mysql-0 standard <unset> 24m
~ $ ls /srv/nfs/shared/
data/ from_nfs-client-6688d767bf-9s4dw from_nfs-client-6688d767bf-b2zk4
~ $ ls /srv/nfs/shared/data/
auto.cnf ca-key.pem ca.pem client-cert.pem client-key.pem hello ib_buffer_pool ib_logfile0 ib_logfile1 ibdata1 mysql mysql.sock performance_schema private_key.pem public_key.pem server-cert.pem server-key.pem sys
~ $ !?exec
kubectl exec -it mysql-0 -- bash
bash-4.2# mysql -u root -pqwerty
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.44 MySQL Community Server (GPL)
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| hello |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
~ $ kubectl get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
mysql-0 1/1 Running 0 67s 10.244.2.4 minikube-m03 <none> <none>
~/gitclone/15_DandK/step12 $ kubectl drain minikube-m03
node/minikube-m03 cordoned
error: unable to drain node "minikube-m03" due to error: cannot delete DaemonSet-managed Pods (use --ignore-daemonsets to ignore): kube-system/kindnet-bg6xj, kube-system/kube-proxy-2ldz2, continuing command...
There are pending nodes to be drained:
minikube-m03
cannot delete DaemonSet-managed Pods (use --ignore-daemonsets to ignore): kube-system/kindnet-bg6xj, kube-system/kube-proxy-2ldz2
# WARNING: transaction on mysql will be canceled and rollback.
# plan carefully.
~ $ kubectl drain minikube-m03 --ignore-daemonsets
node/minikube-m03 already cordoned
Warning: ignoring DaemonSet-managed Pods: kube-system/kindnet-bg6xj, kube-system/kube-proxy-2ldz2
evicting pod default/mysql-0
pod/mysql-0 evicted
node/minikube-m03 drained
~ $ kubectl get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
mysql-0 1/1 Running 0 11s 10.244.1.5 minikube-m02 <none> <none>
~/gitclone/15_DandK/step12/liberator $ kubectl apply -f daemonset.yml
daemonset.apps/liberator created
~/gitclone/15_DandK/step12/liberator $ kubectl get all
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 31h
~/gitclone/15_DandK/step12/liberator $ kubectl get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-7d764666f9-8698l 1/1 Running 2 (29m ago) 31h
kube-system etcd-minikube 1/1 Running 2 (28m ago) 31h
kube-system kindnet-bg6xj 1/1 Running 2 (29m ago) 31h
kube-system kindnet-dwdnx 1/1 Running 0 28m
kube-system kindnet-k8ztd 1/1 Running 2 (29m ago) 31h
kube-system kube-apiserver-minikube 1/1 Running 2 (28m ago) 31h
kube-system kube-controller-manager-minikube 1/1 Running 2 (29m ago) 31h
kube-system kube-proxy-2ldz2 1/1 Running 2 (29m ago) 31h
kube-system kube-proxy-l6k6z 1/1 Running 2 (29m ago) 31h
kube-system kube-proxy-vgct6 1/1 Running 0 28m
kube-system kube-scheduler-minikube 1/1 Running 2 (29m ago) 31h
kube-system storage-provisioner 1/1 Running 4 (28m ago) 31h
tkr-system liberator-ghpxv 0/1 ContainerCreating 0 11s
tkr-system liberator-rl5q9 0/1 ContainerCreating 0 11s
tkr-system liberator-skznw 0/1 ContainerCreating 0 11s
~/gitclone/15_DandK/step12/liberator $ kubectl get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-7d764666f9-8698l 1/1 Running 2 (29m ago) 31h
kube-system etcd-minikube 1/1 Running 2 (29m ago) 31h
kube-system kindnet-bg6xj 1/1 Running 2 (29m ago) 31h
kube-system kindnet-dwdnx 1/1 Running 0 28m
kube-system kindnet-k8ztd 1/1 Running 2 (29m ago) 31h
kube-system kube-apiserver-minikube 1/1 Running 2 (29m ago) 31h
kube-system kube-controller-manager-minikube 1/1 Running 2 (29m ago) 31h
kube-system kube-proxy-2ldz2 1/1 Running 2 (29m ago) 31h
kube-system kube-proxy-l6k6z 1/1 Running 2 (29m ago) 31h
kube-system kube-proxy-vgct6 1/1 Running 0 28m
kube-system kube-scheduler-minikube 1/1 Running 2 (29m ago) 31h
kube-system storage-provisioner 1/1 Running 4 (28m ago) 31h
tkr-system liberator-ghpxv 0/1 ContainerCreating 0 19s
tkr-system liberator-rl5q9 0/1 ContainerCreating 0 19s
tkr-system liberator-skznw 0/1 ContainerCreating 0 19s
~/gitclone/15_DandK/step12/liberator $ kubectl get po -n tkr-system -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
liberator-ghpxv 0/1 ContainerCreating 0 36s <none> minikube-m02 <none> <none>
liberator-rl5q9 0/1 ContainerCreating 0 36s <none> minikube <none> <none>
liberator-skznw 0/1 ContainerCreating 0 36s <none> minikube-m03 <none> <none>
~/gitclone/15_DandK/step12/liberator $ kubectl get po -n tkr-system -o wide -w
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
liberator-ghpxv 0/1 ContainerCreating 0 40s <none> minikube-m02 <none> <none>
liberator-rl5q9 0/1 ContainerCreating 0 40s <none> minikube <none> <none>
liberator-skznw 0/1 ContainerCreating 0 40s <none> minikube-m03 <none> <none>
^C ~/gitclone/15_DandK/step12/liberator $ kubectl describe liberator-ghpxv -n tkr-system
error: the server doesn't have a resource type "liberator-ghpxv"
~/gitclone/15_DandK/step12/liberator $ kubectl describe po liberator-ghpxv -n tkr-system
Name: liberator-ghpxv
Namespace: tkr-system
Priority: 0
Service Account: high-availability
Node: minikube-m02/192.168.49.3
Start Time: Mon, 23 Mar 2026 23:19:45 +0900
Labels: controller-revision-hash=b55cf7f88
name=liberator
pod-template-generation=1
Annotations: <none>
Status: Running
IP: 10.244.1.2
IPs:
IP: 10.244.1.2
Controlled By: DaemonSet/liberator
Containers:
liberator:
Container ID: docker://2119af8f39d37c21bebf49d48984d4fa995927698ef8156b661ec1709a62307d
Image: maho/liberator:0.1
Image ID: docker-pullable://maho/liberator@sha256:798767cf3d54910b349ca0208b4c534f95a12ec09bf236341273ec021cdc1122
Port: <none>
Host Port: <none>
State: Running
Started: Mon, 23 Mar 2026 23:20:46 +0900
Ready: True
Restart Count: 0
Limits:
memory: 200Mi
Requests:
cpu: 100m
memory: 200Mi
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-m2ggl (ro)
Conditions:
Type Status
PodReadyToStartContainers True
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
kube-api-access-m2ggl:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
Optional: false
DownwardAPI: true
QoS Class: Burstable
Node-Selectors: <none>
Tolerations: node.kubernetes.io/disk-pressure:NoSchedule op=Exists
node.kubernetes.io/memory-pressure:NoSchedule op=Exists
node.kubernetes.io/not-ready:NoExecute op=Exists
node.kubernetes.io/pid-pressure:NoSchedule op=Exists
node.kubernetes.io/unreachable:NoExecute op=Exists
node.kubernetes.io/unschedulable:NoSchedule op=Exists
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 70s default-scheduler Successfully assigned tkr-system/liberator-ghpxv to minikube-m02
Normal Pulling 70s kubelet spec.containers{liberator}: Pulling image "maho/liberator:0.1"
Normal Pulled 9s kubelet spec.containers{liberator}: Successfully pulled image "maho/liberator:0.1" in 1m4.826s (1m4.826s including waiting). Image size: 455549158 bytes.
Normal Created 9s kubelet spec.containers{liberator}: Container created
Normal Started 9s kubelet spec.containers{liberator}: Container started
~/gitclone/15_DandK/step12/liberator $ kubectl get po -n tkr-system -o wide -w
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
liberator-ghpxv 1/1 Running 0 76s 10.244.1.2 minikube-m02 <none> <none>
liberator-rl5q9 1/1 Running 0 76s 10.244.0.3 minikube <none> <none>
liberator-skznw 1/1 Running 0 76s 10.244.2.2 minikube-m03 <none> <none>
32093 2026-03-23 22:57:15 cat gfs-sc.yml
32094 2026-03-23 22:57:17 ls
32095 2026-03-23 22:57:19 cd liberator/
32096 2026-03-23 22:57:19 ls
32097 2026-03-23 22:57:22 cd container/
32098 2026-03-23 22:57:22 ls
32099 2026-03-23 22:57:25 cat main.py
32100 2026-03-23 23:02:18 ls
32101 2026-03-23 23:02:20 cat Dockerfile
32102 2026-03-23 23:06:29 cd ..
32103 2026-03-23 23:06:29 ls
32104 2026-03-23 23:06:33 cat daemonset.yml
32105 2026-03-23 23:06:48 cd container/
32106 2026-03-23 23:06:52 docker build . -t maho/liberator:0.1
32107 2026-03-23 23:08:48 cd ..
32108 2026-03-23 23:08:49 ls
32109 2026-03-23 23:08:50 cd k8s-rbac/
32110 2026-03-23 23:08:51 ls
32111 2026-03-23 23:08:53 cat namespace.yml
32112 2026-03-23 23:08:59 cat role-base-access-ctl.yml
32113 2026-03-23 23:10:07 ls
32114 2026-03-23 23:10:09 cat service-account.yml
32115 2026-03-23 23:11:51 kubectl get all
32116 2026-03-23 23:12:16 kubectl apply -f namespace.yml
32117 2026-03-23 23:12:21 kubectl apply -f service-account.yml
32118 2026-03-23 23:12:26 kubectl apply -f role-base-access-ctl.yml
32119 2026-03-23 23:12:31 kubectl get clusterrole
32120 2026-03-23 23:12:47 ls
32121 2026-03-23 23:12:53 kubectl get ns
32122 2026-03-23 23:13:08 kubectl get crb
32123 2026-03-23 23:13:14 kubectl get clusterrolebinding
32124 2026-03-23 23:13:39 kubectl get serviceaccount
32125 2026-03-23 23:13:45 kubectl get all
32126 2026-03-23 23:14:01 kubectl describe clusterrole admin -n kube-system
32127 2026-03-23 23:15:01 ls
32128 2026-03-23 23:15:03 cat role-base-access-ctl.yml
32129 2026-03-23 23:15:11 kubectl get clusterrole nodes
32130 2026-03-23 23:15:31 kubectl get clusterrole nodes -n tkr-system
32131 2026-03-23 23:15:41 kubectl get clusterrole nodes -n tkr-system -o wide
32132 2026-03-23 23:16:03 kubectl get po -n ktr-system
32133 2026-03-23 23:16:15 cd ..
32134 2026-03-23 23:16:15 ls
32135 2026-03-23 23:16:20 kubectl -f k8s-rbac/
32136 2026-03-23 23:16:28 kubectl apply -f k8s-rbac/
32137 2026-03-23 23:16:47 ls
32138 2026-03-23 23:16:49 cat daemonset.yml
32139 2026-03-23 23:19:44 kubectl apply -f daemonset.yml
32140 2026-03-23 23:19:48 kubectl get all
32141 2026-03-23 23:19:56 kubectl get po -A
32142 2026-03-23 23:20:20 kubectl get po -n tkr-system -o wide
32143 2026-03-23 23:20:25 kubectl get po -n tkr-system -o wide -w
32144 2026-03-23 23:20:49 kubectl describe liberator-ghpxv -n tkr-system
32145 2026-03-23 23:20:55 kubectl describe po liberator-ghpxv -n tkr-system
32146 2026-03-23 23:21:01 kubectl get po -n tkr-system -o wide -w
32147 2026-03-23 23:21:47 kubectl get node
32148 2026-03-23 23:22:01 kubectl cordon minikube-m03
32149 2026-03-23 23:22:08 kubectl get no
32150 2026-03-23 23:22:19 kubectl recordon minikube-m03
32151 2026-03-23 23:23:12 kubectl uncordon minikube-m03
32152 2026-03-23 23:23:17 kubectl get no
32153 2026-03-23 23:23:37 kubectl get sts
32154 2026-03-23 23:23:38 ls
32155 2026-03-23 23:23:37 cd ..
32156 2026-03-23 23:23:37 ls
32157 2026-03-23 23:23:50 kubectl apply mysql-sts.yml
32158 2026-03-23 23:23:55 kubectl apply -f mysql-sts.yml
32159 2026-03-23 23:24:00 kubectl get all
32160 2026-03-23 23:24:15 kubectl get po -o wide
32161 2026-03-23 23:24:38 kubectl exec -it mysql-0 -- bash
32162 2026-03-23 23:25:23 minikube stop --help
32163 2026-03-23 23:25:46 minikube start --help
32164 2026-03-23 23:26:05 ls
32165 2026-03-23 23:26:08 kubectl get no
32166 2026-03-23 23:26:18 kubectl get po -o wide
32167 2026-03-23 23:26:29 kubectl delete node minikube-m02
32168 2026-03-23 23:26:44 kubectl get sts
32169 2026-03-23 23:26:53 watch -n 5 "kubectl get sts"
32170 2026-03-23 23:27:21 kubectl get po -o wide
32171 2026-03-23 23:28:02 minikube start
32172 2026-03-23 23:29:26 kubectl get no
32173 2026-03-23 23:29:40 ls
32174 2026-03-23 23:29:48 kubectl delete -f mysql-sts.yml
32175 2026-03-23 23:29:52 kubectl delete -f mysql-sts-nfs-pv.yml
32176 2026-03-23 23:29:56 kubectl delete -f mysql-sts-nfs-pvc.yml
32177 2026-03-23 23:29:58 ls
32178 2026-03-23 23:30:01 cd liberator/
32179 2026-03-23 23:30:01 ls
32180 2026-03-23 23:30:10 kubectl delete -f daemonset.yml
32181 2026-03-23 23:30:13 kubectl delete -f k8s-rbac/
32182 2026-03-23 23:30:21 kubectl get po -A
32183 2026-03-23 23:30:33 kubectl get po -A -w
32184 2026-03-23 23:30:42 kubectl get po
32185 2026-03-23 23:30:44 kubectl get po -A
32186 2026-03-23 23:31:10 kubectl get pv,pvc,svc,sts,no,clusterrole,clusterrolebinding
32187 2026-03-23 23:31:23 ls
32188 2026-03-23 23:31:31 kubectl get pv,pvc
32189 2026-03-23 23:31:51 kubectl delte pvc pvc-mysql-0
32190 2026-03-23 23:31:55 kubectl delete pvc pvc-mysql-0
32191 2026-03-23 23:32:04 kubectl get pvc
32192 2026-03-23 23:32:11 kubectl get pv
32193 2026-03-23 23:32:18 kubectl delete pv pvc-65a320a5-e98a-4091-88d6-6e6d41e76901
32194 2026-03-23 23:32:35 minikube stop
32195 2026-03-23 23:33:15 sudo systemctl status nfs-kernel-server
32196 2026-03-23 23:33:26 sudo systemctl stop nfs-kernel-server
32197 2026-03-23 23:33:42 sudo systemctl status nfs-kernel-server
32198 2026-03-23 23:33:48 history 200