실행 전 검사 이해

Anthos clusters on bare metal에서는 다음과 같은 다양한 상황에서 실행 전 검사를 실행할 수 있습니다.

  • Anthos clusters on bare metal은 bmctl을 사용하여 관리자, 하이브리드, 독립형, 사용자 클러스터와 노드 풀 리소스를 만들거나 업데이트할 때 실행 전 검사를 실행합니다. 검사에 실패하면 아무것도 변경되지 않습니다. 이러한 검사를 우회할 수도 있습니다.
  • 또한 Anthos clusters on bare metal은 관리자 또는 하이브리드 클러스터의 사용자 클러스터에 Kubernetes 리소스를 적용할 때 실행 전 내부 검사도 수행합니다. 검사는 변경사항이 영향을 받는 사용자 클러스터에 적용되기 전에 실행됩니다. 검사에 실패하면 아무것도 변경되지 않습니다. 이러한 검사를 우회하거나 명시적으로 실행할 수도 있습니다.

bmctl을 사용하여 클러스터를 만들 때 실행 전 검사

bmctl 명령어로 관리자, 하이브리드, 독립형, 사용자 클러스터를 만들 때 실행 전 검사를 자동으로 수행합니다.

검사가 통과되면 Anthos clusters on bare metal이 클러스터를 만듭니다.

자동화된 실행 전 검사의 결과 무시

이러한 자동화된 실행 전 점검을 우회하려는 경우 명령어에서 --force 플래그 옵션을 사용합니다.

독립적으로 실행 전 검사 실행

클러스터를 만들기 전에 자체적으로 실행 전 검사를 실행하여 머신 및 노드 리소스가 검사를 통과하도록 할 수도 있습니다.

  • 다음 명령어는 지정된 클러스터 구성 파일의 유효성을 검사하지만 클러스터 자체를 만들려고 시도하지 않습니다.

    bmctl check config --cluster CLUSTER_NAME

  • 다음 명령어는 머신 및 네트워크가 클러스터를 만들 준비가 되었는지 확인합니다.

    bmctl check preflight --cluster CLUSTER_NAME

Anthos clusters on bare metal 1.7.0 이상 버전만 bmctl을 사용하여 사용자 클러스터 만들기를 지원합니다.

사용자 클러스터 생성을 위한 실행 전 검사

기존 관리자 또는 하이브리드 클러스터로부터 사용자 클러스터가 생성됩니다. Anthos clusters on bare metal은 항목을 변경하기 전 실행 전 검사를 자동으로 수행합니다. 또한 클러스터를 만들기 전 kubectl로 실행 전 검사를 수행할 수 있습니다.

  1. 멀티 클러스터 설정에서 사용자 클러스터 만들기의 단계에 따라 사용자 클러스터 구성 파일을 만듭니다.

  2. 새 사용자 클러스터의 네임스페이스를 만듭니다. 예를 들어 user1이라는 새 사용자 클러스터를 만들려면 cluster-user1이라는 네임스페이스를 만들면 됩니다. 다음은 네임스페이스를 만드는 kubectl 명령어입니다. 여기서 ADMIN_KUBECONFIG는 관리자 클러스터 kubeconfig 파일의 경로를 지정합니다.

    kubectl --kubeconfig ADMIN_KUBECONFIG create namespace cluster-user1
    

  3. SSH 비공개 키 파일을 새 네임스페이스에 보안 비밀로 업로드하여 사용자 인증 정보를 설정합니다. 다음은 샘플 명령어입니다. 여기서 ADMIN_KUBECONFIG는 관리자 클러스터 kubeconfig 파일의 경로를 지정하고 SSH_PRIVATE_KEY_FILE_PATH는 SSH 비공개 키 파일의 경로를 지정합니다.

    kubectl --kubeconfig ADMIN_KUBECONFIG create secret generic ssh-key -n cluster-user1 --from-file=id_rsa=SSH_PRIVATE_KEY_FILE_PATH
    

  4. 다음 구조를 사용하여 새로운 실행 전 검사 YAML 파일을 만듭니다. 1단계에서 만든 사용자 클러스터 구성 파일의 텍스트 콘텐츠를 configYAML 필드에 입력합니다.

    apiVersion: baremetal.cluster.gke.io/v1
    kind: PreflightCheck
    metadata:
    generateName: preflightcheck-
    namespace: cluster-user1
    spec:
    configYAML: |
    # insert user cluster config file content here.
    
  5. kubectl 명령어를 사용하여 사용자 클러스터에 실행 전 검사를 실행합니다.

    kubectl --kubeconfig ADMIN_KUBECONFIG create -f USER_CLUSTER_PREFLIGHT_CHECK_CONFIG
    

    다음을 바꿉니다.

    • ADMIN_KUBECONFIG: 관리자 클러스터 kubeconfig 파일의 경로
    • USER_CLUSTER_PREFLIGHT_CHECK_CONFIG: 이전 단계에서 만든 실행 전 검사 YAML 파일의 경로

    예를 들어 이름이 cluster1인 사용자 클러스터와 이름이 user1-preflight.yaml인 사용자 클러스터 실행 전 검사 구성의 경우 명령어는 다음과 같습니다.

    kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig create -f user1-preflight.yaml
    

    시스템에서 실행 전 검사 항목의 작업 ID와 함께 다음 메시지를 반환합니다.

    preflightcheck.baremetal.cluster.gke.io/preflightcheck-g7hfo4 created
  6. kubectl 명령어를 사용하여 실행 전 검사 작업 상태를 쿼리합니다.

    kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig -n cluster-user1 get preflightchecks preflightcheck-g7hfo4
    

실행 전 검사 작업이 실패하면 작업 상태와 자세한 작업 로그를 확인하여 어떤 검사가 실패했는지 확인합니다. 작업에 언급된 문제를 수정하고 검사를 다시 실행합니다.

기존 클러스터의 실행 전 내부 검사

Anthos clusters on bare metal은 기존 관리자 또는 하이브리드 클러스터에 Kubernetes 리소스를 적용할 때 실행 전 내부 검사도 수행합니다. 검사에 실패할 경우 Anthos clusters on bare metal은 검사를 우회하도록 지정하지 않는 한 관련 노드를 변경하지 않습니다.

Kubernetes 리소스 적용 시 실행 전 검사 우회

기존 클러스터에 리소스를 적용할 때 실행 전 내부 검사를 무시하려면 클러스터 YAML 파일에서 BypassPreflightCheck 필드를 true로 설정해야 합니다.

다음은 true로 설정된 bypassPreflightCheck 필드를 보여주는 클러스터 구성 YAML 파일의 조각입니다.

# Sample cluster config to bypass preflight check errors:

apiVersion: v1
kind: Namespace
metadata:
  name: cluster-user1
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: user1
  namespace: cluster-user1
spec:
  type: user
  bypassPreflightCheck: true
  # Anthos cluster version.
  anthosBareMetalVersion: 1.7.7
....

실행 전 검사 다시 사용 설정

실행 전 검사가 완료된 후 Anthos clusters on bare metal이 업데이트되거나 새 클러스터를 만들 수 있도록 실행 전 검사를 명시적으로 다시 실행할 수 있습니다.

  1. 다음 콘텐츠를 사용하여 새로운 실행 전 검사 YAML 파일을 만듭니다. namespaceclusterName 필드에 만들려는 클러스터 이름을 입력합니다.

    apiVersion: baremetal.cluster.gke.io/v1
    kind: PreflightCheck
    metadata:
    generateName: preflightcheck-
    namespace: CLUSTER_NAMESPACE
    spec:
    clusterName: CLUSTER_NAME
    

  2. kubectl 명령어를 사용하여 클러스터에 실행 전 검사를 실행합니다.

    kubectl --kubeconfig ADMIN_KUBECONFIG create -f CLUSTER_PREFLIGHT_CHECK_CONFIG
    

    다음을 바꿉니다.

    • ADMIN_KUBECONFIG: 관리자 클러스터 kubeconfig 파일의 경로
    • CLUSTER_PREFLIGHT_CHECK_CONFIG: 이전에 만든 실행 전 검사 YAML 파일의 경로

    예를 들어 이름이 cluster1인 사용자 클러스터와 이름이 user1-preflight.yaml인 사용자 클러스터 실행 전 검사 구성의 경우 명령어는 다음과 같습니다.

    kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig create -f user1-preflight.yaml
    
    시스템은 실행 전 검사 항목의 작업 ID로 응답합니다.
    preflightcheck.baremetal.cluster.gke.io/preflightcheck-g7hfo4 created
    

  3. kubectl 명령어를 사용하여 실행 전 검사 작업 상태 ID를 쿼리합니다.

    kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig -n cluster-cluster1 get preflightchecks preflightcheck-g7hfo4
    

실행 전 검사 작업이 성공적으로 완료되면 Anthos clusters on bare metal은 클러스터와 해당 리소스를 만듭니다.

설치 실행 전 검사 세부정보

실행 전 검사를 실행하면 베어메탈용 Anthos 클러스터는 다양한 운영체제, 소프트웨어, 머신의 기본 요건을 확인합니다.

자세한 내용은 설치 기본 요건 개요를 참조하세요.