쿠버네티스 리소스 카테고리
- 워크로드 API 카테고리 : 컨테이너 실행에 관련된 리소스
- 서비스 API 카테고리 : 컨테이너를 외부에 공개하는 엔드포인트를 제공하는 리소스
- 컨피그 & 스토리지 API 카테고리 : 설정/기밀 정보/영구 볼륨 등에 관련된 리소스
- 클러스터 API 카테고리 : 보안이나 쿼터 등에 관련된 리소스
- 메타데이터 API 카테고리 : 클러스터 내부의 다른 리소스를 관리하기 위한 리소
워크로드 API 리소스
총 8가지 종류의 워크로드 리소스가 있으며, 클러스터 위에서 컨테이너를 기동하기 위해 사용되는 리소스이다
[파드, 레플리케이션 컨트롤러, 레플리카셋, 디플로이먼트, 데몬셋, 스테이트풀셋, 잡, 크론잡]
서비스 API 카테고리
컨테이너 서비스 디스커버리와 클러스터 외부에서도 접속이 가능한 엔드포인트 등을 제공하는 리소스
서비스와 인그레스라는 2가지 종류의 서비스 API 카테고리가 있다
[서비스(ClusterIP, ExternalIP, NodePort, LoadBalancer, Headless(None), ExternalName, None-selector), 인그레스]
컨피크 & 스토리지 API 카테고리
설정과 기밀 데이터를 컨테이너에 담거나 영구 볼륨을 제공하는 리소스
시크릿과 컨피그맵은 모두 키-밸류 형태의 데이터 구조로 되어 있음
[시크릿, 컨피크맵, 영구 볼륨 클레임]
클러스터 API 카테고리
클러스터 자체 동작을 정의하는 리소스
보안 관련 설정이나 정책, 클러스터 관리성을 향상시키는 기능을 위한 리소스 등 여러 리소스가 있다
[노드, 네임스페이스, 영구 볼륨, 리소스 쿼터, 서비스 어카운트, 롤, 클러스터 롤, 롤바인딩, 클러스터롤바인딩, 네트워크 정책]
메타데이터 API 카테고리
클러스터 내부의 다른 리소스 동작을 제어하기 위한 리소스
ex) 파드를 오토 스케일링시키기 위해 사용하는 HPA는 디플로이먼트 리소스를 조작해 레플리카 수를 변경함으로써 오토 스케일링을 구현
[LimitRange, HorizontalPodAutoscaler, PodDistruptionBudget, 커스텀 리소스 데피니션)
네임스페이스로 가상적인 클러스터 분리
쿠버네티스 클러스터를 서비스 환경 / 스테이징 환경 / 개발환경으로 구분하는 경우 많이 사용한다
기본으로 아래와 같은 4가지 네임스페이스가 생성된다
- kube-system - 쿠버네티스 클러스터 구성 요소와 애드온이 배포될 네임스페이스
- kube-public - 모든 사용자가 사용할 수 있는 컨피그맵 등을 배치하는 네임스페이스
- kube-node-lease - 노드 하트비트 정보가 저장된 네임스페이스
- default - 기본 네임스페이스
Kubectl
쿠버네티스 클러스터 조작은 모두 마스터 API를 통해 이뤄진다
조작할 때 ‘kubectl’을 사용하는 것이 일반적이다
인증 정보와 컨텍스트(config)
kubectl이 마스터와 통신할 때는 접속 대상의 서버 정보, 인증 정보 등이 필요하다
kubectl은 컨텍스트를 전환하여 여러 환경을 여러 권한으로 조작할 수 있도록 설계되어 있다
# 컨테스트 목록 표시
kubectl config get-contexts
# 컨테스트 전환
kubectl config use-context <context-name>
# 현재 컨텍스트 표시
kubectl config current-context
생성,삭제,갱신
# 생성,갱신
kubectl apply -f <name>.yaml
# 목록조회
kubectl get pods
# 삭제
kubectl delete -f <name>.yaml
리소스 생성에도 apply를 사용하자
💡 리소스 생성에도 create가 아닌 apply를 사용해야 하는 이유:
create와 apply를 섞어서 사용하면 apply를 실행할 때, 변경사항을 검출하지 못하는 경우가 있다
파드 재기동
디플로이먼트 등의 리소스와 연결되어 있는 모든 파드를 재기동할 수 있음
(단, 리소스와 연결되어 있지 않은 단독 파드에는 사용할 수 없다)
kubectl rollout restart deployment <deployment-name>
# Deployment 리소스의 모든 파드 재기동
'Kubernetes(쿠버네티스)' 카테고리의 다른 글
[Kubernetes] Ch2. 워크로드 API 카테고리 - (4) Job, CronJob (0) | 2022.11.26 |
---|---|
[Kubernetes] Ch2. 워크로드 API 카테고리 - (3) DaemonSet, StatefulSet (0) | 2022.11.23 |
[Kubernetes] Ch2. 워크로드 API 카테고리 - (2) ReplicaSet, Deployment (1) | 2022.11.21 |
[Kubernetes] Ch2. 워크로드 API 카테고리 - (1) 파드 (0) | 2022.11.19 |
[Kubernetes] Ch1. API 리소스와 Kubectl (2) (0) | 2022.11.19 |
댓글