k8s 구조 기본
k8s master node의 역할
API 엔드포인트 제공
컨테이너 스케줄링/스케일링
k8s worker node의 역할
docker host에 해당
실제로 컨테이너를 가동시키는 노드
k8s cluster 관리
CLI 도구인 kubectl과 YAML, JSON 형식으로 작성된 manifest file을 사용하여 k8s master에 resource를 등록해야 함.
kubectl은 manifest file 정보를 바탕으로 k8s master가 가진 API에 요청을 보내어 k8s를 관리.
k8s api는 일반적으로 restful api로 구현되어 있어 kubectl 사용 없이 각종 프로그램 언어의 restful api나 curl등으로 직접 api 호출하여 k8s 관리 가능.
k8s Resource
k8s를 관리하기 위해 등록하는 resource는 container 실행, load balancer 생성 등 많은 종류가 있음.
종류 | 개요 |
Workload API | 컨테이너 실행 관련 |
Service API | 컨테이너를 외부에 공개하는 엔드포인트 제공 |
Config & Storage API | 설정/기밀 정보/영구 볼륨 등 관련 |
Cluster API | 보안이나 쿼터 관련 |
Metadata API | 클러스터 내부의 다른 리소스 관리 |
Workload API
클러스터 위에서 컨테이너를 기동하기 위해 사용되는 리소스.
ㄴ Pod, ReplicaSet, Deployment, DaemonSet, StatefulSet, Job, CronJob 가 있음.
Service API
컨테이너 서비스 디스커버리와 클러스터 외부에서도 접속이 가능한 엔드포인트 등을 제공하는 리소스.
사용자가 직접 관리할 수 있는 리소스로 Service와 Ingress 가 있음.
ㄴ Service(ClusterIP, ExternalIP, NodePort, LoadBalancer, Headless, ExternalName, None-Selector)
ㄴ Ingress
Config & Storage API
클러스터 자체 동작을 정의하는 리소스
ㄴ Secret , ConfigMap, PersistentVolumeClaim 가 있음.
Cluster API
클러스터 자체 동작을 정의하는 리소스. 보안 관련 설정이나 정책, 클러스터 관리성을 향상시키는 기능을 위한 리소스 등이 있음.
ㄴ Node, Namespace, PersistentVolume, ResourceQuota, ServiceAccount, Role, ClusterRole, RoleBinding, ClusterRoleBinding, NetworkPolicy
Metadata API
클러스터 내부의 다른 리소스 동작을 제어하기 위한 리소스.(예: pod auto scaling 등)
ㄴLimitRange, HorizontalPodAutoscaler(HPA), PodDisruptionBudget(PDB), CustomResourceDefinition
'클라우드,가상화 > K8S' 카테고리의 다른 글
k8s - Deployment (0) | 2023.07.02 |
---|---|
k8s - ReplicaSet (0) | 2023.07.02 |
k8s - Pod (0) | 2023.07.02 |
Minikube 설치 (0) | 2023.05.20 |
Kubernetes Install (0) | 2023.04.27 |