IT/쿠버네티스 / / 2020. 2. 6.

[kubernetes] CRD (Custom Resource Definition)

포스팅 목차

    # 사용자 정의 리소스 (Custom Resources)

     

    1. 변화하는 요구에 유연하게 대응
    2. 고유한 API 개체 생성
    3. kubectl틀을 통해 API 개체 관리
    4. 사용자 정의 리소스 정의(CRD)
    5. 집계 APIs(AA)


    # 사용자 정의 리소스 정의 (Custom Resource Definitions)

     

    1. 특징

    - deploy가 쉬움
    - 일반적으로 프로그래밍을 요구하지 않음
    - 다른 API server를 요구하지 않음
    - Namespaced or cluster 전체에서 쓸지 scope 결정할 수 있다.

     

    2. 설정 예시

     

    - Configuration

    apiVersion: apiextensions.k8s.io/v1beta1
    kind: CustomResourceDefinition           # => kube-apiserver 에 의해 insert 되어진 객체 타입
    metadata:
        name: backups.ps.example.com       #=> backups (유형 : 복수형태, plural name), ps.example.com (group)
    spec:
        group: ps.example.com
        version: v1
        scope: Namespaced          #=> scope 결정 (node or namespace)
        names:
            plural: backups               #=> 복수형태
            singular: backup             #=> 단수형태
            shortNames:
            - bks
            kind: BackUp                   #=> yaml 형태  kind 유형 정의 (CamelCased singular type)

    - New Object Configuration

    apiVersion: "ps.example.com/v1"
    kind: BackUp
    metadata:  
        name: ex-backup-obj
    spec:  
        timeSpec: "* * * * */5"   
        image: backup-image  
        replicas: 5


    # Aggregated APIs

     

    1. 좀더 정교하게 리소스 api 만듬. 쉽지는 않음.
    2. Usually requires non-trivial programming (프로그래밍 까다로움)
    3. More control over API behavior (API 동작 제어 강화)
    4. Subordinate API server behind primary
    5. Primary acts as proxy
    6. Leverages extension resource (확장 리소스 활용)
    7. Mutual TLS auth between API servers (API 서버 간의 상호 TLS 인증)
    8. RBAC rule to allow addition of API service objects (API 서비스 개체를 추가할 수 있는 RBAC 규칙)


    • 네이버 블로그 공유
    • 네이버 밴드 공유
    • 페이스북 공유
    • 카카오스토리 공유