hostpath로 지정된 directory 자료를 container 내 path에 동기화
각 노드에 해당 작업 실행
node1 : <h1><p style="color:red">node1</p></h1>
node2 : <h1><p style="color:blue">node2</p></h1>
node3 : <h1><p style="color:green">node3</p></h1>
[root@node3 /root]# mkdir -p /web
[root@node3 /root]# echo "<h1><p style="color:green">node3</p></h1>" > /web/index.html
hostpath.yaml 통해 volume 지정 pod 생성
[root@master ~/kube/13/storage]# vi hostpath.yaml
[root@master ~/kube/13/storage]# cat hostpath.yaml
apiVersion: v1
kind: Pod
metadata:
name: hostpath-pod
spec:
volumes:
- name: html
hostPath:
path: /web
containers:
- name: nginx-container
image: nginx:1.14
volumeMounts:
- name: html
mountPath: /usr/share/nginx/html
[root@master ~/kube/13/storage]# kubectl apply -f hostpath.yaml
pod/hostpath-pod created
[root@master ~/kube/13/storage]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
hostpath-pod 1/1 Running 0 5s 10.233.75.11 node2 <none> <none>
▶ node2 의 /web 자료를 hostpath-pod container 내 /usr/share/nginx/html 에 동기화 함
※ POD가 어느 노드에 생길지 모르니 모든 노드에 volume directory를 만들어줘야 함
container 간 공유를 위한 Volume ▶ host 쪽에는 데이터가 저장되지 않음
[root@master ~/kube/13/storage]# vi emptyDir.yaml
[root@master ~/kube/13/storage]# cat emptyDir.yaml
apiVersion: v1
kind: Pod
metadata:
name: emptydir-pod
spec:
volumes:
- name: html
emptyDir: {}
containers:
- name: genid
image: smlinux/genid:env
volumeMounts:
- name: html
mountPath: /webdata
- name: webserver
image: nginx:1.14
volumeMounts:
- name: html
mountPath: /usr/share/nginx/html
readOnly: true
ports:
- containerPort: 80
[root@master ~/kube/13/storage]# kubectl apply -f emptyDir.yaml
[root@master ~/kube/13/storage]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
emptydir-pod 2/2 Running 0 2m31s 10.233.75.12 node2 <none> <none>
[root@master ~/kube/13/storage]# curl http://10.233.75.12
+-----------------+
| Riley Johnston |
| 143 Bourg St |
| Erie, PA 16515 |
| (814) xxx-xxxx |
+-----------------+
▶ container genid 의 /webdata와 container webserver의 /usr/share/nginx/html 간 공유
LoadBalancer 서버에 nfs-utils 설치
▶ LoadBalancer 서버를 NFS 서버로 사용하기 위함
[root@loadbalancer /root]# yum -y install nfs-utils
마지막 메타자료 만료확인(2:37:53 이전): 2025년 03월 15일 (토) 오후 02시 30분 52초.
종속성이 해결되었습니다.
===========================================================================================================================================================================================================================================
꾸러미 구조 버전 저장소 크기
===========================================================================================================================================================================================================================================
설치 중:
nfs-utils x86_64 1:2.5.4-34.el9 baseos 458 k
향상 중:
libipa_hbac x86_64 2.9.6-4.el9 baseos 36 k
libldb x86_64 4.21.3-3.el9 baseos 182 k
libsmbclient x86_64 4.21.3-3.el9 baseos 74 k
libsss_certmap x86_64 2.9.6-4.el9 baseos 90 k
libsss_idmap x86_64 2.9.6-4.el9 baseos 41 k
libsss_nss_idmap x86_64 2.9.6-4.el9 baseos 46 k
libsss_sudo x86_64 2.9.6-4.el9 baseos 35 k
libtdb x86_64 1.4.12-1.el9 baseos 51 k
libwbclient x86_64 4.21.3-3.el9 baseos 43 k
samba-client-libs x86_64 4.21.3-3.el9 baseos 5.3 M
samba-common noarch 4.21.3-3.el9 baseos 176 k
samba-common-libs x86_64 4.21.3-3.el9 baseos 101 k
sssd x86_64 2.9.6-4.el9 baseos 27 k
sssd-ad x86_64 2.9.6-4.el9 baseos 218 k
sssd-client x86_64 2.9.6-4.el9 baseos 166 k
sssd-common x86_64 2.9.6-4.el9 baseos 1.6 M
sssd-common-pac x86_64 2.9.6-4.el9 baseos 96 k
sssd-ipa x86_64 2.9.6-4.el9 baseos 282 k
sssd-kcm x86_64 2.9.6-4.el9 baseos 109 k
sssd-krb5 x86_64 2.9.6-4.el9 baseos 72 k
sssd-krb5-common x86_64 2.9.6-4.el9 baseos 94 k
sssd-ldap x86_64 2.9.6-4.el9 baseos 159 k
sssd-proxy x86_64 2.9.6-4.el9 baseos 72 k
종속 꾸러미 설치 중:
gssproxy x86_64 0.8.4-7.el9 baseos 110 k
keyutils x86_64 1.6.3-1.el9 baseos 74 k
libev x86_64 4.33-6.el9 baseos 52 k
libnfsidmap x86_64 1:2.5.4-34.el9 baseos 62 k
libverto-libev x86_64 0.3.2-3.el9 baseos 14 k
rpcbind x86_64 1.2.6-7.el9 baseos 58 k
sssd-nfs-idmap x86_64 2.9.6-4.el9 baseos 39 k
연결 요약
===========================================================================================================================================================================================================================================
설치 8 꾸러미
향상 23 꾸러미
전체 내려받기 크기: 9.9 M
꾸러미 내려받기 중:
(1/31): keyutils-1.6.3-1.el9.x86_64.rpm 998 kB/s | 74 kB 00:00
(2/31): libev-4.33-6.el9.x86_64.rpm 710 kB/s | 52 kB 00:00
(3/31): gssproxy-0.8.4-7.el9.x86_64.rpm 1.2 MB/s | 110 kB 00:00
(4/31): libnfsidmap-2.5.4-34.el9.x86_64.rpm 1.4 MB/s | 62 kB 00:00
(5/31): nfs-utils-2.5.4-34.el9.x86_64.rpm 3.1 MB/s | 458 kB 00:00
(6/31): libverto-libev-0.3.2-3.el9.x86_64.rpm 84 kB/s | 14 kB 00:00
(7/31): rpcbind-1.2.6-7.el9.x86_64.rpm 463 kB/s | 58 kB 00:00
(8/31): sssd-nfs-idmap-2.9.6-4.el9.x86_64.rpm 908 kB/s | 39 kB 00:00
(9/31): libipa_hbac-2.9.6-4.el9.x86_64.rpm 534 kB/s | 36 kB 00:00
(10/31): libldb-4.21.3-3.el9.x86_64.rpm 1.6 MB/s | 182 kB 00:00
(11/31): libsmbclient-4.21.3-3.el9.x86_64.rpm 965 kB/s | 74 kB 00:00
(12/31): libsss_certmap-2.9.6-4.el9.x86_64.rpm 1.9 MB/s | 90 kB 00:00
(13/31): libsss_nss_idmap-2.9.6-4.el9.x86_64.rpm 735 kB/s | 46 kB 00:00
(14/31): libsss_idmap-2.9.6-4.el9.x86_64.rpm 602 kB/s | 41 kB 00:00
(15/31): libsss_sudo-2.9.6-4.el9.x86_64.rpm 577 kB/s | 35 kB 00:00
(16/31): libtdb-1.4.12-1.el9.x86_64.rpm 682 kB/s | 51 kB 00:00
(17/31): libwbclient-4.21.3-3.el9.x86_64.rpm 581 kB/s | 43 kB 00:00
(18/31): samba-client-libs-4.21.3-3.el9.x86_64.rpm 5.5 MB/s | 5.3 MB 00:00
(19/31): samba-common-4.21.3-3.el9.noarch.rpm 231 kB/s | 176 kB 00:00
(20/31): samba-common-libs-4.21.3-3.el9.x86_64.rpm 133 kB/s | 101 kB 00:00
(21/31): sssd-2.9.6-4.el9.x86_64.rpm 688 kB/s | 27 kB 00:00
(22/31): sssd-ad-2.9.6-4.el9.x86_64.rpm 757 kB/s | 218 kB 00:00
(23/31): sssd-client-2.9.6-4.el9.x86_64.rpm 573 kB/s | 166 kB 00:00
(24/31): sssd-common-2.9.6-4.el9.x86_64.rpm 5.2 MB/s | 1.6 MB 00:00
(25/31): sssd-common-pac-2.9.6-4.el9.x86_64.rpm 1.6 MB/s | 96 kB 00:00
(26/31): sssd-ipa-2.9.6-4.el9.x86_64.rpm 2.0 MB/s | 282 kB 00:00
(27/31): sssd-kcm-2.9.6-4.el9.x86_64.rpm 826 kB/s | 109 kB 00:00
(28/31): sssd-krb5-2.9.6-4.el9.x86_64.rpm 851 kB/s | 72 kB 00:00
(29/31): sssd-krb5-common-2.9.6-4.el9.x86_64.rpm 2.1 MB/s | 94 kB 00:00
(30/31): sssd-proxy-2.9.6-4.el9.x86_64.rpm 1.0 MB/s | 72 kB 00:00
(31/31): sssd-ldap-2.9.6-4.el9.x86_64.rpm 1.8 MB/s | 159 kB 00:00
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
합계 4.2 MB/s | 9.9 MB 00:02
연결 확인 실행 중
연결 확인에 성공했습니다.
연결 시험 실행 중
연결 시험에 성공했습니다.
연결 실행 중
준비 중 : 1/1
향상 중 : libtdb-1.4.12-1.el9.x86_64 1/54
향상 중 : libldb-4.21.3-3.el9.x86_64 2/54
향상 중 : libsss_idmap-2.9.6-4.el9.x86_64 3/54
향상 중 : libsss_certmap-2.9.6-4.el9.x86_64 4/54
구현 중 : samba-common-4.21.3-3.el9.noarch 5/54
향상 중 : samba-common-4.21.3-3.el9.noarch 5/54
구현 중 : samba-common-4.21.3-3.el9.noarch 5/54
구현 중 : libwbclient-4.21.3-3.el9.x86_64 6/54
향상 중 : libwbclient-4.21.3-3.el9.x86_64 6/54
향상 중 : samba-client-libs-4.21.3-3.el9.x86_64 7/54
향상 중 : samba-common-libs-4.21.3-3.el9.x86_64 8/54
설치 중 : libnfsidmap-1:2.5.4-34.el9.x86_64 9/54
설치 중 : sssd-nfs-idmap-2.9.6-4.el9.x86_64 10/54
향상 중 : libsmbclient-4.21.3-3.el9.x86_64 11/54
향상 중 : libsss_sudo-2.9.6-4.el9.x86_64 12/54
향상 중 : libsss_nss_idmap-2.9.6-4.el9.x86_64 13/54
향상 중 : sssd-client-2.9.6-4.el9.x86_64 14/54
구현 중 : sssd-client-2.9.6-4.el9.x86_64 14/54
구현 중 : sssd-common-2.9.6-4.el9.x86_64 15/54
향상 중 : sssd-common-2.9.6-4.el9.x86_64 15/54
구현 중 : sssd-common-2.9.6-4.el9.x86_64 15/54
향상 중 : sssd-krb5-common-2.9.6-4.el9.x86_64 16/54
향상 중 : sssd-common-pac-2.9.6-4.el9.x86_64 17/54
향상 중 : sssd-ad-2.9.6-4.el9.x86_64 18/54
향상 중 : sssd-krb5-2.9.6-4.el9.x86_64 19/54
향상 중 : sssd-ldap-2.9.6-4.el9.x86_64 20/54
향상 중 : sssd-proxy-2.9.6-4.el9.x86_64 21/54
향상 중 : libipa_hbac-2.9.6-4.el9.x86_64 22/54
향상 중 : sssd-ipa-2.9.6-4.el9.x86_64 23/54
구현 중 : rpcbind-1.2.6-7.el9.x86_64 24/54
설치 중 : rpcbind-1.2.6-7.el9.x86_64 24/54
구현 중 : rpcbind-1.2.6-7.el9.x86_64 24/54
Created symlink /etc/systemd/system/multi-user.target.wants/rpcbind.service → /usr/lib/systemd/system/rpcbind.service.
Created symlink /etc/systemd/system/sockets.target.wants/rpcbind.socket → /usr/lib/systemd/system/rpcbind.socket.
설치 중 : libev-4.33-6.el9.x86_64 25/54
설치 중 : libverto-libev-0.3.2-3.el9.x86_64 26/54
설치 중 : gssproxy-0.8.4-7.el9.x86_64 27/54
구현 중 : gssproxy-0.8.4-7.el9.x86_64 27/54
설치 중 : keyutils-1.6.3-1.el9.x86_64 28/54
구현 중 : nfs-utils-1:2.5.4-34.el9.x86_64 29/54
설치 중 : nfs-utils-1:2.5.4-34.el9.x86_64 29/54
구현 중 : nfs-utils-1:2.5.4-34.el9.x86_64 29/54
향상 중 : sssd-2.9.6-4.el9.x86_64 30/54
향상 중 : sssd-kcm-2.9.6-4.el9.x86_64 31/54
구현 중 : sssd-kcm-2.9.6-4.el9.x86_64 31/54
정리 : sssd-2.9.4-7.el9.x86_64 32/54
정리 : sssd-ipa-2.9.4-7.el9.x86_64 33/54
정리 : sssd-ad-2.9.4-7.el9.x86_64 34/54
정리 : libsmbclient-4.20.0-103.el9.x86_64 35/54
정리 : sssd-common-pac-2.9.4-7.el9.x86_64 36/54
정리 : samba-client-libs-4.20.0-103.el9.x86_64 37/54
정리 : samba-common-libs-4.20.0-103.el9.x86_64 38/54
정리 : libwbclient-4.20.0-103.el9.x86_64 39/54
정리 : sssd-ldap-2.9.4-7.el9.x86_64 40/54
정리 : sssd-proxy-2.9.4-7.el9.x86_64 41/54
정리 : sssd-krb5-2.9.4-7.el9.x86_64 42/54
구현 중 : sssd-kcm-2.9.4-7.el9.x86_64 43/54
정리 : sssd-kcm-2.9.4-7.el9.x86_64 43/54
구현 중 : sssd-kcm-2.9.4-7.el9.x86_64 43/54
정리 : samba-common-4.20.0-103.el9.noarch 44/54
정리 : sssd-krb5-common-2.9.4-7.el9.x86_64 45/54
구현 중 : sssd-common-2.9.4-7.el9.x86_64 46/54
정리 : sssd-common-2.9.4-7.el9.x86_64 46/54
구현 중 : sssd-common-2.9.4-7.el9.x86_64 46/54
구현 중 : sssd-client-2.9.4-7.el9.x86_64 47/54
정리 : sssd-client-2.9.4-7.el9.x86_64 47/54
정리 : libldb-2.9.0-1.el9.x86_64 48/54
정리 : libtdb-1.4.10-1.el9.x86_64 49/54
정리 : libsss_idmap-2.9.4-7.el9.x86_64 50/54
정리 : libsss_nss_idmap-2.9.4-7.el9.x86_64 51/54
정리 : libsss_sudo-2.9.4-7.el9.x86_64 52/54
정리 : libsss_certmap-2.9.4-7.el9.x86_64 53/54
정리 : libipa_hbac-2.9.4-7.el9.x86_64 54/54
구현 중 : sssd-common-2.9.6-4.el9.x86_64 54/54
구현 중 : libipa_hbac-2.9.4-7.el9.x86_64 54/54
확인 중 : gssproxy-0.8.4-7.el9.x86_64 1/54
확인 중 : keyutils-1.6.3-1.el9.x86_64 2/54
확인 중 : libev-4.33-6.el9.x86_64 3/54
확인 중 : libnfsidmap-1:2.5.4-34.el9.x86_64 4/54
확인 중 : libverto-libev-0.3.2-3.el9.x86_64 5/54
확인 중 : nfs-utils-1:2.5.4-34.el9.x86_64 6/54
확인 중 : rpcbind-1.2.6-7.el9.x86_64 7/54
확인 중 : sssd-nfs-idmap-2.9.6-4.el9.x86_64 8/54
확인 중 : libipa_hbac-2.9.6-4.el9.x86_64 9/54
확인 중 : libipa_hbac-2.9.4-7.el9.x86_64 10/54
확인 중 : libldb-4.21.3-3.el9.x86_64 11/54
확인 중 : libldb-2.9.0-1.el9.x86_64 12/54
확인 중 : libsmbclient-4.21.3-3.el9.x86_64 13/54
확인 중 : libsmbclient-4.20.0-103.el9.x86_64 14/54
확인 중 : libsss_certmap-2.9.6-4.el9.x86_64 15/54
확인 중 : libsss_certmap-2.9.4-7.el9.x86_64 16/54
확인 중 : libsss_idmap-2.9.6-4.el9.x86_64 17/54
확인 중 : libsss_idmap-2.9.4-7.el9.x86_64 18/54
확인 중 : libsss_nss_idmap-2.9.6-4.el9.x86_64 19/54
확인 중 : libsss_nss_idmap-2.9.4-7.el9.x86_64 20/54
확인 중 : libsss_sudo-2.9.6-4.el9.x86_64 21/54
확인 중 : libsss_sudo-2.9.4-7.el9.x86_64 22/54
확인 중 : libtdb-1.4.12-1.el9.x86_64 23/54
확인 중 : libtdb-1.4.10-1.el9.x86_64 24/54
확인 중 : libwbclient-4.21.3-3.el9.x86_64 25/54
확인 중 : libwbclient-4.20.0-103.el9.x86_64 26/54
확인 중 : samba-client-libs-4.21.3-3.el9.x86_64 27/54
확인 중 : samba-client-libs-4.20.0-103.el9.x86_64 28/54
확인 중 : samba-common-4.21.3-3.el9.noarch 29/54
확인 중 : samba-common-4.20.0-103.el9.noarch 30/54
확인 중 : samba-common-libs-4.21.3-3.el9.x86_64 31/54
확인 중 : samba-common-libs-4.20.0-103.el9.x86_64 32/54
확인 중 : sssd-2.9.6-4.el9.x86_64 33/54
확인 중 : sssd-2.9.4-7.el9.x86_64 34/54
확인 중 : sssd-ad-2.9.6-4.el9.x86_64 35/54
확인 중 : sssd-ad-2.9.4-7.el9.x86_64 36/54
확인 중 : sssd-client-2.9.6-4.el9.x86_64 37/54
확인 중 : sssd-client-2.9.4-7.el9.x86_64 38/54
확인 중 : sssd-common-2.9.6-4.el9.x86_64 39/54
확인 중 : sssd-common-2.9.4-7.el9.x86_64 40/54
확인 중 : sssd-common-pac-2.9.6-4.el9.x86_64 41/54
확인 중 : sssd-common-pac-2.9.4-7.el9.x86_64 42/54
확인 중 : sssd-ipa-2.9.6-4.el9.x86_64 43/54
확인 중 : sssd-ipa-2.9.4-7.el9.x86_64 44/54
확인 중 : sssd-kcm-2.9.6-4.el9.x86_64 45/54
확인 중 : sssd-kcm-2.9.4-7.el9.x86_64 46/54
확인 중 : sssd-krb5-2.9.6-4.el9.x86_64 47/54
확인 중 : sssd-krb5-2.9.4-7.el9.x86_64 48/54
확인 중 : sssd-krb5-common-2.9.6-4.el9.x86_64 49/54
확인 중 : sssd-krb5-common-2.9.4-7.el9.x86_64 50/54
확인 중 : sssd-ldap-2.9.6-4.el9.x86_64 51/54
확인 중 : sssd-ldap-2.9.4-7.el9.x86_64 52/54
확인 중 : sssd-proxy-2.9.6-4.el9.x86_64 53/54
확인 중 : sssd-proxy-2.9.4-7.el9.x86_64 54/54
향상되었습니다:
libipa_hbac-2.9.6-4.el9.x86_64 libldb-4.21.3-3.el9.x86_64 libsmbclient-4.21.3-3.el9.x86_64 libsss_certmap-2.9.6-4.el9.x86_64 libsss_idmap-2.9.6-4.el9.x86_64 libsss_nss_idmap-2.9.6-4.el9.x86_64
libsss_sudo-2.9.6-4.el9.x86_64 libtdb-1.4.12-1.el9.x86_64 libwbclient-4.21.3-3.el9.x86_64 samba-client-libs-4.21.3-3.el9.x86_64 samba-common-4.21.3-3.el9.noarch samba-common-libs-4.21.3-3.el9.x86_64
sssd-2.9.6-4.el9.x86_64 sssd-ad-2.9.6-4.el9.x86_64 sssd-client-2.9.6-4.el9.x86_64 sssd-common-2.9.6-4.el9.x86_64 sssd-common-pac-2.9.6-4.el9.x86_64 sssd-ipa-2.9.6-4.el9.x86_64
sssd-kcm-2.9.6-4.el9.x86_64 sssd-krb5-2.9.6-4.el9.x86_64 sssd-krb5-common-2.9.6-4.el9.x86_64 sssd-ldap-2.9.6-4.el9.x86_64 sssd-proxy-2.9.6-4.el9.x86_64
설치되었습니다:
gssproxy-0.8.4-7.el9.x86_64 keyutils-1.6.3-1.el9.x86_64 libev-4.33-6.el9.x86_64 libnfsidmap-1:2.5.4-34.el9.x86_64 libverto-libev-0.3.2-3.el9.x86_64 nfs-utils-1:2.5.4-34.el9.x86_64 rpcbind-1.2.6-7.el9.x86_64
sssd-nfs-idmap-2.9.6-4.el9.x86_64
완료되었습니다!
NFS 서버에 Directory 생성 및 TEST 파일 생성
[root@loadbalancer /root]# mkdir -m 777 -p /test/vol
[root@loadbalancer /root]# echo "Test Web Page" > /test/vol/index.html
NFS 서버 /etc/exports 에 연결 정보 추가
[root@loadbalancer /root]# vi /etc/exports
[root@loadbalancer /root]# cat /etc/exports
/test/vol 192.168.2.0/24(rw,no_root_squash)
▶ /test/vol 디렉토리를 192.168.2.0/24 대역대에서 root 권한 필요없이 rw 할 수 있도록 함
NFS 서버 시스템 시작 및 연결 확인
[root@loadbalancer /root]# systemctl start nfs-server
[root@loadbalancer /root]# exportfs
/test/vol 192.168.2.0/24
[root@loadbalancer /root]# showmount -e
Export list for loadbalancer.example.com:
/test/vol 192.168.2.0/24
각 노드에 nfs-utils 설치 및 시작
[root@node1 /root]# yum -y install nfs-utils
[root@node1 /root]# systemctl start nfs-server
POD 생성 및 TEST
[root@master ~/kube/13/storage]# vi nfs.yaml
[root@master ~/kube/13/storage]# cat nfs.yaml
apiVersion: v1
kind: Pod
metadata:
name: nfs-pod
spec:
volumes:
- name: html
nfs:
server: 192.168.2.80
path: /test/vol
containers:
- name: nginx
image: nginx:1.14
volumeMounts:
- name: html
mountPath: /usr/share/nginx/html
ports:
- containerPort: 80
[root@master ~/kube/13/storage]# kubectl create -f nfs.yaml
pod/nfs-pod created
[root@master ~/kube/13/storage]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nfs-pod 1/1 Running 0 7s 10.233.75.14 node2 <none> <none>
[root@master ~/kube/13/storage]# curl http://10.233.75.14
Test Web Page
PV는 쿠버네티스 볼륨이고, PVC는 디스크 용량, 읽기/쓰기 권한 내용을 PV에게 요청하는 에이전트
PV 생성
[root@master ~/kube/13/storage]# vi pv.yaml
[root@master ~/kube/13/storage]# cat pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv
spec:
nfs:
server: 192.168.2.80
path: /test/vol
capacity:
storage: 4Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
storageClassName: manual
persistentVolumeReclaimPolicy: Retain
[root@master ~/kube/13/storage]# kubectl create -f pv.yaml
persistentvolume/pv created
[root@master ~/kube/13/storage]# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv 4Gi RWX Retain Available manual 10s
PVC 생성
[root@master ~/kube/13/storage]# vi pvc.yaml
[root@master ~/kube/13/storage]# cat pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc
spec:
resources:
requests:
storage: 4Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
storageClassName: manual
[root@master ~/kube/13/storage]# kubectl create -f pvc.yaml
persistentvolumeclaim/pvc created
[root@master ~/kube/13/storage]# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pvc Bound pv 4Gi RWX manual 11s
▶ storageClassName 통해 pv 와 pvc bound 됨
TEST POD 생성
[root@master ~/kube/13/storage]# vi web-pod.yaml
[root@master ~/kube/13/storage]# cat web-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: web-pod
spec:
volumes:
- name: html
persistentVolumeClaim:
claimName: pvc
containers:
- name: nginx-container
image: nginx:1.14
volumeMounts:
- name: html
mountPath: /usr/share/nginx/html
[root@master ~/kube/13/storage]# kubectl apply -f web-pod.yaml
pod/web-pod created
[root@master ~/kube/13/storage]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nfs-pod 1/1 Running 0 9m8s
web-pod 1/1 Running 0 5s
[root@master ~/kube/13/storage]# kubectl describe pod web-pod
Name: web-pod
Namespace: default
Priority: 0
Service Account: default
Node: node1/192.168.2.61
Start Time: Sat, 15 Mar 2025 17:26:59 +0900
Labels: <none>
Annotations: cni.projectcalico.org/containerID: 207d7703358b5905db20363f4caf9f59c8f8ab1022675ebf2f8e7d43d80e8a2e
cni.projectcalico.org/podIP: 10.233.102.188/32
cni.projectcalico.org/podIPs: 10.233.102.188/32
Status: Running
IP: 10.233.102.188
IPs:
IP: 10.233.102.188
Containers:
nginx-container:
Container ID: docker://0763f61158f5a6481f7cecd537a518ebecc35a9c7072b1b512b94fc7a5c69aa2
Image: nginx:1.14
Image ID: docker-pullable://nginx@sha256:f7988fb6c02e0ce69257d9bd9cf37ae20a60f1df7563c3a2a6abe24160306b8d
Port: <none>
Host Port: <none>
State: Running
Started: Sat, 15 Mar 2025 17:27:00 +0900
Ready: True
Restart Count: 0
Environment: <none>
Mounts:
/usr/share/nginx/html from html (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-t2z7d (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
html:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: pvc
ReadOnly: false
kube-api-access-t2z7d:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
▶ 연결
▶ 정해진 용량만 사용할 수 있음
요청 storage 용량 수정 TEST(4Gi → 10Gi)
[root@master ~/kube/13/storage]# kubectl edit pvc pvc
error: persistentvolumeclaims "pvc" could not be patched: persistentvolumeclaims "pvc" is forbidden: only dynamically provisioned pvc can be resized and the storageclass that provisions the pvc must support resize
You can run `kubectl replace -f /tmp/kubectl-edit-3878231891.yaml` to try this update again.
▶ PVC는 PV가 할당받은 4Gi 보다 더 많은 10Gi 를 요청할 수 없음