1.8. ServiceMeshControlPlane 생성

OpenShift Container Platform 웹 콘솔 또는 oc 클라이언트 도구를 사용하여 명령줄에서 ServiceMeshControlPlane(SMCP)의 기본 설치를 배포할 수 있습니다.

참고

이 기본 설치는 기본 OpenShift 설정을 기반으로 구성되며 프로덕션용으로 설계되지 않습니다. 이 기본 설치를 사용하여 설치를 확인한 다음 환경에 ServiceMeshControlPlane을 구성합니다.

참고

ROSA(Red Hat OpenShift Service on AWS)는 리소스를 생성할 수 있는 위치에 추가 제한을 두고 기본 배포가 작동하지 않습니다. ROSA 환경에 SMCP를 배포하기 전에 추가 요구 사항은 AWS의 Red Hat OpenShift Service에 Service Mesh 설치를 참조하십시오.

참고

Service Mesh 문서는 istio-system을 예제 프로젝트로 사용하지만, 모든 프로젝트에 서비스 메시를 배포할 수 있습니다.

1.8.1. 웹 콘솔에서 Service Mesh Control Plane 배포

웹 콘솔을 사용하여 기본 ServiceMeshControlPlane을 배포할 수 있습니다. 이 예제에서 istio-system 은 Service Mesh Control Plane 프로젝트의 이름입니다.

사전 요구 사항

  • Red Hat OpenShift Service Mesh Operator가 설치되어 있어야 합니다.
  • cluster-admin 역할이 있는 계정.

프로세스

  1. cluster-admin 역할의 사용자로 OpenShift Container Platform 웹 콘솔에 로그인합니다. Red Hat OpenShift Dedicated를 사용하는 경우 dedicated-admin 역할의 계정이 있어야 합니다.
  2. istio-system이라는 프로젝트를 생성합니다.

    1. 프로젝트로 이동합니다.
    2. 프로젝트 만들기를 클릭합니다.
    3. 이름 필드에 istio-system을 입력합니다. ServiceMeshControlPlane 리소스는 마이크로 서비스 및 Operator와 별도로 프로젝트에 설치해야 합니다.

      이 단계에서는 istio-system 을 예로 사용하지만 서비스가 포함된 프로젝트와 별도로 모든 프로젝트에 Service Mesh Control Plane을 배포할 수 있습니다.

    4. 생성을 클릭합니다.
  3. Operators설치된 Operator로 이동합니다.
  4. Red Hat OpenShift Service Mesh Operator를 클릭한 다음 Istio Service Mesh Control Plane을 클릭합니다.
  5. Istio Service Mesh Control Plane 탭에서 ServiceMeshControlPlane 생성을 클릭합니다.
  6. ServiceMeshControlPlane 생성 페이지에서 기본 Service Mesh Control Plane 버전을 수락하여 제품의 최신 버전에서 사용할 수 있는 기능을 활용합니다. 컨트롤 플레인의 버전에 따라 Operator 버전에 관계없이 사용 가능한 기능을 결정합니다.

    나중에 ServiceMeshControlPlane 설정을 구성할 수 있습니다. 자세한 내용은 Red Hat OpenShift Service Mesh 구성을 참조하십시오.

    1. 생성을 클릭합니다. Operator는 구성 매개변수를 기반으로 pods, 서비스 및 Service Mesh Control Plane 구성 요소를 생성합니다.
  7. 컨트롤 플레인이 올바르게 설치되었는지 확인하려면 Istio Service Mesh Control Plane 탭을 클릭합니다.

    1. 새 컨트롤 플레인의 이름을 클릭합니다.
    2. 리소스 탭을 클릭하여 Operator가 생성 및 구성된 Red Hat OpenShift Service Mesh Control Plane 리소스를 확인합니다.

1.8.2. CLI를 사용하여 Service Mesh Control Plane 배포

명령줄에서 기본 ServiceMeshControlPlane을 배포할 수 있습니다.

사전 요구 사항

  • Red Hat OpenShift Service Mesh Operator가 설치되어 있어야 합니다.
  • OpenShift CLI(oc)에 액세스합니다.

프로세스

  1. cluster-admin 역할의 사용자로 OpenShift Container Platform CLI에 로그인합니다. Red Hat OpenShift Dedicated를 사용하는 경우 dedicated-admin 역할의 계정이 있어야 합니다.

    $ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
  2. istio-system이라는 프로젝트를 생성합니다.

    $ oc new-project istio-system
  3. 다음 예제를 사용하여 istio-installation.yaml이라는 ServiceMeshControlPlane 파일을 생성합니다. Service Mesh Control Plane의 버전에 따라 Operator 버전에 관계없이 사용 가능한 기능을 결정합니다.

    버전 2.3 istio-installation.yaml 예

    apiVersion: maistra.io/v2
    kind: ServiceMeshControlPlane
    metadata:
      name: basic
      namespace: istio-system
    spec:
      version: v2.3
      tracing:
        type: Jaeger
        sampling: 10000
      addons:
        jaeger:
          name: jaeger
          install:
            storage:
              type: Memory
        kiali:
          enabled: true
          name: kiali
        grafana:
          enabled: true

  4. 다음 명령을 실행하여 서비스 메시 컨트롤 플레인을 배포합니다. 여기서 < istio_installation.yaml >에는 파일에 대한 전체 경로가 포함됩니다.

    $ oc create -n istio-system -f <istio_installation.yaml>
  5. Pod 배포 진행 상황을 조사하려면 다음 명령을 실행합니다.

    $ oc get pods -n istio-system -w

    출력은 다음과 유사합니다.

    NAME                                   READY   STATUS    RESTARTS   AGE
    grafana-b4d59bd7-mrgbr                 2/2     Running   0          65m
    istio-egressgateway-678dc97b4c-wrjkp   1/1     Running   0          108s
    istio-ingressgateway-b45c9d54d-4qg6n   1/1     Running   0          108s
    istiod-basic-55d78bbbcd-j5556          1/1     Running   0          108s
    jaeger-67c75bd6dc-jv6k6                2/2     Running   0          65m
    kiali-6476c7656c-x5msp                 1/1     Running   0          43m
    prometheus-58954b8d6b-m5std            2/2     Running   0          66m

1.8.3. CLI를 사용하여 SMCP 설치 검증

명령줄에서 ServiceMeshControlPlane 생성을 검증할 수 있습니다.

프로세스

  1. cluster-admin 역할의 사용자로 OpenShift Container Platform CLI에 로그인합니다. Red Hat OpenShift Dedicated를 사용하는 경우 dedicated-admin 역할의 계정이 있어야 합니다.

    $ oc login https://<HOSTNAME>:6443
  2. 다음 명령을 실행하여 서비스 메시 컨트롤 플레인 설치를 확인합니다. 여기서 istio-system 은 Service Mesh Control Plane을 설치한 네임스페이스입니다.

    $ oc get smcp -n istio-system

    STATUS 열이 ComponentsReady인 경우 설치가 성공적으로 완료되었습니다.

    NAME    READY   STATUS            PROFILES      VERSION   AGE
    basic   10/10   ComponentsReady   ["default"]   2.1.1     66m

1.8.4. Kiali를 사용하여 SMCP 설치 검증

Kiali 콘솔을 사용하여 서비스 메시 설치를 검증할 수 있습니다. Kiali 콘솔은 서비스 메시 구성 요소가 올바르게 배포 및 구성되는 여러 가지 방법을 제공합니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에 cluster-admin 권한이 있는 사용자로 로그인합니다. Red Hat OpenShift Dedicated를 사용하는 경우 dedicated-admin 역할의 계정이 있어야 합니다.
  2. 네트워킹경로로 이동합니다.
  3. 경로 페이지의 네임스페이스 메뉴에서 Service Mesh Control Plane 프로젝트(예: istio-system )를 선택합니다.

    Location (위치) 열에는 각 경로의 연결된 주소가 표시됩니다.

  4. 필요한 경우 필터를 사용하여 Kiali 콘솔의 경로를 찾습니다. 경로 Location (위치)을 클릭하여 콘솔을 시작합니다.
  5. OpenShift로 로그인을 클릭합니다.

    Kiali 콘솔에 처음 로그인하면 볼 권한이 있는 서비스 메시의 모든 네임스페이스를 표시하는 개요 페이지가 표시됩니다. 개요 페이지에 여러 네임스페이스가 표시되면 Kiali에서 상태 또는 검증 문제가 있는 네임스페이스를 먼저 표시합니다.

    그림 1.1. Kiali 개요 페이지

    istio-system을 표시하는 Kiali 개요 페이지

    각 네임스페이스의 타일은 레이블 수, Istio Config 상태, 애플리케이션 상태 수, 네임스페이스의 트래픽 수 를 표시합니다. 콘솔 설치의 유효성을 검사하고 네임스페이스가 메시에 아직 추가되지 않은 경우 istio-system 이외의 데이터가 표시되지 않을 수 있습니다.

  6. Kiali에는 특히 Service Mesh Control Plane이 설치된 네임스페이스에 대한 4개의 대시보드가 있습니다. 이러한 대시보드를 보려면 컨트롤 플레인 네임스페이스의 타일에서 옵션 메뉴 kebab 를 클릭하고(예: istio-system ) 다음 옵션 중 하나를 선택합니다.

    • Istio 메시 대시보드
    • Istio 컨트롤 플레인 대시보드
    • Istio 성능 대시보드
    • Istio wsm Exetension 대시보드

      그림 1.2. Grafana Istio 컨트롤 플레인 대시보드

      info 샘플 프로젝트에 대한 데이터를 표시하는 Istio Control Plane Dashboard

      Kiali는 Grafana 페이지에서 사용할 수 있는 두 개의 추가 Grafana 대시보드도 설치합니다.

    • Istio 워크로드 대시보드
    • Istio 서비스 대시보드
  7. Service Mesh Control Plane 노드를 보려면 그래프 페이지를 클릭하고 메뉴에서 ServiceMeshControlPlane 을 설치한 네임스페이스 (예: istio-system )를 선택합니다.

    1. 필요한 경우 Display idle nodes 를 클릭합니다.
    2. Graph 페이지에 대한 자세한 내용을 보려면 그래프 둘러보기 링크를 클릭합니다.
    3. 메시 토폴로지를 보려면 네임스페이스 메뉴에서 서비스 메시 멤버 롤에서 하나 이상의 추가 네임스페이스를 선택합니다.
  8. istio-system 네임스페이스에서 애플리케이션 목록을 보려면 애플리케이션 페이지를 클릭합니다. Kiali는 애플리케이션의 상태를 표시합니다.

    1. 정보 아이콘 위에 마우스를 가져가면 Details 열에 언급된 추가 정보를 볼 수 있습니다.
  9. istio-system 네임스페이스에서 워크로드 목록을 보려면 워크로드 페이지를 클릭합니다. Kiali는 워크로드의 상태를 표시합니다.

    1. 정보 아이콘 위에 마우스를 가져가면 Details 열에 언급된 추가 정보를 볼 수 있습니다.
  10. istio-system 네임스페이스에서 서비스 목록을 보려면 서비스 페이지를 클릭합니다. Kiali는 서비스 및 구성의 상태를 표시합니다.

    1. 정보 아이콘 위에 마우스를 가져가면 Details 열에 언급된 추가 정보를 볼 수 있습니다.
  11. istio-system 네임스페이스에서 Istio Configuration 오브젝트 목록을 보려면 Istio Config 페이지를 클릭합니다. Kiali는 구성 상태를 표시합니다.

    1. 구성 오류가 있는 경우 행을 클릭하고 Kiali를 클릭하면 오류가 강조 표시된 상태에서 구성 파일을 엽니다.

1.8.5. Red Hat OpenShift Service on AWS(ROSA)에 설치

버전 2.2부터 Red Hat OpenShift Service Mesh는 AWS(ROSA)의 Red Hat OpenShift Service에 설치를 지원합니다. 이 섹션에서는 이 플랫폼에 서비스 메시를 설치할 때 추가 요구 사항을 설명합니다.

1.8.5.1. 설치 위치

Red Hat OpenShift Service Mesh를 설치하고 ServiceMeshControlPlane 을 생성할 때 새 네임스페이스(예: istio-system )를 생성해야 합니다.

1.8.5.2. 필수 Service Mesh Control Plane 구성

ServiceMeshControlPlane 파일의 기본 구성은 ROSA 클러스터에서 작동하지 않습니다. AWS의 Red Hat OpenShift Service에 설치할 때 기본 SMCP를 수정하고 spec.security.identity.type=Thirdparty 를 설정해야 합니다.

ROSA의 ServiceMeshControlPlane 리소스 예

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
  namespace: istio-system
spec:
  version: v2.3
  security:
    identity:
      type: ThirdParty  #required setting for ROSA
  tracing:
    type: Jaeger
    sampling: 10000
  policy:
    type: Istiod
  addons:
    grafana:
      enabled: true
    jaeger:
      install:
        storage:
          type: Memory
    kiali:
      enabled: true
    prometheus:
      enabled: true
  telemetry:
    type: Istiod

1.8.5.3. Kiali 구성에 제한 사항

AWS의 Red Hat OpenShift Service에는 리소스를 생성할 수 있는 추가 제한이 있으며 Red Hat 관리 네임스페이스에 Kiali 리소스를 생성할 수 없습니다.

즉, ROSA 클러스터에서 spec.deployment.accessible_namespaces 에 대한 다음과 같은 공통 설정을 허용하지 않습니다.

  • ['**'] (모든 네임스페이스)
  • default
  • codeready-*
  • openshift-*
  • redhat-*

검증 오류 메시지는 모든 제한된 네임스페이스의 전체 목록을 제공합니다.

ROSA의 Kiali 리소스 예

apiVersion: kiali.io/v1alpha1
kind: Kiali
metadata:
  name: kiali
  namespace: istio-system
spec:
  auth:
    strategy: openshift
  deployment:
    accessible_namespaces:   #restricted setting for ROSA
      - istio-system
    image_pull_policy: ''
    ingress_enabled: true
    namespace: istio-system

1.8.6. 추가 리소스

Red Hat OpenShift Service Mesh는 클러스터 내에서 여러 개의 독립적인 컨트롤 플레인을 지원합니다. ServiceMeshControlPlane 프로필을 사용하여 재사용 가능한 구성을 생성할 수 있습니다. 자세한 내용은 컨트롤 플레인 프로필 생성을 참조하십시오.

1.8.7. 다음 단계

ServiceMeshMemberRoll 리소스를 만들어 Service Mesh와 연결된 네임스페이스를 지정합니다. 자세한 내용은 서비스 메시에 서비스 추가를 참조하십시오.