1.7 실험적인 기능

이제 Cluster API는 새로운 기능을 가진 exp/ 디렉토리에 있는 새로운 실험 패키지와 함께 제공된다. 이 위치는 졸업 후 영구적인 위치로 이동할 기능의 임시 위치다. 사용자는 형상 게이트를 사용하여 이러한 형상을 실험할 수 있다.

Clusterctl로 시작한 관리 클러스터에 대한 실험 기능 사용

사용자는 clusterctl init를 실행하기 전에 OS 환경 변수를 설정하여 기능을 활성화/비활성화할 수 있습니다. 예:

export EXP_CLUSTER_RESOURCE_SET=true

clusterctl init --infrastructure vsphere

환경 변수에 대한 대안으로 $HOME/.cluster-api/clusterctl.yaml에 위치한 clusterctl 구성 파일에서 변수를 설정할 수도 있다. 예:

# Values for environment variable substitution
EXP_CLUSTER_RESOURCE_SET: "true"

변수가 구성 파일과 OS 환경 변수로 정의되는 경우, 후자가 우선한다. clusterctl에 대한 변수 설정 방법에 대한 자세한 내용은 clusterctl 구성 파일을 참조한다.

MachinePools와 같은 일부 기능은 인프라 제공자가 기능의 인프라 측면을 처리하는 별도의 CRD를 구현해야 할 수도 있다. 이러한 기능이 작동하기 위해, 인프라 제공자들은 또한 기능으로 구현되는 경우에도 콘트롤러도 가능해야 한다. 만약 기능으로 구현되지 않는다면, 추가 단계가 필요하지 않다. 예를 들어 Cluster API Provider Azure (CAPZ)는 인프라 유형 AzureMachinePool을 통해 MachinePool을 지원한다.

e2e 테스트를 위한 실험 특성 활성화

한 가지 방법은 clusterctl 구성 파일에 실험 변수를 설정하는 것이다. CAPI의 경우 이러한 구성은 ./test/e2e/config/… 아래에 있습니다. docker-ci.yaml과 같은 경우:

variables:
  EXP_CLUSTER_RESOURCE_SET: "true"
  EXP_MACHINE_POOL: "true"

또 다른 방법은 e2e 테스트를 실행하기 전에 그것들을 환경 변수로 설정하는 것이다.

Tilt 실험 기능 활성화

Tilt로 시작하는 개발 환경에서는 kustomize_substitutions에서 기능 변수를 설정하여 기능을 활성화할 수 있다. 예:

{
  "enable_providers": ["kubeadm-bootstrap","kubeadm-control-plane"],
  "allowed_contexts": ["kind-kind"],
  "default_registry": "gcr.io/cluster-api-provider",
  "provider_repos": [],
  "kustomize_substitutions": {
    "EXP_CLUSTER_RESOURCE_SET": "true",
    "EXP_MACHINE_POOL": "true"
  }
}

틸트로 개발 환경 설정에 대한 자세한 내용은 Tilt로 Cluster API 개발을 참조한다.

기존 관리 클러스터에 대한 실험 기능 사용

기존 관리 클러스터에서 기능을 사용하거나 사용하지 않도록 설정하려면 사용자가 CAPI 컨트롤러 관리자 배포를 수정하여 요청된 기능이 있는 모든 컨트롤러를 다시 시작할 수 있다.

#  kubectl edit -n capi-system deployment.apps/capi-controller-manager
   // Enable/disable available feautures by modifying Args below. 
    Args:
      --metrics-addr=127.0.0.1:8080
      --enable-leader-election
      --feature-gates=MachinePool=true,ClusterResourceSet=true

마찬가지로 특정 기능이 사용하도록 설정되어 있는지 확인하려면 다음을 통해 cluster-api-provider 배포 인수를 참조한다.

# kubectl describe -n capi-system deployment.apps/capi-controller-manager

활성 실험 특성

경고: 실험 기능을 신뢰할 수 없다. 즉, 어떤 기능은 언젠가 주 저장소로 승격되거나 임의로 수정되거나 아예 사라질 수 있다. 간단히 말해서, 호환성 또는 더 이상 사용되지 않는 약속의 적용을 받지 않는다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like
Read More

Cluster API Book : 개념

개념 관리 클러스터(Management cluster) 워크로드 클러스터의 라이프사이클을 관리하는 쿠버네티스 클러스터다. 관리 클러스터는 하나 이상의 인프라 공급자가 실행되고, 머신과…
Read More

1.4 MachineHealthCheck 구성

전제조건 MachinehealthCheck를 구성하기 전에 하나 이상의 MachineDeployment 또는 MachineSet가 배포된 작업 관리 클러스터가 있어야 한다. MachineHealthCheck란 무엇입니까? MachineHealthCheck는…
Read More

1.7.2 ClusterResourceSet

실험 기능: ClusterResourceSet (알파) ClusterResourceSet 기능은 사용자가 정의한 리소스 세트(예: CNI/CSI)를 새로 생성된 클러스터와 일치시키는 데 자동으로 적용할…