Red Hat OpenShift 웹 콘솔, OperatorHub, 내부 레지스트리 및 기타 컴포넌트 디버깅

가상 프라이빗 클라우드 클래식 인프라

Red Hat OpenShift 클러스터에는 개발자의 경험을 단순화하기 위해 함께 작동하는 많은 기본 제공 컴포넌트가 있습니다. 예를 들어, Red Hat OpenShift 웹 콘솔을 사용하여 클러스터 워크로드를 관리 및 배치하거나 OperatorHub에서 서드파티 운영자를 사용하여 서비스 메시 및 기타 기능으로 클러스터를 강화할 수 있습니다.

일반적으로 사용되는 컴포넌트는 다음과 같습니다. 이러한 컴포넌트가 실패하는 경우 다음 디버그 단계를 검토하십시오.

  • openshift-console 프로젝트의 Red Hat OpenShift 웹 콘솔
  • ** 프로젝트의 **OperatorHubopenshift-marketplace
  • ** 프로젝트의 **내부 레지스트리openshift-image-registry

1단계: 계정 설정 확인

IBM Cloud 계정이 적절하게 설정되었는지 확인하십시오. 기본 컴포넌트가 제대로 실행되지 않는 일부 공통 시나리오는 다음과 같습니다.

  • 클래식 클러스터에 여러 구역이 있거나 VPC 클러스터를 보유한 경우에는 VRF 또는 VLAN Spanning을 사용으로 설정해야 합니다. VRF가 이미 사용 가능한지를 확인하려면 ibmcloud account show를 실행하십시오. VLAN 스패닝이 사용으로 설정되었는지 여부를 확인하려면 ibmcloud oc vlan spanning get을 실행하십시오.
  • 계정 내 일부 사용자가 TOTP와 같은 다단계 인증(MFA)을 사용하는 경우, IBM Cloud 계정의 모든 사용자에 대해 MFA를 활성화해야 합니다.

사용자 레벨에서 MFA를 사용으로 설정하는 것은 지원되지 않습니다. MFA가 계정 레벨의 모든 사용자가 아닌 일부 사용자에 대해서만 사용으로 설정된 경우 인증 오류가 발생할 수 있습니다.

2단계: 퍼블릭 게이트웨이 확인

  • 퍼블릭 및 프라이빗 클라우드 서비스 엔드포인트가 사용으로 설정된 VPC 클러스터의 경우:

    클러스터가 연결된 각 VPC 서브넷에서 퍼블릭 게이트웨이가 사용으로 설정되었는지 확인하십시오. 퍼블릭 게이트웨이는 웹 콘솔 및 OperatorHub와 같은 기본 컴포넌트가 원격, 개인용 레지스트리에서 이미지를 가져오는 등과 같은 조치를 완료하기 위해 안전한 공용 연결을 사용하는 데 필요합니다.

    1. IBM Cloud 콘솔 또는 CLI를 사용하여 클러스터가 연결된 각 서브넷에서 퍼블릭 게이트웨이가 사용으로 설정되었는지 확인하십시오.
    2. 웹 콘솔에서 개발자 카탈로그의 컴포넌트를 다시 시작하십시오.
      1. samples 오퍼레이터에 대한 ConfigMap을 편집하십시오.
        oc edit configs.samples.operator.openshift.io/cluster
        
    3. managementState의 값을 Removed에서 Managed로 변경하십시오. 3. 구성 맵을 저장하고 닫으십시오. 변경사항이 자동으로 적용됩니다.
  • 퍼블릭 및 프라이빗 클라우드 서비스 엔드포인트가 모두 사용으로 설정된 클래식 클러스터의 경우:

    네트워킹 컴포넌트가 배치할 때 마스터와 통신할 수 있도록 클러스터에 공용 연결이 있는지 확인하십시오.

    1. 마스터 상태를 확인하십시오. 마스터 상태준비가 아니라면, 해당 상태를 검토하고 문제점 해결 정보에 따라 문제를 해결하십시오.
        ibmcloud oc cluster get -c CLUSTER_NAME_OR_ID
        ```
    1. **마스터 상태** 출력에서 클러스터에 **공용 서비스 엔드포인트 URL**이 있는지 확인하십시오. 클러스터에 퍼블릭 클라우드 서비스 엔드포인트가 없는 경우, 이를 활성화하십시오.
    1. 최소한 클러스터의 일부 작업자 노드에 **공인 IP** 주소가 있는지 확인하십시오. 어떤 워커 노드도 이를 수행하지 않는 경우, 최소한 하나의 워커 풀에 대해 공용 VLAN을 설정해야 합니다.
    
    ```sh {: pre}
        ibmcloud oc workers -c CLUSTER_NAME_OR_ID
        ```
    

3단계: 방화벽 및 네트워크 정책 확인

방화벽 또는 네트워크 정책을 확인하여 OperatorHub 또는 기타 Red Hat OpenShift 컴포넌트에 대한 ingress 또는 egress 트래픽을 차단하지 않았는지 확인하십시오.

4단계: 클러스터 설정 확인

클러스터가 적절하게 설정되었는지 확인하십시오. 클러스터를 작성한 경우에는 클러스터 컴포넌트가 완전히 프로비저닝되도록 잠시 대기하십시오.

  1. 클러스터의 세부사항을 가져오십시오.
    ibmcloud oc cluster get -c CLUSTER_NAME_OR_ID
    
  2. Ingress 하위 도메인을 확인하려면 이전 단계의 출력을 검토하십시오.
  3. 클러스터가 최신 패치 버전을 실행하는지 확인하십시오. 클러스터가 최신 패치 버전을 실행하지 않는 경우 클러스터 및 작업자 노드를 업데이트하십시오.
    1. 클러스터 주 버전과 부 버전의 최신 패치 버전으로 클러스터 마스터를 업데이트하십시오.
        ibmcloud oc cluster master update -c CLUSTER_NAME_OR_ID --version MAJOR.MINOR_openshift-f
        ```
    2. 작업자 노드를 나열하십시오.
    ```sh {: pre}
        ibmcloud oc worker ls -c CLUSTER_NAME_OR_ID
        ```
    3. 클러스터 마스터 버전과 일치하도록 [작업자 노드를 업데이트](/docs/openshift?topic=openshift-update#worker_node)하십시오.
    ```sh {: pre}
        ibmcloud oc worker update -c CLUSTER_NAME_OR_ID -w WORKER1_ID -w WORKER2_ID -w WORKER3_ID
        ```
    
  4. 클러스터 상태를 확인하십시오. 상태가 정상이 아닌 경우 클러스터 상태를 검토하고 문제를 해결하세요.
  5. 마스터 상태를 확인하십시오. 상태가 정상이 아닌 경우 마스터 상태를 검토하고 문제를 해결하세요.
  6. Red Hat OpenShift 컴포넌트가 실행될 수 있는 작업자 노드를 확인하십시오. 상태가 정상이 아니면 작업자 노드 디버깅을 참조하십시오.
    ibmcloud oc worker ls -c CLUSTER_NAME_OR_ID
    

5단계: 클러스터에 로그인

클러스터에 로그인하십시오. Red Hat OpenShift 웹 콘솔이 로그인 토큰을 가져오도록 작업하지 않으면, CLI에서 클러스터에 액세스할 수 있습니다.

VPC에만 해당: 프라이빗 클라우드 서비스 엔드포인트만 사용 가능한 경우, 웹 콘솔에 액세스하려면 VPC VPN 연결을 통해 사설 네트워크에 연결해야 합니다.

6단계: 컴포넌트 팟(Pod) 확인

작동하지 않는 Red Hat OpenShift 컴포넌트 팟(pod)의 상태를 확인하십시오.

  1. 팟(Pod) 상태를 확인하십시오.
    oc get pods -n <project>
    
  2. 팟(Pod)이 실행 중 상태가 아니면 팟(Pod)에 대해 설명하고 이벤트를 확인하십시오. 예를 들어, CPU 또는 메모리 리소스가 부족하여 팟(Pod)을 스케줄할 수 없다는 오류가 표시될 수 있으며, 이는 작업자 노드가 3개 미만인 클러스터가 있는 경우 일반적입니다. 클래식 작업자 풀의 크기를 조정하거나 또는 VPC 작업자 풀의 크기를 조정하고 다시 시도하십시오.
    oc describe pod -n <project> <pod>
    
  3. 이벤트 섹션에 도움이 되는 정보가 표시되지 않는 경우 팟(Pod) 로그에서 오류 메시지 또는 기타 문제점 해결 정보를 확인하십시오.
    oc logs pod -n <project> <pod>
    
  4. 팟(Pod)을 다시 시작하고 실행 중 상태에 도달했는지 확인하십시오.
    oc delete pod -n <project> <pod>
    

7단계: 시스템 팟(Pod) 확인

팟(Pod)의 상태가 양호하면 다른 시스템 팟(Pod)이 문제를 겪고 있는지 확인하십시오. 종종 한 컴포넌트가 다른 컴포넌트에 의존하여 정상 작동하는 경우가 있습니다.

예를 들어 OperatorHub에는 quay.io와 같은 외부 레지스트리에 저장된 이미지 세트가 있습니다. 이러한 이미지는 Red Hat OpenShift 클러스터의 프로젝트에서 사용하기 위해 내부 레지스트리로 가져옵니다. 권한 또는 컴퓨팅 리소스 부족으로 인해 OperatorHub 또는 내부 레지스트리 컴포넌트가 올바르게 설정되지 않은 경우 OperatorHub 및 카탈로그가 표시되지 않습니다.

  1. 보류 중인 팟(Pod)을 확인하십시오.
    oc get pods --all-namespaces | grep Pending
    
  2. 팟(Pod)에 대해 설명하고 이벤트를 확인하십시오.
    oc describe pod -n <project_name> <pod_name>
    
    예를 들어 openshift-image-registry 팟(Pod)에서 볼 수 있는 일부 공통 메시지에는 다음이 포함됩니다
    • 올바른 스토리지 권한 없이 클러스터를 작성했으므로 Volume could not be created 오류 메시지가 표시됩니다. Red Hat OpenShift on IBM Cloud 클러스터는 시스템 및 기타 팟(Pod)에 대한 이미지를 저장하도록 기본적으로 파일 스토리지 디바이스와 함께 제공됩니다. 인프라 권한을 수정한 후 팟(Pod)을 다시 시작하십시오.
    • 사용자가 계정당 허용되는 파일 및 블록 스토리지 디바이스의 결합된 할당량을 초과했기 때문에 order will exceed maximum number of storage volumes allowed 오류 메시지가 표시됩니다. 사용하지 않는 스토리지 디바이스를 제거하거나 스토리지 할당량을 늘리고 팟(Pod)을 다시 시작하십시오.
    • 파일 스토리지 디바이스가 가득 찼기 때문에 이미지를 저장할 수 없다는 메시지가 표시됩니다. 스토리지 디바이스 크기를 조정한 다음 팟(Pod)을 다시 시작하십시오.
    • 내부 레지스트리가 외부 레지스트리에서 이미지를 가져올 수 없으므로 Pull image still failed due to error: unauthorized: authentication required 오류 메시지가 표시됩니다. 이미지 풀 시크릿이 프로젝트에 대해 설정되었는지 확인하고 팟(Pod)을 다시 시작하십시오.
  3. 실패하는 팟(Pod)이 실행되는 노드를 확인하십시오. 모든 팟(Pod)이 동일한 작업자 노드에서 실행되면 작업자 노드에 네트워크 연결 문제가 있을 수 있습니다. 작업자 노드를 다시 로드하십시오.
    ibmcloud oc worker reload -c CLUSTER_NAME_OR_ID -w WORKER_NODE_ID
    

8단계: VPN 확인하기

클러스터 내의 VPN이 올바르게 설정되어 있는지 확인하십시오.

  1. VPN 포드가 ‘실행 중 ’ 상태인지 확인하십시오.
    oc get pods -n kube-system -l app=vpn
    
  2. VPN 로그를 확인하고, VPN 터널이 작동하지 않음을 나타내는 “ ERROR ” 메시지가 있는지 확인하십시오. 예를 들어, “ WORKERIP:<port> ”이나 “WORKERIP:10250 ”과 같은 메시지가 있는지 살펴보십시오.
    oc logs -n kube-system <vpn_pod> --tail 10
    
  3. 작업자의 IP 오류가 표시되면 작업자간 통신이 중단되었는지 확인하십시오. calico-node 프로젝트의 calico-system 팟(Pod)에 로그인하고, 동일한 WORKERIP:10250 오류를 확인하십시오.
    oc exec -n calico-system <calico-node_pod> -- date
    
  4. 작업자간 통신이 중단된 경우 VRF 또는 VLAN Spanning을 사용으로 설정해야 합니다.
  5. VPN 또는 calico-node 포드에서 이와 다른 오류가 표시되면 VPN 포드를 다시 시작하십시오.
    oc delete pod -n kube-system <vpn_pod>
    
  6. 그래도 VPN 연결에 실패한다면, 해당 파드가 실행 중인 워커 노드를 확인해 보세요.
    oc describe pod -n kube-system <vpn_pod> | grep "Node:"
    
  7. 워커 노드를 격리하여 VPN 포드가 다른 워커 노드로 재스케줄링되도록 하십시오.
    oc cordon <worker_node>
    
  8. VPN 포드 로그를 다시 한 번 확인해 보세요. 팟(Pod)에 더 이상 오류가 없는 경우, 작업자 노드에 네트워크 연결 문제가 있을 수 있습니다. 작업자 노드를 다시 로드하십시오.
    ibmcloud oc worker reload -c CLUSTER_NAME_OR_ID -w WORKER_NODE_ID
    

9단계: 클러스터 마스터 새로 고치기

기본 Red Hat OpenShift 컴포넌트를 설정하려면 클러스터 마스터를 새로 고치십시오. 클러스터를 새로 고친 후에 조작이 완료될 때까지 몇 분 동안 대기하십시오.

ibmcloud oc cluster master refresh -c CLUSTER_NAME_OR_ID

10단계: 재시도

Red Hat OpenShift 컴포넌트를 다시 사용해 보십시오.

오류가 지속되는 경우에는 피드백, 질문 및 지원을 참조하십시오.