2장. OpenShift Service Mesh 이해


Red Hat OpenShift Service Mesh는 다음 두 부분으로 구성됩니다.

  • Red Hat OpenShift Service Mesh 리소스
  • Red Hat에서 제공하는 Kiali

Red Hat에서 제공하는 Kali는 다음 세 부분으로 구성됩니다.

  • Red Hat에서 제공하는 Kiali Operator
  • Kiali 서버
  • OpenShift Service Mesh Console (OSSMC) 플러그인

OpenShift Service Mesh는 다음과 통합됩니다.

  • 다음과 같은 가시성 구성 요소:

    • OpenShift Monitoring
    • Red Hat OpenShift distributed tracing 플랫폼
    • Red Hat OpenShift distributed tracing data collection Operator
  • cert-manager
  • Argo 롤아웃

2.1. Red Hat OpenShift Service Mesh 리소스

Red Hat OpenShift Service Mesh Operator는 Istio 컨트롤 플레인의 라이프사이클을 관리합니다. 새 구성 스키마를 생성하는 대신 OpenShift Service Mesh Operator API는 Istio의 Helm 차트 API를 기반으로 빌드됩니다.

참고
  • Red Hat OpenShift Service Mesh API는 Istio의 Helm 차트 API를 기반으로 빌드되지만 Helm 차트는 지원되지 않습니다.
  • Istio의 Helm 차트에서 노출하는 모든 설치 및 구성 옵션은 Red Hat OpenShift Service Mesh CRD(Custom Resource Definition) 필드를 통해 사용할 수 있습니다.

2.1.1. Istio 리소스

Istio 리소스는 Istio 컨트롤 플레인을 관리하는 데 사용됩니다. Istio 컨트롤 플레인이 작동하고 전체 클러스터에 액세스해야 하므로 클러스터 전체 리소스입니다.

컨트롤 플레인 Pod를 실행할 네임스페이스를 선택하려면 spec.namespace 필드를 사용할 수 있습니다.

참고

spec.namespace 필드는 변경할 수 없습니다. 컨트롤 플레인을 다른 네임스페이스로 이동하려면 Istio 리소스를 제거하고 다른 spec.namespace 로 다시 생성해야 합니다.

spec.values 필드를 통해 모든 Istio CRD(사용자 정의 리소스 정의) 옵션에 액세스할 수 있습니다.

Istio 리소스 CRD의 예

apiVersion: sailoperator.io/v1alpha1
kind: Istio
metadata:
  name: default
spec:
  version: v1.22.3
  namespace: istio-system
  updateStrategy:
    type: InPlace
  values:
    pilot:
      resources:
        requests:
          cpu: 100m
          memory: 1024Mi

다음 명령을 실행하여 모든 사용자 지정 옵션을 확인할 수 있습니다.

$ oc explain istios.spec.values

컨트롤 플레인의 카나리아 업데이트를 지원하기 위해 OpenShift Service Mesh에는 여러 Istio 버전에 대한 지원이 포함되어 있습니다. spec.version 을 설치하려는 버전으로 설정하여 버전을 선택할 수 있으며, 앞에 v 가 붙습니다. 이 필드를 변경하여 새 버전으로 업데이트할 수 있습니다.

OpenShift Service Mesh는 컨트롤 플레인에 대해 두 가지 다른 업데이트 전략을 지원합니다.

InPlace
OpenShift Service Mesh Operator는 기존 컨트롤 플레인 리소스를 새 버전의 리소스로 즉시 교체합니다.
버전 기반
워크로드를 마이그레이션하여 업데이트를 완료할 수 있는 두 번째 컨트롤 플레인을 생성하여 Istio의 카나리아 업데이트 메커니즘을 사용합니다.

Istio 리소스를 생성한 후 OpenShift Service Mesh는 updateStrategy 를 기반으로 리소스에 대한 버전 이름을 생성하고 해당 IstioRevision 을 생성합니다.

2.1.2. IstioRevision 리소스

IstioRevision 은 클러스터 전체 리소스이며 가장 낮은 수준의 API OpenShift Service Mesh가 제공합니다. 일반적으로 사용자가 생성한 것이 아니라 Operator 자체에 의해 생성됩니다. 해당 스키마는 Istio 리소스의 것과 거의 유사하지만 클러스터에 존재할 컨트롤 플레인의 상태를 나타내는 대신 해당 컨트롤 플레인의 버전을 나타냅니다.

클러스터에 존재할 컨트롤 플레인의 버전은 특정 버전 및 버전 이름이 있는 Istio 인스턴스이며, 해당 버전 이름을 사용하여 워크로드 또는 전체 네임스페이스를 메시에 추가할 수 있습니다. 예: istio.io/rev=<REVISION_NAME> 레이블을 사용하여 다음을 수행합니다.

Kubernetes의 복제본 세트와 Pod 간의 관계와 유사한 IstioIstioRevision 리소스 간의 관계를 생각할 수 있습니다. 복제본 세트는 사용자가 생성할 수 있으며 Pod가 자동으로 생성되어 컨테이너 인스턴스화가 트리거됩니다.

마찬가지로 사용자는 OpenShift Service Mesh Operator에 일치하는 Istio Revision 리소스를 생성하도록 지시하는 Istio 리소스를 생성하여 Istio 컨트롤 플레인 생성을 트리거합니다. 이를 위해 OpenShift Service Mesh Operator는 Istio 리소스에서 Istio Revision 리소스로 모든 관련 구성을 복사합니다.

2.1.3. IstioCNI 리소스

OpenShift Service Mesh Operator를 사용할 때 Istio의 CNI(Container Network Interface) 플러그인의 라이프사이클은 별도로 관리됩니다. Istio의 CNI 플러그인을 설치하려면 IstioCNI 리소스를 생성합니다.

IstioCNI 리소스는 클러스터의 모든 노드에서 작동하는 데몬 세트를 설치하기 때문에 클러스터 전체 리소스입니다. 다음 예제에서 볼 수 있듯이 spec.version 필드를 설정하여 버전을 선택할 수 있습니다. CNI 플러그인을 업데이트하려면 버전 필드를 설치하려는 버전으로 변경합니다. Istio 리소스와 마찬가지로 istio-cni 차트에 제공된 모든 옵션을 노출하는 필드도 있습니다.

IstioCNI 리소스의 예

apiVersion: sailoperator.io/v1alpha1
kind: IstioCNI
metadata:
  name: default
spec:
  version: v1.22.3
  namespace: istio-cni
  values:
    cni:
      cniConfDir: /etc/cni/net.d
      excludeNamespaces:
      - kube-system

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.