Cluster API - 부트스트랩 제공자 사양

1 개요

Crystal Clear action info.png 작성 중인 문서입니다.
Bootstrap Provider Specification
부트스트랩 제공자 사양

https://cluster-api.sigs.k8s.io/developer/providers/bootstrap


부트스트랩 제공자는 Kubernetes 노드를 부트스트랩하는 데 사용되는 부트스트랩 데이터를 생성합니다.

예를 들어, Kubeadm 부트스트랩 제공자는 노드를 부트스트랩하기 위해 cloud-init 파일을 사용합니다.

2 데이터 타입

2.1 부트스트랩 API 리소스

부트스트랩 제공자는 부트스트랩 리소스를 위한 API 타입을 정의해야 합니다. 이 타입은 다음과 같은 조건을 만족해야 합니다:

  • 1. 쿠버네티스 API 서버에서 제공하는 API 그룹에 속해야 합니다.
  • 2. CustomResourceDefinition(CRD)으로 구현되어야 합니다.
    • CRD 이름은 sigs.k8s.io/cluster-api/util/contract.CalculateCRDName(Group, Kind)에서 생성된 형식을 가져야 합니다.
  • 3. 네임스페이스 스코프여야 합니다.
  • 4. 표준 쿠버네티스 "타입 메타데이터"와 "객체 메타데이터"를 가져야 합니다.
  • 5. 부트스트랩 프로바이더와 관련된 필드를 포함하는 spec 필드가 있어야 합니다.
  • 6. 다음과 같은 필드가 포함된 status 필드가 있어야 합니다:
    • 필수 필드:
      • ready (boolean): 부트스트랩 데이터가 생성되어 준비되었음을 나타냅니다.
      • dataSecretName (string): 생성된 부트스트랩 데이터를 저장하는 비밀(Secret)의 이름입니다.
    • 선택적 필드:
      • failureReason (string): 부트스트랩 데이터를 조정하는 데 치명적인 문제가 있음을 나타내며, 프로그래밍적으로 해석하기 적합한 값이어야 합니다.
      • failureMessage (string): 부트스트랩 데이터를 조정하는 데 치명적인 문제가 있음을 나타내며, failureReason보다 더 설명적인 값이어야 합니다.

참고: dataSecretNamestatus의 일부이기 때문에 Cluster, Machine 및/또는 부트스트랩 리소스의 데이터에서 결정적으로 재생성할 수 있어야 합니다. 이름이 무작위로 생성되는 경우 리소스와 관련된 비밀을 한 관리 클러스터에서 다른 클러스터로 이동하는 것이 항상 가능하지는 않습니다.

2.2 BootstrapTemplate 리소스

2.3 List 리소스

2.4 부트스트랩 시크릿

3 동작

4 센티널 파일

5 생성 시 노드 테인트

6 RBAC

6.1 제공자 컨트롤러

6.2 Cluster API 컨트롤러

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}