티스토리 뷰
1단계. Pod의 Ephemeral Volume을 사용하여 Pod를 삭제 후 재배포시 데이터의 연속성이 없음을 확인
1) 10초에 1번씩 시간을 찍는 Pod를 배포하여 해당 Pod 내 데이터를 확인
2) 배포된 Pod를 삭제하고, 재배포 후 해당 Pod 내 데이터를 확인
- 과거의 Data 없이 새로운 데이터만 확인
2단계. Host Path를 사용하는 PV/PVC 배포하여 Node 내 데이터가 유지됨을 확인
1) localpath 스토리지 클래스를 생성
- local path provisioner도 새로운 pod로 배포
2) PVC를 생성하고 생성된 PVC 정보를 확인
- PVC는 생성되었으나, Status가 Pending : 아직 사용되고 있는 pod가 없어 PVC만 생성된 상태
3) PVC를 사용하는 pod를 배포
- localpath-claim하는 pod를 배포 후 PVC statud가 Bound로 변경
- pv 정보에 1Gi의 용량으로 RWO하게 배포되었음을 확인
4) pod가 배포된 node의 정보를 확인
- pod가 배포된 node에 out.txt가 생성되어 있고, node에서도 직접 접근 가능
5) pod를 삭제하고 node의 localpath 정보를 확인
- pod는 삭제되었지만, node의 out.txt 파일은 여전히 존재
6) pod를 재배포하고 out.txt 파일의 내용을 확인
- 기존 배포되었던 시간때부터 현재의 데이터까지 쌓이고 있음을 확인
7) PVC 삭제시 해당 경로의 out.txt 파일도 삭제됨을 확인
3단계 : EBS를 PV로 연결하여, pod에서 EBS를 사용할 수 있음을 확인
1) Amazon EBS CSI drive addon 추가
- addon으로 aws-ebs-csi-driver가 설치되어 있음을 확인
- ebs-csi-controller가 2개, node가 3개 동작하고 있음을 확인
2) 스토리지 클래스를 생성
- 신규 EBS용 스토리지클래스인 gp3를 생성
3) PV를 생성
- PV의 상태가 아직 pod에 할당되지 않아 Pending 상태
- 현재 상태의 EBS 볼륨을 확인 : Node와 Bastion의 EBS만 존재하며, EBS 볼륨의 추가적인 변화 없음
4) PVC를 생성
- PVC를 생성하여 신규 pod에 ebs-claim PV가 연결됨을 확인
- 별도의 작업없이 EBS에 4Gi 용량의 신규 볼륨이 생성됨을 확인
5) 라이브 상태에서 볼륨의 크기를 조정
- 초기 상태의 EBS 볼륨 4Gi를 확인 후 patch를 통해 storage 사이즈를 10Gi로 변경
- 별도의 작업 없이 라이브 상태에서 EBS 사이즈가 10Gi로 확장됨을 확인 : 축소는 불가
4단계 : Volume snapshot Controller를 이용하여 pod가 사용하는 EBS 볼륨을 백업함을 확인
1) PVC와 pod를 생성하여 EBS 볼륨을 할당
- pod에 EBS를 PV로 연결하여 out.txt 파일에 현재 시간을 출력
- AWS 콘솔에서 신규 EBS 볼륨이 정상 생성됨을 확인
2) 볼륨 스냅샷을 생성
- ebs-claim으로 생성된 PV에 대한 볼륨 스냅샷을 생성
- 생성된 snapshot 정보를 CLI와 AWS 콘솔에서 확인
3) pod와 pvc를 삭제
- pod와 pvc를 삭제하여 기존에 구성된 EBS PV도 삭제되었음을 확인
4) 스냅샷을 이용한 EBS 스토리지 복구
- dataSource로부터 gp3 PV를 복구
5) pod를 복구
- pod 복구시 ebs-snapshot-restored-claim 스토리지를 재연결
6) 복구된 pod의 out.txt 데이터 확인
- pod가 삭제된 시간 이전의 데이터(11:06:43 이전)가 존재함을 확인
5단계 : AWS EFS controller를 이용하여 PV로 사용 - 정적프로비저닝
1) EFS CSI 드라이버 설치됨을 확인
- aws-efs-csi-driver가 설치되었음
- AWS 콘솔에서 EFS의 endpoint를 확인
2) 스토리지클래스를 생성
- efs용 스토리지 클래스 생성 및 확인
3) PV를 생성
- PV 생성하여 정상적으로 5Gi의 용량이 할당되어 있음을 확인
4) PVC를 생성
- PVC를 생성하였고, Access Mode는 RWX임을 확인
5) pod 생성하여 스토리지 정보 확인
- 각 pod의 nfs4 연결 정보 확인
- Bastion에서도 myefs로 NAS 연결 경로 확인
6) 개별 pod에서 파일을 생성하여 서로간에 PV가 공유되고 있음을 확인
- Bastion의 파일 경로에서의 out1.txt 접근 확인
- app1, app2에서 out1.txt에 접근 및 동일 데이터 여부 확인
-----------------------------------------------------------------------------------------------
이 내용은 AEWS(AWS EKS Workshop Study) 1기의 과제로써 작성되었습니다.
AEWS는 '가시다'님이 속한 CloudNet@에서 진행하는 AWS EKS workshop에 대한 스터디입니다.
매주 일요일마다 소중한 정보를 퍼주시는 '가시다'님께 무한 감사 드립니다.
https://gasidaseo.notion.site/23-AWS-EKS-Workshop-07165aec800042b9ac9357aee18fdf17
'에디.Container' 카테고리의 다른 글
AEWS 4주차. EKS Observability (0) | 2023.05.20 |
---|---|
AEWS 4주차. EKS Observability - 실습 (0) | 2023.05.20 |
AEWS 3주차. EKS Storage & Node 관리 (0) | 2023.05.12 |
AEWS 2주차. EKS Networking - 실습 (0) | 2023.05.04 |
AEWS 2주차. EKS Networking (0) | 2023.05.03 |