1. 그대로 따라하기 (최최종 yaml 파일)
➜ 스택에 yaml 올리기
➜ aws configure
(bs-sa-user4@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl describe sc ebs-dp-sc
Name: ebs-dp-sc
IsDefaultClass: No
Annotations: kubectl.kubernetes.io/last-applied-configuration={"allowVolumeExpansion":true,"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{},"name":"ebs-dp-sc"},"parameters":{"allowAutoIOPSPerGBIncrease":"true","encrypted":"true","type":"gp3"},"provisioner":"ebs.csi.aws.com","volumeBindingMode":"WaitForFirstConsumer"}
Provisioner: ebs.csi.aws.com
Parameters: allowAutoIOPSPerGBIncrease=true,encrypted=true,type=gp3
AllowVolumeExpansion: True
MountOptions: <none>
ReclaimPolicy: Delete
VolumeBindingMode: WaitForFirstConsumer
Events: <none>
(bs-sa-user4@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl get pvc,sc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/ebs-dp-claim Pending ebs-dp-sc 2m42s
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
storageclass.storage.k8s.io/ebs-dp-sc ebs.csi.aws.com Delete WaitForFirstConsumer true 6m13s
storageclass.storage.k8s.io/gp2 (default) kubernetes.io/aws-ebs Delete WaitForFirstConsumer false 83m
(bs-sa-user4@myeks:default) [root@myeks-bastion-EC2 ~]# nano ebs_dp_pod.yaml
(bs-sa-user4@myeks:default) [root@myeks-bastion-EC2 ~]# cat ebs_dp_pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: ebs-dp-app
spec:
terminationGracePeriodSeconds: 3
containers:
- name: app
image: centos
command: ["/bin/sh"]
args: ["-c", "while true; do echo $(date -u) >> /data/out.txt; sleep 10; done"]
volumeMounts:
- name: persistent-storage
mountPath: /data
volumes:
- name: persistent-storage
persistentVolumeClaim:
claimName: ebs-dp-claim
(bs-sa-user4@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl apply -f ebs_dp_pod.yamnl
error: the path "ebs_dp_pod.yamnl" does not exist
(bs-sa-user4@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl apply -f ebs_dp_pod.yaml
pod/ebs-dp-app created
(bs-sa-user4@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl get pod -n kube--system | grep ebs-csi
No resources found in kube--system namespace.
(bs-sa-user4@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl get pod -n kube-system | grep ebs-csi
ebs-csi-controller-85d7448f6d-5pt6h 6/6 Running 0 41m
ebs-csi-controller-85d7448f6d-vp67w 6/6 Running 0 41m
ebs-csi-node-6lrtz 3/3 Running 0 41m
ebs-csi-node-bb4nb 3/3 Running 0 41m
ebs-csi-node-q79hk 3/3 Running 0 41m
(bs-sa-user4@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl get pod -n kube-system | grep ebs-csi-controller
ebs-csi-controller-85d7448f6d-5pt6h 6/6 Running 0 41m
ebs-csi-controller-85d7448f6d-vp67w 6/6 Running 0 41m
(bs-sa-user4@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl logs ^C
(bs-sa-user4@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl logs ebs-csi-controller-85d7448f6d-5pt6h -n kube-system
Defaulted container "ebs-plugin" out of: ebs-plugin, csi-provisioner, csi-attacher, csi-snapshotter, csi-resizer, liveness-probe
I0925 05:52:11.901650 1 main.go:151] "Region provided via AWS_REGION environment variable" region="ap-northeast-3"
I0925 05:52:11.903213 1 driver.go:69] "Driver Information" Driver="ebs.csi.aws.com" Version="v1.35.0"
➜ (bs-sa-user4@myeks:default) [root@myeks-bastion-EC2 ~]# kubectl get volumeattachment
✅ 생성된 볼륨 이름과 같음

➜ StorageClass 생성
✅ nano ebs_dp_sc.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ebs-dp-sc
allowVolumeExpansion: true
provisioner: ebs.csi.aws.com
volumeBindingMode: WaitForFirstConsumer
parameters:
type: gp3
allowAutoIOPSPerGBIncrease: 'true'
encrypted: 'true'
✅ kubectl apply -f ebs_dp_sc.yaml
✅ kubectl describe sc ebs-dp-sc
➜ pvc 생성
✅ nano ebs_dp_pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ebs-dp-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 4Gi
storageClassName: ebs-dp-sc
✅ kubectl apply -f ebs_dp_pvc.yaml
✅ kubectl get pvc,sc

➜ 파드 생성
✅ nano ebs_dp_pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: ebs-dp-app
spec:
terminationGracePeriodSeconds: 3
containers:
- name: app
image: centos
command: ["/bin/sh"]
args: ["-c", "while true; do echo $(date -u) >> /data/out.txt; sleep 10; done"]
volumeMounts:
- name: persistent-storage
mountPath: /data
volumes:
- name: persistent-storage
persistentVolumeClaim:
claimName: ebs-dp-claim
✅ kubectl apply -f ebs_dp_pod.yaml
➜ ebs-sci-controller 파드가 2개 생성
➜ kubectl get pod -n kube-system

➜ kubectl logs ebs-csi-controller-[본인 할당] -n kube-system
✅ 로그 확인
➜ kubectl get volumeattachment

'AWS' 카테고리의 다른 글
| [ 7 ] - EKS Storage Monitoring (0) | 2024.09.26 |
|---|---|
| [ 6 ] - EKS Storage : Snapshot Controller (0) | 2024.09.25 |
| [ 4 ] (0) | 2024.09.13 |
| [ 3 ] (0) | 2024.09.12 |
| [ 2 ] (0) | 2024.09.11 |