GCP Cloud Engineer - 66
2024-04-19
- Cloud
- GCP
- Kubernetes
Google Kubernetes Engine(GKE) 객체 관리 및 Kubernetes Object Management
YAML 파일을 통한 오브젝트 정의
-
ㅁ
manifest files
는 Kubernetes에서 생성하고 유지할 객체를 정의하며, 주로YAML 또는 JSON
형식으로 작성됨. -
ㅁ
YAML
은 사람이 읽기 쉽고 편집 과정이 적은 편리한 형식이므로 주로 사용됨. -
ㅁ 매니페스트 파일에는 객체의 원하는 상태, 구성 요소, 리소스, 실행할 컨테이너 등의 정보가 포함됨.
Manifest 파일 필수 필드
-
ㅁ
apiVersion
: 객체를 생성하는 데 사용되는 Kubernetes API 버전을 설명. -
ㅁ
kind
: 객체 유형을 정의하며, 예를 들어Pod
,Deployment
등을 포함. -
ㅁ
metadata
: 객체의 이름, 고유 ID, 선택적 네임스페이스 등을 포함. -
ㅁ
spec
: 포드의 컨테이너 이미지를 정의하는 필드
오브젝트의 고유 식별자 및 라벨
-
ㅁ 모든
Kubernetes 객체는 고유한 ID(UID)
를 가지며,동일 클러스터
내에서는중복(X)
되지 않음. -
ㅁ 이름에는 영숫자, 하이픈, 마침표 등을 포함할 수 있으며 최대 길이는 253자임.
-
ㅁ 라벨은
key-value
쌍으로 객체에 태그를 부여하고, 객체를 식별 및 구성하는 데 사용됨. -
ㅁ 라벨을 사용하여 특정 라벨을 기준으로 리소스를 선택하거나, 라벨 없는 객체를 선택하는 등 표현력을 높일 수 있음.
배포(Deployment) 및 컨트롤러
-
ㅁ 배포 객체는
웹 서버와 같은 수명이 긴 소프트웨어 구성 요소를 관리
함.(수명관리 / 포드의 원하는 상태유지 / 포드의 수평 확장과 고가용성 관리)
-
ㅁ 배포 컨트롤러는
포드의 원하는 상태를 모니터링
하고,실패한 포드를 자동으로 복구
함. -
ㅁ 배포는
단일 YAML 파일을 통해 여러 포드의 복제본을 관리
하며,포드의 수평 확장과 고가용성을 유지관리
함.
네임스페이스(Namespace)
-
ㅁ 네임스페이스는
물리적 클러스터를 여러 가상 클러스터로 추상화
함. -
ㅁ 각 네임스페이스는
고유한 이름 범위를 가지며, 동일 네임스페이스 내에서는 객체 이름이 중복(X)
될 수 없음. -
ㅁ 리소스 생성 시
명령줄 플래그나 YAML 파일에서 네임스페이스를 지정
할 수 있음. -
ㅁ 기본 네임스페이스로는
default
,kube-system
,kube-public
이 존재하며, 네임스페이스를 통해리소스 할당량을 정의
할 수 있음.
포드(Pods) 및 리소스 할당
-
ㅁ 포드는 Kubernetes에서
기본 실행 단위로, 컨테이너를 포함
함. -
ㅁ 포드는 상태를 스스로 유지하지 않으며,
컨트롤러 객체가 관리 및 복구를 담당
함. -
ㅁ 리소스 할당량은
네임스페이스 내에서 리소스 소비에 대한 제한을 정의
하며, Pod를스케줄링할 때 컨테이너가 충분한 리소스를 확보
하도록 보장함.
네임스페이스 및 라벨 관리
-
ㅁ 클러스터에서
각 프로젝트 또는 팀의 작업을 정리하고 구성
하기 위해네임스페이스와 라벨
을 활용함. -
ㅁ
네임스페이스
는여러 프로젝트를 한 클러스터 내에서 분리하여 관리하는 데 사용
되며,라벨은 키-값 쌍으로 객체를 식별하고 조직화
하는 데 활용됨. -
ㅁ 리소스 생성 시
명령줄 수준에서 네임스페이스를 적용하면 YAML 파일의 유연성을 높여 다양한 인스턴스를 독립적
으로 만들 수 있음.
모르는 단어
Node vs Pod
쿠버네티스에서 노드와 포드는 서로 다른 개념입니다.
노드(Node):
노드는 쿠버네티스 클러스터에서 워커 머신을 의미하며, 이는 VM 또는 물리적인 서버
일 수 있습니다.
각 노드는 쿠버네티스 클러스터의 일부이며, 포드를 실행하는 데 필요한 서비스를 실행합니다.
노드는 쿠버네티스 마스터에 의해 관리되며, 마스터는 노드에 포드를 스케줄링하고, 노드의 상태를 모니터링합니다.
포드(Pod):
포드는 쿠버네티스에서 배포 가능한 가장 작은 단위
입니다.
포드는 하나 이상의 컨테이너를 포함하며, 이 컨테이너들은 같은 노드에서 실행되고, 같은 네트워크 네임스페이스와 IPC 네임스페이스를 공유합니다.
이렇게 포드 내의 컨테이너들은 밀접하게 연관되어 있으며, 같은 노드에서 함께 스케줄링되고 실행됩니다.
따라서, 노드는 쿠버네티스 클러스터에서 워커 머신
을 의미하며, 포드는 이 노드에서 실행되는 컨테이너 그룹
을 의미합니다.
노드는 포드보다 더 큰 개념
입니다.
노드는 쿠버네티스 클러스터의 워커 머신을 의미하며, 포드는 이 노드에서 실행되는 컨테이너 그룹을 의미합니다.
즉, 하나의 노드는 여러 개의 포드를 실행할 수 있습니다.
GCP Cloud ...
GCP Cloud ...