DevOps./Kubernetes

[Kubernetes] kubectl 명령형과 선언형 방식

PI.314 2022. 2. 1. 23:45

명령형 (Imperative)

  • 수행하고자 하는 액션을 지시
  • 적은 리소스에 대해서 빠르게 처리 가능 여러 명령어를 알아야 함

선언형 (Declarative) - 추천

  • 도달하고자 하는 상태(Desired State)를 선언 코드로 관리 가능 -> GitOps 활용 가능
  • 변경사항에 대한 감사(Audit) 용이
  • 코드리뷰를 통한 협업
  • 멱등성 보장 (apply)
  • 많은 리소스에 대해서도 매니페스트 관리 방법에 따라 
 빠르게 처리 가능
  • 알아야 할 명령어 수가 적음

kubectl 명령형 명령어 

ubuntu:focal 이미지로 ubuntu 파드 생성 (bash 명령어)

 $ kubectl run -i -t ubuntu --image=ubuntu:focal bash

grafana Deployment 오브젝트에 대해 NodePort 타입의 Service 오브젝트 생성 (노드에 포트 방)

$ kubectl expose deployment grafana --type=NodePort --port=80 --target-port=3000

frontend Deployment의 www 컨테이너 이미지를 image:v2로 변경

$ kubectl set image deployment/frontendwww=image:v2

frontend Deployment를 리비전 2로 롤백

$ kubectl rollout undo deployment/frontend --to-revision=2

 

kubetcl 선언형 명령어

deployment.yaml에 정의된 쿠버네티스 오브젝트 클러스터에 반영

$ kubectl apply -f deployment.yaml

deployment.yaml에 정의된 쿠버네티스 오브젝트 제거

$ kubectl delete -f deployment.yaml

현재 디렉토리의 kustomization.yaml 파일을 쿠버네티스 오브젝트 클러스터에 반영

$ kubectl apply -k ./

참조: https://fastcampus.co.kr/dev_online_awsdevops

 

한 번에 끝내는 AWS 인프라 구축과 DevOps 운영 초격차 패키지 Online. | 패스트캠퍼스

개발/운영/아키텍트를 아우르는 AWS/DevOps 전 과정 마스터! 41가지 툴을 실습 중심으로 배우고 실전 감각을 향상시키세요

fastcampus.co.kr