2.3. 사이드카 삽입 활성화


사이드카 삽입 구성에 대한 다양한 접근 방식을 설명하기 위해 다음 절차에서는 Bookinfo 애플리케이션을 사용합니다.

사전 요구 사항

  • Red Hat OpenShift Service Mesh Operator를 설치하고 Istio 리소스를 생성했으며 Operator에서 Istio를 배포했습니다.
  • IstioCNI 리소스를 생성했으며 Operator에서 필요한 IstioCNI Pod를 배포했습니다.
  • 메시의 일부가 될 네임스페이스를 생성했으며 Istio 컨트롤 플레인에서 검색할 수 있습니다.
  • 선택 사항: 메시에 포함할 워크로드를 배포했습니다. 다음 예제에서 Bookinfo는 info 네임스페이스에 배포되었지만 사이드카 삽입(단계 5)은 구성되지 않았습니다.

2.3.1. 네임스페이스 라벨을 사용하여 사이드카 삽입 활성화

이 예에서 네임스페이스 내의 모든 워크로드는 사이드카 프록시 삽입을 수신하므로 네임스페이스의 대부분의 워크로드를 메시에 포함해야 하는 경우 최상의 접근 방식입니다.

프로세스

  1. 다음 명령을 사용하여 Istio 컨트롤 플레인의 버전 이름을 확인합니다.

    $ oc get istiorevisions

    다음 예와 유사한 출력이 표시됩니다.

    출력 예

    NAME      TYPE    READY   STATUS    IN USE   VERSION   AGE
    default   Local   True    Healthy   False    v1.23.0   4m57s

    버전 이름은 기본값이므로 정확한 버전 이름을 참조하지 않고 기본 삽입 레이블을 사용할 수 있습니다.

  2. 다음 명령을 사용하여 원하는 네임스페이스에서 이미 실행 중인 워크로드가 1/1 컨테이너를 READY 로 표시하는지 확인합니다. 이렇게 하면 Pod가 사이드카 없이 실행되고 있는지 확인합니다.

    $ oc get pods -n info

    다음 예와 유사한 출력이 표시됩니다.

    출력 예

    NAME                             READY   STATUS    RESTARTS   AGE
    details-v1-65cfcf56f9-gm6v7      1/1     Running   0          4m55s
    productpage-v1-d5789fdfb-8x6bk   1/1     Running   0          4m53s
    ratings-v1-7c9bd4b87f-6v7hg      1/1     Running   0          4m55s
    reviews-v1-6584ddcf65-6wqtw      1/1     Running   0          4m54s
    reviews-v2-6f85cb9b7c-w9l8s      1/1     Running   0          4m54s
    reviews-v3-6f5b775685-mg5n6      1/1     Running   0          4m54s

  3. info 네임스페이스에 injection 레이블을 적용하려면 CLI에서 다음 명령을 실행합니다.

    $ oc label namespace info istio-injection=enabled
    namespace/info labeled
  4. 사이드카 삽입이 적용되도록 하려면 info 네임스페이스에 기존 워크로드를 재배포합니다. 다음 명령을 사용하여 모든 워크로드의 롤링 업데이트를 수행합니다.

    $ oc -n info rollout restart deployments

검증

  1. 새 Pod에 2/2 컨테이너가 READY 로 표시되어 다음 명령을 실행하여 사이드카 삽입이 성공했는지 확인하여 롤아웃을 확인합니다.

    $ oc get pods -n info

    다음 예와 유사한 출력이 표시됩니다.

    출력 예

    NAME                              READY   STATUS    RESTARTS   AGE
    details-v1-7745f84ff-bpf8f        2/2     Running   0          55s
    productpage-v1-54f48db985-gd5q9   2/2     Running   0          55s
    ratings-v1-5d645c985f-xsw7p       2/2     Running   0          55s
    reviews-v1-bd5f54b8c-zns4v        2/2     Running   0          55s
    reviews-v2-5d7b9dbf97-wbpjr       2/2     Running   0          55s
    reviews-v3-5fccc48c8c-bjktn       2/2     Running   0          55sz

2.3.2. 메시에서 워크로드 제외

모든 워크로드에 대해 삽입이 활성화된 네임스페이스 내에서 사이드카 삽입에서 특정 워크로드를 제외할 수 있습니다.

참고

이 예제는 설명용으로만 사용됩니다. 정보 애플리케이션을 사용하려면 모든 워크로드가 적절한 기능을 위해 메시의 일부가 되어야 합니다.

프로세스

  1. 편집기에서 애플리케이션의 Deployment 리소스를 엽니다. 이 경우 ratings-v1 서비스를 제외합니다.
  2. 사이드카 삽입을 비활성화하려면 배포 리소스의 spec.template.metadata.labels 섹션을 수정하여 sidecar.istio.io/inject: false 레이블을 포함합니다.

    kind: Deployment
    apiVersion: apps/v1
    metadata:
    name: ratings-v1
    namespace: info
    labels:
      app: ratings
      version: v1
    spec:
      template:
        metadata:
          labels:
            sidecar.istio.io/inject: 'false'
    참고

    배포 의 최상위 레이블 섹션에 레이블을 추가해도 사이드카 삽입에는 영향을 미치지 않습니다.

    배포 업데이트로 롤아웃을 트리거하여 업데이트된 Pod를 사용하여 새 ReplicaSet을 생성합니다.

검증

  1. 업데이트된 Pod에 사이드카 컨테이너가 포함되어 있지 않은지 확인하고 다음 명령을 실행하여 1/1 컨테이너를 Running 으로 표시합니다.

    $ oc get pods -n info

    다음 예와 유사한 출력이 표시됩니다.

    출력 예

    NAME                              READY   STATUS    RESTARTS   AGE
    details-v1-6bc7b69776-7f6wz       2/2     Running   0          29m
    productpage-v1-54f48db985-gd5q9   2/2     Running   0          29m
    ratings-v1-5d645c985f-xsw7p       1/1     Running   0          7s
    reviews-v1-bd5f54b8c-zns4v        2/2     Running   0          29m
    reviews-v2-5d7b9dbf97-wbpjr       2/2     Running   0          29m
    reviews-v3-5fccc48c8c-bjktn       2/2     Running   0          29m

2.3.3. Pod 라벨을 사용하여 사이드카 삽입 활성화

이 방법을 사용하면 네임스페이스 내의 모든 워크로드에 적용하는 대신 사이드카 삽입을 위한 개별 워크로드를 포함할 수 있으므로, 일부 워크로드만 서비스 메시의 일부여야 하는 시나리오에 적합합니다. 이 예제에서는 my-mesh 라는 이름으로 Istio 리소스가 생성되는 사이드카 삽입의 버전 레이블을 사용하는 방법도 보여줍니다. 동일한 클러스터에 여러 Istio 컨트롤 플레인이 있거나 버전 기반 컨트롤 플레인 업그레이드 중에 고유한 Istio 리소스 이름이 필요합니다.

프로세스

  1. 다음 명령을 실행하여 Istio 컨트롤 플레인의 버전 이름을 확인합니다.

    $ oc get istiorevisions

    다음 예와 유사한 출력이 표시됩니다.

    출력 예

    NAME      TYPE    READY   STATUS    IN USE   VERSION   AGE
    my-mesh   Local   True    Healthy   False    v1.23.0   47s

    버전 이름은 my-mesh 이므로 버전 레이블 istio.io/rev=my-mesh 를 사용하여 사이드카 삽입을 활성화합니다.

  2. 다음 명령을 실행하여 이미 실행 중인 워크로드에 1/1 컨테이너가 READY 로 표시되어 사이드카 없이 Pod가 실행되고 있음을 나타내는지 확인합니다.

    $ oc get pods -n info

    다음 예와 유사한 출력이 표시됩니다.

    출력 예

    NAME                             READY   STATUS    RESTARTS   AGE
    details-v1-65cfcf56f9-gm6v7      1/1     Running   0          4m55s
    productpage-v1-d5789fdfb-8x6bk   1/1     Running   0          4m53s
    ratings-v1-7c9bd4b87f-6v7hg      1/1     Running   0          4m55s
    reviews-v1-6584ddcf65-6wqtw      1/1     Running   0          4m54s
    reviews-v2-6f85cb9b7c-w9l8s      1/1     Running   0          4m54s
    reviews-v3-6f5b775685-mg5n6      1/1     Running   0          4m54s

  3. 편집기에서 애플리케이션의 Deployment 리소스를 엽니다. 이 경우 ratings-v1 서비스를 업데이트합니다.
  4. 적절한 Pod 삽입 또는 버전 레이블을 포함하도록 배포spec.template.metadata.labels 섹션을 업데이트합니다. 이 경우 istio.io/rev: my-mesh:

    kind: Deployment
    apiVersion: apps/v1
    metadata:
    name: ratings-v1
    namespace: info
    labels:
      app: ratings
      version: v1
    spec:
      template:
        metadata:
          labels:
            istio.io/rev: my-mesh
    참고

    배포의 최상위 '레이블s 섹션에 레이블을 추가하면 사이드카 삽입에 영향을 미치지 않습니다.

    배포 업데이트로 롤아웃이 트리거되어 업데이트된 Pod를 사용하여 새 ReplicaSet을 생성합니다.

검증

  1. 다음 명령을 실행하여 사이드카가 성공적으로 삽입되었음을 나타내는 ratings-v1 Pod만 이제 2/2 컨테이너 READY 로 표시되는지 확인합니다.

    $ oc get pods -n info

    다음 예와 유사한 출력이 표시됩니다.

    출력 예

    NAME                              READY   STATUS    RESTARTS   AGE
    details-v1-559cd49f6c-b89hw       1/1     Running   0          42m
    productpage-v1-5f48cdcb85-8ppz5   1/1     Running   0          42m
    ratings-v1-848bf79888-krdch       2/2     Running   0          9s
    reviews-v1-6b7444ffbd-7m5wp       1/1     Running   0          42m
    reviews-v2-67876d7b7-9nmw5        1/1     Running   0          42m
    reviews-v3-84b55b667c-x5t8s       1/1     Running   0          42m

  2. 메시에 포함할 다른 워크로드에 대해 반복합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.