구성 컨트롤러 문제 해결

이 페이지에서는 구성 컨트롤러 관련 문제를 해결하는 방법을 보여줍니다.

기본 네트워크를 사용할 수 없음

구성 컨트롤러를 만들 때 기본 네트워크를 사용할 수 없다는 오류가 발생할 수 있습니다.

Error 400: Project \"PROJECT_ID\" has no network named \"default\"., badRequest\n\n  on main.tf line 35, in resource \"google_container_cluster\" \"acp_cluster\"

이 오류는 구성 컨트롤러가 Google Cloud의 기본 네트워크에 의존하기 때문에 발생합니다. 이 문제를 해결하려면 새 기본 네트워크를 만들어야 합니다.

gcloud compute networks create default --subnet-mode=auto

또는 gcloud anthos config controller create 명령어에서 --network 플래그를 사용하여 다른 네트워크를 선택할 수 있습니다.

MasterIpv4CidrBlock 값이 잘못됨

구성 컨트롤러 만들기에서는 제어 영역 IPv4 CIDR172.16.0.128/28의 기본 서브넷을 사용합니다. IPv4 CIDR 블록에서 충돌이 발생하면 다음 오류와 함께 구성 컨트롤러 만들기가 실패합니다.

Cloud SSA\n\nError: Error waiting for creating GKE cluster: Invalid value for field PrivateClusterConfig.MasterIpv4CidrBlock: 172.16.0.128/28 conflicts with an existing subnet in one of the peered VPCs.

이 오류가 표시되면 다른 비공개 IPv4 CIDR을 선택하고 gcloud config controller create 명령어의 --master-ipv4-cidr-block 플래그를 사용합니다.

이미 사용 중인 IPv4 CIDR 블록을 찾으려면 다음 단계를 완료하세요.

  1. 피어링 이름을 찾습니다.

    gcloud compute networks peerings list --network=NETWORK
    

    NETWORK를 조회할 네트워크의 이름으로 바꿉니다.

    출력은 다음과 비슷합니다.

    NAME                                     NETWORK  PEER_PROJECT               PEER_NETWORK                            PEER_MTU  IMPORT_CUSTOM_ROUTES  EXPORT_CUSTOM_ROUTES  STATE   STATE_DETAILS
    gke-n210ce17a4dd120e16b6-7ebf-959a-peer  default  gke-prod-us-central1-59d2  gke-n210ce17a4dd120e16b6-7ebf-0c27-net            False                 False                 ACTIVE  [2021-06-08T13:22:07.596-07:00]: Connected.
    
  2. 피어링에서 사용 중인 IPv4 CIDR을 표시합니다.

    gcloud compute networks peerings list-routes PEERING_NAME \
        --direction=INCOMING \
        --network=NETWORK \
        --region=us-central1
    

    다음을 바꿉니다.

    • PEERING_NAME: 조회하려는 네트워크의 이름
    • NETWORK: 조회하려는 네트워크의 이름

동기화 오류

Git 저장소의 구성은 구성 동기화를 통해 구성 컨트롤러에 동기화됩니다. nomos status 명령어를 사용하여 이 동기화 프로세스의 오류를 확인할 수 있습니다.

nomos status  --contexts $(kubectl config current-context)

구성 커넥터 리소스 문제 해결

변경할 수 없는 필드 및 리소스

기본 Google Cloud 리소스의 일부 필드(예: 프로젝트 ID 또는 VPC 네트워크 이름)를 변경할 수 없습니다. 구성 커넥터는 이러한 필드에 대한 수정을 차단하고 변경사항을 활성화할 수 없습니다. 이러한 변경할 수 없는 필드 중 하나를 수정하려면 Git을 통해 원래 리소스를 삭제한 후에 원하는 새 값을 다시 추가해야 합니다.

리소스 중단

경우에 따라 리소스가 올바르게 삭제되지 않을 수도 있습니다(nomos status에 보고됨). 이 문제는 리소스에서 종료자를 삭제한 후 리소스를 수동으로 삭제하면 해결될 수 있습니다.

예를 들어 중단된 IAMPolicyMember를 삭제하려면 다음 명령어를 실행합니다.

kubectl patch IAMPolicyMember logging-sa-iam-permissions -p '{"metadata":{"finalizers":[]}}' --type=merge -n config-control
kubectl delete IAMPolicyMember logging-sa-iam-permissions -n config-control