블레이드 하나 종료

이 페이지에서는 블레이드를 유지하기 위해 기기를 이동하는 등 Google Distributed Cloud (GDC) 오프라인 어플라이언스의 블레이드 하나를 종료하고 재부팅하는 방법을 설명합니다.

시작하기 전에

계속하기 전에 모든 워크로드를 중지해야 합니다. 종료 중에 워크로드가 활성 상태인 경우 어떤 일이 발생할지 Google에서 보장할 수 없습니다.

모든 블레이드를 종료하려면 기기 종료를 따르세요. 이 안내를 따를 때는 블레이드 하나 종료하고 Google Distributed Cloud (GDC) 에어 갭 어플라이언스를 활성 블레이드 두 개로 실행 상태로 유지하세요.

기본 요건

  1. Google Distributed Cloud (GDC) 에어갭 어플라이언스의 네트워크에 연결된 노트북이나 워크스테이션에서 이 런북을 실행할 수 있습니다. 또는 기기 연결에 따라 노트북이나 워크스테이션을 스위치에 연결할 수 있습니다.
  2. 루트 관리자 클러스터의 Kubeconfig에 액세스할 수 있는지 확인합니다.
  3. export KUBECONFIG=<path to kubeconfig>를 실행하여 올바른 KUBECONFIG 환경 변수를 설정합니다.

블레이드 종료

  1. kubectl get nodes -A를 실행하여 노드 정보를 가져옵니다. 종료할 블레이드의 NODE_NAME을 결정합니다.

  2. 종료할 블레이드에 대해 다음 명령어를 실행하여 BareMetalHost 동기화를 일시중지합니다.

    kubectl annotate bmhost -n gpc-system NODE_NAME "baremetalhost.metal3.io/paused=true" --overwrite
    

    이 명령어의 샘플 출력은 다음과 같습니다.

    baremetalhost.metal3.io/**-**-bm** annotated
    
  3. 타겟 노드를 차단합니다.

    kubectl cordon NODE_NAME
    

    샘플 출력은 다음과 같습니다.

    node/**-**-bm** cordoned
    
  4. 타겟 노드를 드레이닝합니다.

    kubectl drain NODE_NAME --delete-emptydir-data --grace-period 900 --ignore-daemonsets --disable-eviction
    

    샘플 출력:

    node/**-**-bm** already cordoned
    WARNING: ignoring DaemonSet-managed Pods: kube-system/anetd-krj2z, kube-system/etcd-defrag-xh469, kube-system/ipam-controller-manager-2f4dz, kube-system/istio-cni-node-cgqv4, kube-system/kube-proxy-5mwf2, kube-system/localpv-mn2jh, kube-system/metallb-speaker-6l7sv, mon-system/mon-node-exporter-backend-nd8mp, netapp-trident/netapp-trident-node-linux-rrlmd, obs-system/anthos-audit-logs-forwarder-tpfqv, obs-system/anthos-log-forwarder-npjh4, obs-system/kube-control-plane-metrics-proxy-wp8nh, obs-system/log-failure-detector-crbnv, obs-system/oplogs-forwarder-sqwvj, vm-system/macvtap-v9pgp, vm-system/virt-handler-86khx
    pod/grafana-0 deleted
    pod/capi-kubeadm-bootstrap-controller-manager-1.30.400-gke.136lvgtf deleted
    pod/grafana-0 deleted
    pod/grafana-proxy-server-86d8fc4758-mkc4f deleted
    .
    .
    .
    
  5. 대상 노드를 단계적으로 종료합니다.

  6. iLO를 사용하여 NODE_NAME를 사용 중지합니다.

    • iLO에 액세스할 사용자 인증 정보를 가져옵니다.

      1. 사용자 이름 가져오기:

        kubectl get secret bmc-credentials-NODE_NAME -n gpc-system -o jsonpath="{.data.username}" | base64 --decode
        
      2. 비밀번호를 가져옵니다.

        kubectl get secret bmc-credentials-NODE_NAME -n gpc-system -o jsonpath="{.data.password}" | base64 --decode
        
      3. BMC-IP 열의 값에서 NODE_NAMEBMC-IP 주소를 가져옵니다.

        kubectl get servers -A
        
    • 이전 단계에서 가져온 BMC-IP 주소로 이동하여 가져온 사용자 이름과 비밀번호를 입력하여 로그인합니다.

    • 상단 행의 첫 번째 버튼 위로 마우스를 가져갑니다. Power: ON이 표시됩니다. 클릭합니다. 드롭다운 메뉴가 표시되면 Momentary Press라고 표시된 첫 번째 항목을 클릭합니다. 버튼 색상이 녹색에서 주황색으로 변경되며, 이는 노드가 종료되고 있음을 의미합니다. 버튼이 노란색으로 바뀌어 머신이 꺼졌음을 나타낼 때까지 기다립니다. 몇 분 정도 걸립니다.

  7. 조정이 완료될 때까지 30분 정도 기다립니다.

블레이드 재부팅

이 섹션에서는 이전에 종료된 블레이드를 부팅하는 단계를 설명합니다.

기본 요건

Google Distributed Cloud (GDC) 에어갭 어플라이언스의 네트워크에 연결된 노트북이나 워크스테이션에서 이 런북을 실행할 수 있습니다. 또는 기기 연결에 따라 노트북이나 워크스테이션을 스위치에 연결할 수 있습니다. 루트 관리자 클러스터의 Kubeconfig에 액세스할 수 있는지 확인합니다. export KUBECONFIG=<path to kubeconfig>를 실행하여 올바른 KUBECONFIG 환경 변수를 설정합니다.

행동 계획

  1. 블레이드의 전원 버튼을 누릅니다. 블레이드의 전원이 켜지면 제어 영역이 연결될 때까지 몇 분 정도 기다립니다. kubectl는 30분 이내에 컨트롤 플레인에 연결할 수 있어야 합니다.

  2. kubectl get nodes -A를 실행하여 타겟 노드의 이름을 확인합니다.

  3. 예약을 사용 설정하려면 타겟 노드를 차단 해제합니다.

    kubectl uncordon `NODE_NAME`
    
  4. 타겟 노드의 BareMetalHost 동기화를 재개합니다.

    kubectl annotate bmhost -n gpc-system NODE_NAME "baremetalhost.metal3.io/paused=false" --overwrite
    
  5. 조정이 완료될 때까지 30분 정도 기다립니다.