Anthos Service Mesh 1.6

선택 기능 사용 설정

Anthos Service Mesh를 설치할 때는 구성 프로필을 지정합니다. 구성 프로필은 Anthos Service Mesh와 함께 설치되는 기능을 정의하고 구성하는 YAML 파일입니다. 다음 프로필은 Anthos Service Mesh와 함께 제공됩니다.

  • asm-gcp: Google Cloud 기반 GKE 클러스터가 모두 동일한 프로젝트에 있는 경우 이 프로필을 사용합니다. 이 프로필로 Anthos Service Mesh를 설치하면 다음 기능이 사용 설정됩니다.

  • asm-gcp-multiproject: Google Cloud 기반 GKE 클러스터가 공유 Virtual Private Cloud에 있고 서로 다른 프로젝트의 클러스터를 Anthos Service Mesh에 추가하려면 이 프로필을 사용합니다. asm-gcp-multiproject 프로필을 사용하여 Anthos Service Mesh를 설치하는 경우:

    • 현재 Cloud Console에서 Anthos Service Mesh 대시보드를 사용할 수 없습니다. 그러나 각 프로젝트에 대해 Cloud Logging의 로그와 Cloud Monitoring의 측정항목은 계속 볼 수 있습니다.

    • asm-gcp-multiproject 구성 프로필의 지원되는 기능 페이지에 나열된 지원되는 기본 기능이 사용 설정됩니다.

  • asm-multicloud: GKE On-Prem, GKE on AWS, Amazon Elastic Kubernetes Service(Amazon EKS), Microsoft Azure Kubernetes Service(Microsoft AKS) 등 다른 지원 환경의 클러스터에 이 프로필을 사용합니다. asm-multicloud.yaml 프로필을 사용하여 Anthos Service Mesh를 설치하면 asm-multicloud 구성 프로필의 지원되는 기능 페이지에 나열된 지원되는 기본 기능이 사용 설정됩니다.

프로필은 Anthos Service Mesh 설치 루트 디렉터리 내의 manifests/profiles 하위 디렉터리에 있습니다.

IstioOperator API를 사용하여 구성 프로필을 재정의하고 지원되는 선택적 기능을 사용 설정할 수 있습니다. YAML 파일에서 IstioOperator 구성을 지정합니다(예: feature.yaml). YAML 파일의 이름은 중요하지 않습니다.

프로필을 변경하거나 --set 옵션을 사용하여 명령줄에서 구성 매개변수를 지정하여 구성을 수정할 수 있지만, 다른 리소스 구성 파일과 함께 버전 제어 시스템에 파일을 저장할 수 있도록 IstioOperator 구성 YAML 파일을 사용하는 것이 좋습니다. 선택적 기능을 사용 설정할 때 명령줄에 여러 파일을 지정할 수 있습니다.

예시

Anthos Service Mesh를 설치하거나 업그레이드할 때 이 기능을 사용 설정하려면 사용 설정할 기능의 프로필과 YAML 파일을 모두 포함해야 합니다.

이그레스 게이트웨이 사용 설정

이 예시에서는 GKE On-Prem에서 이그레스 게이트웨이를 사용 설정하는 방법을 보여줍니다.

  1. 다음 YAML을 feature.yaml에 복사하고 파일을 저장합니다.

    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      components:
        egressGateways:
          - name: istio-egressgateway
            enabled: true
  2. GKE On-Prem에 Anthos Service Mesh를 설치하려면 다음 명령줄을 사용합니다.

    istioctl install \
      --set profile=asm-multicloud \
      -f feature.yaml

추적 사용 설정

이 예시에서는 Google Cloud 기반 GKE에 Cloud Trace를 사용 설정하는 방법을 보여줍니다.

Google Cloud 기반 GKE에 설치하고 업그레이드하려면 프로젝트 및 클러스터 정보가 포함된 istio-operator.yaml을 준비해야 합니다. istio-operator.yaml을 구성할 때 사용할 프로필(asm-gcp 또는 asm-gcp-multiproject)을 설정합니다. 프로필은 istio-operator.yaml에서 구성되므로 이 경우에는 명령줄에서 프로필을 지정하지 않아도 됩니다. 단, 명확성을 위해 프로필을 지정할 수 있습니다.

  1. 다음 YAML을 feature.yaml에 복사하고 파일을 저장합니다.

    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      meshConfig:
        enableTracing: true
      values:
        global:
           proxy:
             tracer: stackdriver
  2. Google Cloud 기반 GKE에 Anthos Service Mesh를 설치하려면 다음 명령줄을 사용합니다.

    istioctl install \
     -f asm/cluster/istio-operator.yaml \
     -f feature.yaml

선택 기능의 YAML

다음 섹션에서는 선택적 및 지원되는 기능을 사용 설정하기 위한 YAML을 제공합니다. 선택 기능을 사용 설정할 때 명령줄에서 사용 설정하려는 기능의 프로필과 YAML 파일을 모두 포함해야 합니다. Google Cloud 기반 GKE의 경우에는 프로필이 istio-operator.yaml로 구성됩니다.

mTLS STRICT 모드

업그레이드 문제를 방지하고 더 유연한 설치를 제공하기 위해 global.mtls.enabled 구성이 삭제되었습니다. STRICT mTLS를 사용 설정하려면 대신 피어 인증 정책을 구성하세요.

Envoy를 stdout로 전달

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    accessLogFile: "/dev/stdout"

자세한 내용은 Envoy의 액세스 로깅 사용 설정을 참조하세요.

Cloud Trace

Google Cloud에 GKE를 설치하는 경우 Cloud Trace를 사용 설정할 수 있습니다. 자세한 가격 책정 정보는 Cloud Trace 가격 책정 페이지를 참조하세요.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
  values:
    global:
       proxy:
         tracer: stackdriver

기본 샘플링 레이트는 1%이지만 traceSampling 값을 지정하여 기본값을 재정의할 수 있습니다. 값은 0.0에서 100.0 사이여야 하며 정밀도는 0.01입니다. 예를 들어 요청 10,000개마다 5개의 요청을 추적하려면 0.05를 사용합니다.

다음 예시는 샘플링 레이트 100%를 보여줍니다(데모 또는 문제 해결 목적으로만 수행).

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
  values:
    pilot:
      traceSampling: 100
    global:
       proxy:
         tracer: stackdriver

Trace 컨텍스트 전파

사이드카 프록시는 trace 스팬을 자동으로 전송할 수 있지만 전체 trace를 서로 결합하려면 약간의 힌트가 필요합니다. 프록시가 스팬 정보를 전송할 때 스팬이 단일 trace에 올바르게 연결될 수 있도록 하려면 애플리케이션이 관련 HTTP 헤더를 전파해야 합니다.

이렇게 하려면 애플리케이션이 수신 요청에서 송신 요청까지 다음 헤더를 수집하고 전파해야 합니다.

  • x-request-id
  • x-b3-traceid
  • x-b3-spanid
  • x-b3-parentspanid
  • x-b3-sampled
  • x-b3-flags
  • x-ot-span-context
  • x-cloud-trace-context
  • traceparent
  • grpc-trace-bin

헤더를 전파하는 예시는 Trace 컨텍스트 전파를 참조하세요.

이그레스 게이트웨이를 통한 이그레스

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    egressGateways:
      - name: istio-egressgateway
        enabled: true

자세한 내용은 이그레스 게이트웨이를 참조하세요.

Istio 컨테이너 네트워크 인터페이스

Istio 컨테이너 네트워크 인터페이스(CNI)를 사용 설정하는 방법은 Anthos Service Mesh가 설치된 환경에 따라 달라집니다. 또한 네트워크 정책을 사용 설정해야 합니다.

Google Cloud 기반 GKE에 CNI 사용 설정

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    cni:
      enabled: true
      namespace: kube-system
  values:
    cni:
      cniBinDir: /home/kubernetes/bin
      excludeNamespaces:
        - istio-system
        - kube-system

GKE On-Prem에 CNI 사용 설정

GKE On-Prem의 경우 gke-systemexcludeNamespaces에 추가하고 values.cni.cniBinDir.은 /opt/cni/bin입니다.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    cni:
      enabled: true
      namespace: kube-system
  values:
    cni:
      cniBinDir: /opt/cni/bin
      excludeNamespaces:
        - istio-system
        - kube-system
        - gke-system

내부 부하 분산기 사용 설정

Google Cloud 기반 GKE에 설치하는 경우 Istio 인그레스 게이트웨이에 내부 부하 분산기를 사용 설정할 수 있습니다. 다음 YAML에서 PROFILE을 사용 중인 프로필(asm-gcp 또는 asm-gcp-multiproject)로 바꿉니다.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  profile: PROFILE
  components:
    ingressGateways:
      - name: istio-ingressgateway
        enabled: true
        k8s:
          serviceAnnotations:
            cloud.google.com/load-balancer-type: "internal"
          service:
            ports:
              - name: status-port
                port: 15020
              - name: http2
                port: 80
              - name: https
                port: 443

인그레스 게이트웨이의 외부 인증서 관리

Envoy SDS를 사용하여 인그레스 게이트웨이에서 외부 인증서 관리를 사용 설정하는 방법에 대한 자세한 내용은 보안 게이트웨이를 참조하세요.