쿠버네티스 디플로이먼트(Deployment) 개념과 명령어

ZER0·2022년 10월 7일
0

Kubernetes

목록 보기
4/39
post-thumbnail
post-custom-banner

1. 디플로이먼트 개념

  • 기능적인 목적은 레플리카셋과 동일하지만, 추가적으로 파드에 대한 업데이트 기능이 존재(롤아웃, 롤백 등)
  • 디플로이먼트는 레플리카셋을 핸들링하는 상위 기능으로, "디플로이먼트(레플리카셋(파드))" 형태로 캡슐화 된 뉘앙스

2. YAML을 활용한 디플로이먼트 생성

  • nginx 컨테이너로 구성된 디플로이먼트를 생성하기 위한 YAML 내용
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-deployment
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.14.2
    cs
	4번 : 디플로이먼트 이름
	5~6번 : 디플로이먼트의 레이블(AWS의 태그와 동일한 개념으로 관리 규칙에 따라 엔지니어 임의로 작성 가능)
	8번: 실행을 보장할 파드 개수
	9~11번: 어떤 레이블을 디플로이먼트에 연결 시킬것인지 설정
	14~15번: 디플로이먼트에 연결될 파드의 레이블. 11번의 값과 일치해야함.

3. 명령어를 활용한 디플로이먼트 핸들링

  • yaml 파일을 활용한 디플로이먼트 생성
	kubectl apply -f [yaml_파일]
  • 명령어를 활용한 디플로이먼트 생성
	kubectl create deployment [디플로이먼트_이름] --image=[이미지_이름]
  • 디플로이먼트 목록 확인
    kubectl get deployment 
    kubectl get deployment -n [네임스페이스]
    kubectl get deployment -A 
    kubectl get deployment -o wide
    kubectl get deployment --watch
  • 디플로이먼트 세부 정보 확인
	kubectl describe deployment [디플로이먼트_이름]
  • 디플로이먼트 설정 수정
	kubectl edit deployment [디플로이먼트_이름]
  • 레플리카(실행을 유지할 파드 개수) 설정
	kubectl scale --replicas=[개수] deployment [디플로이먼트_이름]
    kubectl scale --replicas=[개수] -f [yaml_파일]
  • yaml 파일 변경
	kubectl replace --force -f [yaml_파일]
  • 디플로이먼트 삭제
	kubectl delete deployment [디플로이먼트_이름]

4. 참고

  1. https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/
profile
Security Compliance Engineer
post-custom-banner

0개의 댓글