




efs파일시스템을 통하여 pod가 efs를 저장소로 사용할 수 있을지 확인할 예정


coreDNS pod가 생긴 것을 확인 가능


워커노드에 할당된 pod들을 kube-ops-view를 통하여 확인할 수 있다.
pod에 마우스를 가져다 대면 cpu, label등 정보를 확인 할 수 있다

irsa-lb.yaml파일의 내용을 eks클러스터 만들 때 iam아래에 추가하여 lb에 irsa가 들어왔다 편리!

aws ebs같은 경우, 한 워커 노드 당 붙일 수 있는 볼륨의 최대 max갯수


pod의 정보를 확인 후 pod를 삭제해본다.
이전 기록이 보존 되어 있나?

남아있지 않다 ㅠ_ㅠ..
중요한 pod라고 가정했을 경우는 장애,,!
❗️pod의 lifecycle과 함께 임시 파일시스템은 삭제된다❗️
특징 : 빠름


bound 된 것을 확인 가능하다

3번 노드에 배포되어있는것을 확인 가능

pod에서 확인하지 않아도 워커노드 자체의 경로에서 같은 output을 확인 가능하다

pod는 삭제되었지만 pv, pvc는 살아있다.

데이터가 남아있다







3개의 gp3 ebs가 있는 것을 확인 가능


pod가 생성되었는데 ebs가 생성이 된다..!


노드에 배포된 pod가 저 volume을 사용하는것임


kubectl get pv -o yaml | yh
...
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: topology.ebs.csi.aws.com/zone
operator: In
values:
- ap-northeast-2b
...
저 어피니티에 배포하세요 라고 지정해주는 것
pod의 볼륨 정보 확인할 때 유용한 명령어 입니다 기억해둘것
온라인에서 pod 중지 없이 용량 증가시키기
늘릴수는 있어도 줄일수는 없다
현재 pv 의 이름을 기준하여 4G > 10G 로 증가



증가완료

pod가 쓰는 pv가 너무 중요해..!? -> 스냅샷 뜨자
# Install Snapshot CRDs
curl -s -O https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/master/client/config/crd/snapshot.storage.k8s.io_volumesnapshots.yaml
curl -s -O https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/master/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml
curl -s -O https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/master/client/config/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml
kubectl apply -f snapshot.storage.k8s.io_volumesnapshots.yaml,snapshot.storage.k8s.io_volumesnapshotclasses.yaml,snapshot.storage.k8s.io_volumesnapshotcontents.yaml


# Install Common Snapshot Controller
curl -s -O https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/master/deploy/kubernetes/snapshot-controller/rbac-snapshot-controller.yaml
curl -s -O https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/master/deploy/kubernetes/snapshot-controller/setup-snapshot-controller.yaml
kubectl apply -f rbac-snapshot-controller.yaml,setup-snapshot-controller.yaml
확인

# Install Snapshotclass
curl -s -O https://raw.githubusercontent.com/kubernetes-sigs/aws-ebs-csi-driver/master/examples/kubernetes/snapshot/manifests/classes/snapshotclass.yaml
kubectl apply -f snapshotclass.yaml
kubectl get vsclass # 혹은 volumesnapshotclasses
curl -s -O https://raw.githubusercontent.com/gasida/PKOS/main/3/ebs-volume-snapshot.yaml
cat ebs-volume-snapshot.yaml | yh
kubectl apply -f ebs-volume-snapshot.yaml



kubectl delete pod app && kubectl delete pvc ebs-claim

없음..
cat <<EOT > ebs-snapshot-restored-claim.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ebs-snapshot-restored-claim
spec:
storageClassName: gp3
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 4Gi
dataSource:
name: ebs-volume-snapshot
kind: VolumeSnapshot
apiGroup: snapshot.storage.k8s.io
EOT
cat ebs-snapshot-restored-claim.yaml | yh
kubectl apply -f ebs-snapshot-restored-claim.yaml


curl -s -O https://raw.githubusercontent.com/gasida/PKOS/main/3/ebs-snapshot-restored-pod.yaml
cat ebs-snapshot-restored-pod.yaml | yh
kubectl apply -f ebs-snapshot-restored-pod.yaml



efs는 고객관리형 IRSA를 쓴다. EBS는 aws 제공 정책을 쓰는데 이 점이 다름

helm repo add aws-efs-csi-driver https://kubernetes-sigs.github.io/aws-efs-csi-driver/
helm repo update
helm upgrade -i aws-efs-csi-driver aws-efs-csi-driver/aws-efs-csi-driver \
--namespace kube-system \
--set image.repository=602401143452.dkr.ecr.${AWS_DEFAULT_REGION}.amazonaws.com/eks/aws-efs-csi-driver \
--set controller.serviceAccount.create=false \
--set controller.serviceAccount.name=efs-csi-controller-sa
확인

AWS → EFS → 파일 시스템 : 네트워크 → 탑재 대상 ID 확인







여기에서 accessModes 가 ReadWriteMany인 이유는 여러곳에서 사용이 가능해서이다.



kubectl df-pv


📎 GiB(기비바이트) 단위 기준으로 볼륨을 입력했는데 단위 8.0E(엑사바이트)가 뜨는 이유?

작업용 EC2에서도 동일 내용 확인 가능

노드그룹에 인스턴스스토어 볼륨을 가지고 있다
인스턴스 스토어는 ec2 에 있는 임시 스토리지를 인스턴스가 붙여서 쓸 수 있다.




저 왜 이거 안되죠,,,


배포가 잘 되지 않은 듯 합니다 ..ㅠㅠ max-pod가 17개로 뜹니다..

요거 때문인가..다시 배포해서 진행해보고 업데이트 하도록 해보겠습니다!
cka 시험 볼 때 pv, pvc가 항상 잘 이해가 안되어서 고생했던 기억이 납니다😥
재시험을 봐야하지만.. 필수 출제 문제이니만큼
이번 기회에 완벽하게 이해하고 가면 좋을것 같다는 생각이 들었습니다
시간내서 강의를 진행해주시고 자료 정리하여 제공해주셔서 항상 감사하다고 생각하고 있습니다
스터디 기회를 주신 분들께 항상 감사합니다!