Google Cloud 설치 맞춤설정

Google Cloud에서 GKE 클러스터에 Knative serving을 설치하는 방법을 알아봅니다. 이제 Knative serving에 Anthos Service Mesh 및 GKE Enterprise Fleet가 사용됩니다. Knative serving Fleet 설치의 새로운 기능 및 변경사항 알아보기

이 페이지에서는 새 설치를 맞춤설정하거나 Knative serving의 기존 Fleet 설치를 구성합니다. 예를 들어 비공개 클러스터용으로 구성하거나 Cloud Monitoring 사용자 인증 정보를 설정할 수 있습니다.

기본 설치 단계는 Google Cloud용 GKE Enterprise에서 측정항목을 사용 설정하는 다음 CloudRun 커스텀 리소스를 자동으로 배포합니다.

  apiVersion: operator.run.cloud.google.com/v1alpha1
  kind: CloudRun
  metadata:
    name: cloud-run

일반적인 커스텀 리소스에 대해 알아보려면 커스텀 리소스를 참조하세요.

시작하기 전에

  • 설치 기본 요건을 충족하는지 확인해야 합니다.

  • Knative serving이 클러스터에 설치된 경우 이러한 Fleet 구성요소 설치 단계를 수행하기 전에 'GKE 부가기능'이 존재하지 않는지 확인해야 합니다. "부가기능"이 설치되어 있으면 대신 GKE Enterprise Fleet로 업그레이드 단계를 따라야 합니다.

    "GKE 부가기능"이 설치되었는지 확인합니다.

    Knative serving 설치가 'GKE 부가기능'인지 확인하려면 다음 명령어를 실행합니다.

    gcloud container clusters describe \
    CLUSTER_NAME \
    --region CLUSTER_LOCATION \
    --project PROJECT_ID --format='get(addonsConfig.cloudRunConfig)'
    

    다음과 같이 바꿉니다.

    • CLUSTER_NAME을 클러스터 이름으로 바꿉니다.
    • CLUSTER_LOCATION을 클러스터가 있는 위치로 바꿉니다.
    • PROJECT_ID를 Google Cloud 프로젝트의 ID로 바꿉니다.

    결과:

    • 'GKE 부가기능'이 설치되지 않음:
      • 부가기능이 이전에 설치되지 않은 경우 터미널에 아무 것도 반환되지 않습니다.
      • 부가기능이 이전에 제거된 경우에는 disabled=true가 반환됩니다.
    • 'GKE 부가기능'이 설치됨: 부가 기능이 클러스터에 설치된 경우 부가기능의 구성 세부정보가 반환됩니다. 예를 들면 loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL입니다.
    예:
    다음 예시는 my-addon-cluster 클러스터에 설치된 Knative serving가 외부 트래픽을 처리하도록 구성된 'GKE 부가기능'을 통과하는 것을 보여줍니다.
    gcloud container clusters describe my-addon-cluster \
    --region us-central1-c --project my-gcp-project \
    --format='get(addonsConfig.cloudRunConfig)'
    

    응답:

    loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL
    

CloudRun 커스텀 리소스 구성

설치를 구성하려면 CloudRun 커스텀 리소스를 수동으로 만들고 구성해야 합니다.

Google Cloud용 GKE 클러스터에 대해 CloudRun 커스텀 리소스를 수동으로 만들려면 다음 안내를 따르세요.
  1. YAML 파일을 만들고 cloudrunanthos.yaml과 같은 기본 구성을 포함합니다.

    apiVersion: operator.run.cloud.google.com/v1alpha1
    kind: CloudRun
    metadata:
      name: cloud-run
    
  2. cloudrunanthos.yaml에서 spec 섹션에 다음 속성 중 하나 이상을 구성하여 설치를 맞춤설정합니다.

    • 비공개 클러스터: 속성의 clusterConfigisPrivate 집합을 추가하여 Google Cloud에서 비공개 클러스터에 Knative serving을 설치합니다.

      clusterConfigisPrivate 속성:

      spec:
        clusterConfig:
          isPrivate: true
      

      비공개 클러스터가 기본적으로 인증 기관과 통신할 수 없기 때문에 이 설정은 관리되는 TLS를 사용 안함으로 설정합니다.

    • 측정항목: 속성의 metricscollector 집합을 추가하여 Cloud Monitoring을 구성합니다. 기본적으로 Google Cloud의 GKE Enterprise 클러스터에 대해 측정항목이 사용 설정됩니다.

      spec:
        metricscollector:
          stackdriver:
            projectid: PROJECT_ID
            gcpzone: CLUSTER_LOCATION
            clustername: CLUSTER_NAME
            secretname: SECRET_NAME
            secretkey: SECRET_KEY
      

      다음을 바꿉니다.

      • PROJECT_ID를 Google Cloud 프로젝트의 ID로 바꿉니다.
      • CLUSTER_LOCATION을 클러스터가 있는 리전 또는 영역으로 바꿉니다.
      • CLUSTER_NAME을 클러스터 ID 또는 클러스터의 정규화된 식별자로 바꿉니다.
      • SECRET_NAMEknative-serving 네임스페이스의 서비스 계정에 대한 보안 비밀 이름으로 바꿉니다.
      • SECRET_KEYknative-serving 네임스페이스 서비스 계정에 대한 보안 비밀 키로 바꿉니다. 예를 들면 key.json입니다.

        서비스 계정에 대한 자세한 내용은 다음을 참조하세요.

예시

이 예시 CloudRun 커스텀 리소스에서 Cloud Monitoring에 대한 구성 세부정보는 my-gcp-logging-secret 보안 비밀 및 key.json 키를 사용하도록 지정됩니다.

 apiVersion: operator.run.cloud.google.com/v1alpha1
 kind: CloudRun
 metadata:
   name: cloud-run
 spec:
   metricscollector:
     stackdriver:
       projectid: my-gcp-project-id
       gcpzone: us-central1-c
       clustername: my-anthos-cluster-name
       secretname: my-gcp-logging-secret
       secretkey: key.json
 ```

Knative serving 사용 설정 및 설치

GKE Enterprise Fleet에서 Knative serving 구성요소를 사용 설정한 후 CloudRun 커스텀 리소스를 배포합니다.

  1. Fleet에서 Knative serving을 사용 설정합니다.

    gcloud container fleet cloudrun enable --project=PROJECT_ID
    

    PROJECT_ID를 Google Cloud 프로젝트의 ID로 바꿉니다.

    자세한 내용과 추가 옵션은 gcloud container fleet cloudrun enable 참조를 확인하세요.

  2. 선택사항: Knative serving 기능 구성요소가 사용 설정되어 있는지 확인합니다.

    Console

    Google Cloud 콘솔에서 Knative serving 구성요소가 사용 설정되어 있는지 확인합니다.

    GKE Enterprise 기능으로 이동

    명령줄

    appdevexperience 상태가 ACTIVE인지 확인합니다.

    gcloud container fleet features list  --project=PROJECT_ID
    

    PROJECT_ID를 Google Cloud 프로젝트의 ID로 바꿉니다.

    자세한 내용과 추가 옵션은 gcloud container fleet features list 참조를 확인하세요.

    결과:

    NAME               STATE
    appdevexperience   ACTIVE
    
  3. Knative serving을 설치할 각 GKE Enterprise 클러스터에 대해 CloudRun 커스텀 리소스를 배포해야 합니다.

    gcloud

    gcloud container fleet cloudrun apply --gke-cluster=CLUSTER_LOCATION/CLUSTER_NAME --config=CONFIG_FILE
    

    다음을 바꿉니다.

    • CLUSTER_LOCATION을 클러스터가 있는 리전 또는 영역으로 바꿉니다.
    • CLUSTER_NAME을 클러스터 ID 또는 클러스터의 정규화된 식별자로 바꿉니다.
    • CONFIG_FILEcloudRun 커스텀 리소스의 파일 이름 상대 경로로 바꿉니다. 예를 들면 cloudrunanthos.yaml입니다.

    자세한 내용과 추가 옵션은 gcloud container fleet cloudrun apply 참조를 확인하세요.

    kubectl

    kubectl apply --kubeconfig=KUBECONFIG --filename CONFIG_FILE
    

    다음을 바꿉니다.

    • KUBECONFIG를 kubectl 구성 파일의 절대 경로로 바꿉니다.
    • CONFIG_FILEcloudRun 커스텀 리소스의 파일 이름과 상대 경로로 바꿉니다. 예를 들면 cloudrunanthos.yaml입니다.

    자세한 내용과 추가 옵션은 kubectl apply 참조를 확인하세요.

  4. Knative serving이 클러스터에 사용 설정되었는지 확인합니다.
    1. Google Cloud 콘솔을 엽니다.

      GKE Enterprise 클러스터로 이동

    2. 클러스터 이름을 클릭하여 세부정보 창을 엽니다.

    3. 다음 명령어를 실행하여 Knative serving 버전 세부정보가 표시되는지 확인합니다. kubectl get namespace knative-serving -o 'go-template={{index .metadata.labels "serving.knative.dev/release"}}'
    4. knative-servingappdevexperience 네임스페이스에서 모든 Knative serving 관련 배포가 실행 중인 상태인지 확인합니다.

다음 단계

Knative serving 설치 설정하기