본문 바로가기
Containers/Kubernetes

Object 관리

by shinebee* 2020. 7. 22.

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

댓글