클러스터 내부의 엔티티
파드, 컨트롤러, 서비스 등등의 인스턴스를 의미
각각의 오브젝트는 쿠버네티스 API의 리소스 종류에 맞게 설정되고 생성
쿠버네티스 오브젝트는 쿠버네티스 시스템에서 영속성을 가지는 오브젝트로,
오브젝트가 지정된 상태를 유지되도록 쿠버네티스에 의해 제어됨
$ kubectl api-resources
name : 소문자와 복수형, kubectl 에서 특정 리소스 지칭 시 사용
shortnames : yaml 파일에서 사용 불가
APIVERSION: 버전만 지정된 것은 Core 그룹, 그룹이 별도로 있는 것은 API 그룹
Object를 사용해서 만드는 것을 Resource라고 부름
오브젝트의 버전
API Group
API 그룹은 쿠버네티스 API를 더 쉽게 확장하게 해주는 것으로,
API 그룹은 REST 경로, 직렬화된 오브젝트의 apiVersion 필드에 명시됨.
안정화(Stable)
버전 이름이 vX이고 X 는 정수다. (예 : v1, v2)
안정화된 버전
알파(Alpha)
버전 이름에 alpha가 포함된다(예: v1alpha1).
일반적인 쿠버네티스 환경에서는 사용이 불가능
기본적으로 비활성화 상태
개발 중인 API로, 오류 및 버그가 많을 수 있음
테스트 용도의 클러스터에만 사용하는 것을 권장
베타(Beta)
버전 이름에 beta가 포함된다(예: v2beta3).
충분히 검증된 버전으로, 오류는 거의 없음
버전이 올라갈 때 기능 변경이 있을 수 있고, 기능이 변경될 때 downtime 발생할 수 있음
Mission Critical : 절대 죽으면 안되는 서비스(24/7)로, 가능하면 Beta서비스를 사용하지 않는 것을 권장
순서 : Alpha --> Beta --> Stable
예시 : v1alphaX --> v2alphaX --> v1betaX --> v2betaX --> v1
오브젝트의 생성
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2 # tells deployment to run 2 pods matching the template
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
apiVersion : 해당 오브젝트를 생성하기 위해 사용하고 있는 쿠버네티스 API 버전(지원하는 오브젝트의 버전)
kind : 오브젝트의 종류로, kind 의 종류에 따라 지원하는 apiVersion이 다르다.
spec : 오브젝트에 대해 어떤 상태를 의도하는지(오브젝트에 대한 선언)
어떤 종류의 오브젝트를 정의하느냐에 따라 다르다.
오브젝트에 따라 spec을 선언하지 않는 경우도 있으나 극히 드물다.
meta-data : 오브젝트의 메타데이터
이름 문자열, UID, 그리고 선택적인 네임스페이스를 포함하여 오브젝트를 유일하게 구분지어 줄 데이터이다.
관리 기법 3가지
명령형 커맨드 : yaml 파일을 작성하지 않고, kubectl 명령어로만 관리(처리)하는 것
kubectl create
kubectl run
kubectl expose
본 글에서 앞서 진행했던 것들은 명령형 커맨드이다.
명령형 오브젝트 구성 : (절차형) yaml을 순서대로 하나씩 실행
kubectl create -f a.yaml
kubectl apply -f a.yaml
kubectl replace -f a.yaml
선언형 오브젝트 구성 : 하나이상의yaml 파일의 모음을 한번에 실행
kubectl create -f resources/
kubectl apply -f resources/
'Cloud > Kubernates' 카테고리의 다른 글
[k8s, kubernates] 네임스페이스 (0) | 2024.07.09 |
---|---|
[k8s, kubernates] 파드 (0) | 2024.07.09 |
[kubernates, k8s] 노드 (0) | 2024.07.08 |
[kubernates, k8s] 쿠버네티스 기본 개념, 구성요소 (0) | 2024.07.08 |
[kubernates, k8s] 쿠버네티스의 배경과 개념 (0) | 2024.07.08 |