1. kubernetes object
- kubernetes는 cluster의 상태를 나타내기 위해 오브젝트 개체를 정의하여 사용
- kubernetes에서 object를 생성할 때, object에 대한 기본적인 정보와 함께 의도한 상태를 기술한 object spec을 제시해야 함.
- object를 생성하기 위해 YAML 또는 JSON 파일을 작성
- kubectl 명령에 object가 정의된 YAML 또는 JSON 파일 제공
- kubectl은 JSON 형식으로 정보를 변환시켜 API 요청을 함.
- pod object를 기술한 간단한 YAML 파일 예제
apiVersion: v1
kind: Pod
metadata:
name: myweb-pod
lables:
app: myweb
type: frontend
spec:
containers:
- name: nginx-container
image: nginx
- 모든 object 정의 시 필수적으로 요구되는 필드
- apiVersion : object를 생성하기 위한 API ver
- kind : object의 종류
ex) pod, services, replicaset, deployment 등 - metadata : name, UID, namespace 등을 포함하는 기본적인 정보
- spec : object의 상태 정의
- spec 내에 정의할 요소는 정의하고자 하는 object의 종류에 따라 다르다.
※ 참고
- object resource 문서 확인 명령
- pod object resource에 대한 예제
kubectl explain pod
kubectl explain pod.spec
kubectl explain pod.spec.containers
kubectl explain pod.spec.containers.name
kubectl explain pod.spec.containers.image
kubectl explain pod.spec --recursive
- vim 에디터로 YAML 파일 작성 시 인덴트 및 하이라이팅, 들여쓰기 등 기능을 사용하여 효율적으로 작성할 수 있다.
# ~/.vimrc 파일에 아래와 같이 작성
syntax on
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab autoindent
2. Object 관리
- kubernetes에서 object를 생성하여 어플리케이션을 실행 및 관리하는 방법.
- 명령형 명령어 (Imperative Commands)
- kubectl 명령에 인수 또는 옵션을 사용하여 어플리케이션을 관리
- 일회성 작업
- 개발 환경에서 권장
- 가장 단순한 방법
kubectl run nginx --image nginx
kubectl create deployment nginx --image nginx
- 명령형 오브젝트 구성 (Imperative Object Configuration)
- object를 YAML 또는 JSON 형식으로 정의함
- kubectl 명령은 YAML 또는 JSON 파일을 인수로 사용하여 object를 관리
- object의 완전한 정의를 포함해야한다.
kubectl create -f nginx.yaml
kubectl delete -f nginx.yaml -f redis.yaml // 여러개의 파일을 지정할 수 있다.
kubectl replace -f nginx.yaml
- 선언형 오브젝트 구성 (Declarative Object Configuration)
- 특정 디렉토리에 모든 오브젝트 파일을 배치
- kubectl 명령은 디렉토리를 인수로 사용하여 오브젝트를 관리함.
kubectl diff -f configs/
kubectl apply -f configs/
kubectl diff -R -f configs/
kubectl apply -R -f configs/
'Containers > Kubernetes' 카테고리의 다른 글
Pod (0) | 2020.07.23 |
---|---|
명령형 명령어 (0) | 2020.07.23 |
YAML (0) | 2020.07.22 |
kubernetes 구성 요소 및 API (0) | 2020.07.22 |
Container와 Kubernetes 소개 (0) | 2020.07.22 |
댓글