데이터를 영구적으로 저장하는 매커니즘 Persistent Storage
PV / PVC 의 주요 개념 PV (Persistent Volume) K8s 어드민이 설정한 클러스터 레벨의 스토리지 볼륨군이며, 클러스터 리소스의 일ㅈ오. 관리자가 프로비저닝하거나 Storage Class를 통해 동적으로 프로비저닝 됨 일반 볼륨과의 차이점 일반 볼륨은 Pod와 같은 라이프사이클을 가짐. 함께 생성되고 함께 내려간다는 뜻 PV는 Pod와 별개의 라이프사이클을 가지므로, Pod가 종료되어도 PV에 기록된 데이터는 삭제되지 않음 PV 생성하기 # ex) pv-definition....
Network Single Node 상황 쿠버네티스에서는 내부 IP 주소가 Pod에 할당됨. 쿠버네티스 클러스터는 처음 설정될 때, internal private network 를 생성함 모든 pods는 이 네트워크의 레인지 내에서 IP를 부여받음 Pod가 재생성될 때는 또 새로운 IP를 부여받음 따라서, Pod에 부여된 IP로 접근하는 것은 적절한 방법이 아님 Multiple Nodes in a Cluster 상황 각 Node 의 IP는 다르지만, 각 노드 내 Pod의 네트워크가 같을 수 있음 하지만, 모든 Container / Pod는 NAT 없이도 서로 networking 가능 모든 Node는 NAT 없이도 서로 networking 가능 따라서 IP conflict 을 피하기 위한 조치가 필요함 pre-built solution 존재하기도 함 cisco big cloud fabric flannel vmware nsx calico cilium … etc Service helps connecting applications together with other applications OR userss ex) backend server frontend application external datasource etc … Service 개념 Service는 Kubernetes를 기반으로 하는 어플리케이션 내외의 통신과 접근을 위한 obejct Service 유형 Node Port service node의 port 에서부터 listen(응답대기) → request 를 pod로 전달하는 역할 Cluster IP 클러스터 내 virtual IP를 생성하여 제각기 다른 service들 간의 통신을 가능케 함....
Pod 쿠버네티스에서 Pod를 정의하는 정의하는 yaml의 형태는 다음과 같다.
(Pod 뿐만 아니라 다른 오브젝트도 동일)
# pod-definition.yml apiVersion: kind: metadata: spec: containers: - name: # - before the name indicates, its first item in the list image: Pod 관련 명령어
kubectl create -f [FILE NAME].yml
kubectl create -f [FILE NAME].yml --record 또는 kubectl apply -f [FILE NAME].yml
kubectl get pods
kubectl describe pod [POD NAME]
Labels, Selectors 개념 Labels and Selectors act as a filter, filtering pods for ReplicsSet Labels와 Selectors는 필터로서의 기능을 함....
1 쿠버네티스 개념 아키텍처 1.1. 개념 컨테이너화 된 어플리케이션의 배포, 확장, 운영을 자동화하기 위한 오픈소스 시스템 구글에 의해 개발됨. CNCF에 기반을 둠 1.2. 주요 특징 자동화된 롤아웃 및 롤백 어플리케이션 업데이트 시 롤아웃을 자동으로 관리 문제 발생 시 이전 버전으로 롤백 서비스 접근 및 로드 밸런싱 클러스터 내의 어플리케이션에 쉬벡 접근 트래픽을 자동으로 분산 스케일링 리소스의 사용에 따라 자동 또는 수동으로 스케일링 자체 회복 실패한 컨테이너 재시작....