Container Orchestration : 다수의 컨테이너를 다수의 시스템에서 관리
Kubernetes(K8S) : 컨테이너형 애플리케이션의 배포, 확장, 관리를 자동화하는 오픈소스 Orchestration 시스템
Kubectl : 이를 통해 컨테이너에서 실행중인 쉘에 접근가능
Cluster : Mater Node + Worker Node의 집합(물리, 가상 환경의 노드 집합)
- Mater Node
- Control plane : 제어만 하는 곳 = 마스터 노드 하나
- API Server : Master Node의 중심에서 모든 클라이언트와 구성요소로부터의 요청을 받아 처리(중심)
- Scheduler : 컨테이너(파드)의 생성이 요청되면 컨테이너의 노드 결정하여 분배
- Controller Manager : 추가옵션 요청 시에 클러스터의 상태(유지, 업글 등)를 조절하는 컨트롤러 생성, 배포
- ETCD : 클러스터 내 모든 구성 데이터를 저장하는 저장소
- Worker Node
- Container Runtime : Container를 배포하고 이미지를 관리
- kubelet(팀장) : 클러스터 내 각 노드에서 실행되는 에이전트 > 보고서 작성 후 ETCD에 저장
- kube-proxy : 네트워크 통신을 관리하고 트래픽을 라우팅
AKS(PaaS) : Azure가 control plane을 관리하기 때문에 데이터 Node만 고객이 관리한다.
컨테이너에 들어갈 파일은 Azure 디스크와 Azure file중에 고를 수 있음!
컨테이너 배포, 통신 볼륨관리
기본 오브젝트 : Pod, Service, Namespace
Controller Object : Spec(사용자가 지정한 필드)이나 Status(현재 상태를 출력하는 필드)로 변경하거나 클러스터의 상태를 관찰하고 필요한 오브젝트를 생성, 변경하는 오브젝트
1. Kubernetes 만들기
- 노드 풀 이름 설정
- 모드 : 시스템
- Ubuntu Linux
- 가용성 영역 1,2,3
- 노드 크기 : D2as_v4
- 최소 노드 수, 최대 노드 수 : 2,3
- 노드당 최대 Pod : 250
- 노드당 공용 IP 사용 : 체크
다음
- 자체 Azure 가상 네트워크 사용 : 체크
가상 네트워크 : 만든거 사용 vnet1
서브넷 : default(10.0.10.0/24)
Kubernetes 서비스 주소 범위 : 192.168.0.0/16
Kubernetes DNS 서비스 IP 주소 : 192.168.0.10
다음
검토+만들기
az login
az aks get-credentials --resource-group 리소스그룹 --name ㅋㅋ
git clone https://github.com/labeducation/k8s
Pod : Selector는 Label(키,값)를 찾아 해당 Object만 관리, annotation으로 Label처럼 첨부
Service : 고정된 주소로 접근하기 위해 Pod에 접근하는데 사용하는 Object
- ClusterIP : 이를 활용
- NodePort : 모든 Node에 Port를 할당
- Load Balancer : 접근방식
Volume : 데이터 저장소
1. Emptydir : Pod가 생성될 때 생성
2. HostPath : 호스트 노드의 경로를 Pod 마운트하여 함께 사용하는 유형
3. PV(Persistent Volume) : Pod와는 별도로 관리 - PVC가 Pod와 연결시켜줌
'KT AIVLE School > 가상화 클라우드' 카테고리의 다른 글
Docker & Container (0) | 2024.12.16 |
---|---|
Azure 고가용성 서비스 (0) | 2024.12.06 |
Microsoft Azure (0) | 2024.12.05 |
가상화 (2) | 2024.12.05 |