스터디/DOIK

K8S Operator 패턴 - DOIK 스터디 2주차

2022. 6. 1. 22:15
목차
  1. 오퍼레이터 (extension): 쿠버네티스 동작을 이용하여 애플리케이션 운영을 자동화
  2. 오퍼레이터 사용전 선행 학습
  3. 컨트롤 루프
  4. 주의사항
  5. 용어
  6. CR & CRD 실습

https://youtu.be/sL2dVvDq32E

 

 

오퍼레이터 (extension): 쿠버네티스 동작을 이용하여 애플리케이션 운영을 자동화

오퍼레이터 사용전 선행 학습

  • 쿠버네티스 컨트롤 루프(컨트롤러 컴퍼넌트)
  • 애플리케이션 아키텍처와 동작이해

컨트롤 루프

  • control plane
    • 종료되지 않는 루프를 실행하면서 상태를 제어
    • 쿠버네티스 컴퍼넌트인 컨트롤러는 클러스터 상태를 의도한 상태로 유지
  • 행위
    • 1. 모니터링
    • 2. 상태 차이 발견
    • 3. 액션

주의사항

  • 오퍼레이터를 사용하려먼, 쿠버네티스 이해보다 애플리케이션 아키텍처와 동작 이해가 더 중요

용어

  • CRD Custom Resource Definition : 오퍼레이터로 사용할 상태 관리용 객체들의 Spec 을 정의
    • 어플리케이션 의도한 상태는 CRD로 정의
  • CR Custom Resource : CRD의 Spec 를 지키는 객체들의 실제 상태 데이터 조합
  • CC Custom Controller : CR의 상태를 기준으로 현재의 상태를 규정한 상태로 처리하기 위한 컨트롤 루프
  • 오퍼레이터는 Helm 기능을 포함하며, 배포 업그레이드 운영까지 확장해서 관리
  • CRD 구성 및 배포, Custom Controller 연계 및 실행 등을 모두 합쳐 놓은 것 == Operator

CR & CRD 실습

Docs  

CRD 생성

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition        # 사용자 정의 리소스(CRD) 생성
metadata:
  # name must match the spec fields below, and be in the form: <plural>.< group>
  name: crontabs.stable.example.com   # <NAMES>.<GROUP> 으로 정의
spec:
  # group name to use for REST API: /apis/<group>/<version>
  group: stable.example.com           # apiVersion 그룹 이름(<GROUP>) 을 지정
  # list of versions supported by this CustomResourceDefinition
  versions:                           # CRD 버전 정의
    - name: v1
      # Each version can be enabled/disabled by Served flag.
      served: true
      # One and only one version must be marked as the storage version.
      storage: true
      schema:
        openAPIV3Schema:
          type: object
          properties:
            spec:
              type: object
              properties:
                cronSpec:
                  type: string
                image:
                  type: string
                replicas:
                  type: integer
  # either Namespaced or Cluster
  scope: Namespaced                  # Cluster 레벨 리소스인지 vs 네임스페이스 레벨 리소스인지 지정
  names:
    # plural name to be used in the URL: /apis/<group>/<version>/<plural>
    plural: crontabs                 # 복수 이름
    # singular name to be used as an alias on the CLI and for display
    singular: crontab                # 단수 이름
    # kind is normally the CamelCased singular type. Your resource manifests use this.
    kind: CronTab                    # Kind 이름
    # shortNames allow shorter string to match your resource on the CLI
    shortNames:                      # 축약 이름
    - ct

CR 생성

apiVersion: "stable.example.com/v1"
kind: CronTab
metadata:
  name: my-new-cron-object
spec:
  cronSpec: "* * * * */5"
  image: my-awesome-cron-image

현재는 리소스만 생성한 상태이고 어떤 동작을 수행해야 하는지 아무런 정보가 없음

실제 동작을 수행하기 위해서는 Custom Controller 의 도움이 필요

Operator 패턴이란 Custom Resource + Custom Controller 조합으로 특정 애플리케이션이나 서비스의 생성과 삭제를 관리하는 패턴을 말함

Operator 패턴을 통해 쿠버네티스 코어 API에 포함되지 않은 애플리케이션을 마치 쿠버네티스 Native 리소스처럼 동작하게끔 만들 수 있음

 

CRD 관리의 중요성

CRD 삭제

리소스 정보 확인 시 에러 발생

'스터디 > DOIK' 카테고리의 다른 글

Percona Operator for MongoDB - 옵션 변경  (0) 2022.06.24
Percona Operator for MongoDB - DOIK 스터디 4주차  (0) 2022.06.22
기본 Object - Pod  (0) 2022.06.05
K8S MySQL Operator 설치 - DOIK 스터디 2주차  (0) 2022.06.01
  1. 오퍼레이터 (extension): 쿠버네티스 동작을 이용하여 애플리케이션 운영을 자동화
  2. 오퍼레이터 사용전 선행 학습
  3. 컨트롤 루프
  4. 주의사항
  5. 용어
  6. CR & CRD 실습
'스터디/DOIK' 카테고리의 다른 글
  • Percona Operator for MongoDB - 옵션 변경
  • Percona Operator for MongoDB - DOIK 스터디 4주차
  • 기본 Object - Pod
  • K8S MySQL Operator 설치 - DOIK 스터디 2주차
시스템 엔지니어
시스템 엔지니어
공부, 스터디, 내용 정리 Linux / k8s / kubernets / c언어 등등
썸업공부, 스터디, 내용 정리 Linux / k8s / kubernets / c언어 등등
시스템 엔지니어
썸업
시스템 엔지니어
전체
오늘
어제
  • 분류 전체보기 (24)
    • 테라폼 (7)
      • T101[3기] (7)
    • c언어 (4)
      • 시스템 프로그래밍 (4)
    • NHN Cloud (3)
    • 스터디 (7)
      • DOIK (5)
      • PKOS (2)
    • 기타 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 시스템프로그래밍
  • 테라폼
  • operator
  • PKOS
  • C언어
  • nhn cloud
  • 가시다
  • 스터디
  • cloud
  • terraform
  • T101
  • MongoDB
  • k8s
  • Kubernetes
  • 시스템 프로그래밍

최근 댓글

최근 글

hELLO · Designed By 정상우.
시스템 엔지니어
K8S Operator 패턴 - DOIK 스터디 2주차
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.