소프트웨어 프로비저닝 문제 해결

이 페이지에서는 발생할 수 있는 일반적인 소프트웨어 프로비저닝 문제를 해결하는 방법을 자세히 설명합니다.

컨트롤 플레인 부트스트랩 문제 해결

부트스트랩 컨트롤 플레인 프로세스의 문제를 해결하려면 KIND 클러스터 내에서 다음 리소스를 확인하세요.

  1. anthos-cluster-operator 포드를 검사합니다.

    kubectl logs deployment/anthos-cluster-operator -c operator -n kube-system
    
  2. AddOn 리소스를 검사합니다.

    kubectl get AddOn -A
    

    gpc-addons 명령어를 사용하여 리소스를 확인하여 자세한 정보를 확인할 수도 있습니다.

  3. AddOnSet 리소스를 확인합니다.

    kubectl get AddOnSet -A
    

    조직 인프라 클러스터 생성 후 리소스 피벗 중에 제어 영역 부트스트랩 처리가 완료되지 않으면 kubeconfig 파일을 수동으로 내보냅니다.

    kubectl get secret root-admin-kubeconfig -n root -o jsonpath="{.data.value}" | base64 -d > /root/path/to/root-admin-kubeconfig.yaml
    

클러스터 생성 문제 해결

클러스터 생성 프로세스를 문제 해결하려면 다음 단계를 따르세요.

  1. 다음 명령어를 실행하여 클러스터의 현재 단계를 검사하고 Harbor-operator 또는 Harbor 객체가 있는지 확인하고 AddOnSet 리소스의 KIND 클러스터에서 상태를 확인합니다.

    kubectl get addonset -n fleet-root root-admin -o yaml
    

    이 명령어를 실행한 후 status.currentStage에서 현재 단계를 찾습니다.

  2. 조직 인프라 클러스터에서 harbor-system 네임스페이스의 리소스를 확인합니다. kubectl get harborcluster harbor -n harbor-system 명령어를 통해 HarborCluster 객체를 배포한 경우 설치가 두 번째 단계인 Harbor 단계로 이동했음을 나타냅니다.

  3. HarborCluster 객체의 status 필드를 검사합니다.

    kubectl -n harbor-system get harborcluster harbor
    

    상태가 healthy를 나타내는 경우 docker push 명령어를 사용하여 웹 포털을 통해 기능을 확인합니다.

  4. 신고된 URL에서 웹 포털에 액세스합니다. 예를 들면 https://10.200.0.36:10443입니다.

  5. 부트스트래퍼에서 docker push 명령어를 실행합니다.

    상태가 unhealthy이면 다음 항목을 실행하여 상태 조건의 세부정보를 검토합니다.

    kubectl -n harbor-system get harborcluster harbor -o yaml
    

    상태가 healthy로 표시되면 Istio 상태 확인 섹션으로 이동합니다. 상태에 healthy이 표시되지 않으면 다음 섹션인 Harbor 네임스페이스 리소스 평가로 계속 진행합니다.

Harbor 네임스페이스 리소스 평가

이 단계는 harbor-system 리소스의 상태가 healthy이 아닌 경우에만 실행하면 됩니다. harbor-system 리소스의 상태를 확인하려면 클러스터 생성 문제 해결을 참고하세요.

  1. harbor-system 네임스페이스 리소스를 평가합니다.

    kubectl get all -n harbor-system
    
  2. 조직 인프라 클러스터 생성 프로세스의 두 번째 단계에서 하위 차트로 빌드되는 PostgreSQL 및 Redis 연산자를 비롯한 Harbor 연산자와 관련된 리소스의 상태를 확인합니다. 다음 연산자가 Running 상태인지 확인합니다.

    deployment/harbor-operator-harbor-operator
    deployment/harbor-operator-postgres-operator
    deployment/harbor-operator-redisoperator
    
  3. PostgreSQL, Redis, Harbor 구성요소의 리소스가 모두 healthy 상태인지 확인합니다. 일부 포드가 healthy 상태가 아닌 경우 다음 명령어를 사용하여 실패한 포드의 세부정보를 검토합니다.

    kubectl get pod -o wide
    kubectl describe pod
    

    관리 운영자로부터 로그를 보려면 다음 명령어를 사용하세요.

    kubectl logs -f deploy/harbor-operator-postgres-operator
    
  4. PostgreSQL 리소스를 확인하려면 statefulset/postgresql-harbor-system-harbor을 확인하세요.

  5. Redis 리소스를 확인하려면 다음을 확인하세요.

    1. Redis 인스턴스:statefulset/rfr-harbor-redis
    2. Redis 센티널:deployment/rfs-harbor-redis

    Harbor 핵심 구성요소는 두 구성요소가 준비된 경우에만 배포됩니다.

    일부 Harbor 핵심 구성요소 포드가 실패하면 실패한 포드의 로그를 검토합니다. PostgreSQL 또는 Redis 인스턴스와의 통신 문제가 있는 경우도 있습니다.

    예를 들어 Harbor 핵심 구성요소가 제공된 사용자 인증 정보로 PostgreSQL 또는 Redis에 연결할 수 없는 경우 Harbor 핵심 구성요소를 배포하기 전에 사용자 인증 정보를 설정하는 Harbor Operator에 문제가 있을 수 있습니다.

Istio 상태 확인

포드 상태가 istio(예: istio-systemservice/istio-ingressgateway)인지 확인하려면 포트 10443이 노출되었는지 확인합니다.