7.5. 각 메시에 애플리케이션 워크로드 배포


애플리케이션 워크로드를 배포하려면 각 워크로드를 별도의 네임스페이스에 할당합니다.

프로세스

  1. 다음 명령을 실행하여 app-ns-1 이라는 애플리케이션 네임스페이스를 생성합니다.

    $ oc create namespace app-ns-1
    Copy to Clipboard Toggle word wrap
  2. 첫 번째 컨트롤 플레인에서 네임스페이스를 검색하도록 다음 명령을 실행하여 istio-discovery=mesh-1 라벨을 추가합니다.

    $ oc label namespace app-ns-1 istio-discovery=mesh-1
    Copy to Clipboard Toggle word wrap
  3. 이 네임스페이스의 Pod가 첫 번째 컨트롤 플레인에 매핑되는 동안 기본적으로 모든 pod에 사이드카를 삽입하려면 다음 명령을 실행하여 istio.io/rev=mesh-1 레이블을 네임스페이스에 추가합니다.

    $ oc label namespace app-ns-1 istio.io/rev=mesh-1
    Copy to Clipboard Toggle word wrap
  4. 선택 사항: 다음 명령을 실행하여 mesh-1 리버전 이름을 확인할 수 있습니다.

    $ oc get istiorevisions
    Copy to Clipboard Toggle word wrap
  5. 다음 명령을 실행하여 sleephttpbin 애플리케이션을 배포합니다.

    $ oc apply -n app-ns-1 \
       -f https://raw.githubusercontent.com/openshift-service-mesh/istio/release-1.24/samples/sleep/sleep.yaml \
       -f https://raw.githubusercontent.com/openshift-service-mesh/istio/release-1.24/samples/httpbin/httpbin.yaml
    Copy to Clipboard Toggle word wrap
  6. 다음 명령을 실행하여 httpbinsleep pod가 삽입된 사이드카를 사용하여 실행될 때까지 기다립니다.

    $ oc get pods -n app-ns-1
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                       READY   STATUS    RESTARTS   AGE
    httpbin-7f56dc944b-kpw2x   2/2     Running   0          2m26s
    sleep-5577c64d7c-b5wd2     2/2     Running   0          91m
    Copy to Clipboard Toggle word wrap

  7. 다음 명령을 실행하여 app-ns-2 라는 두 번째 애플리케이션 네임스페이스를 생성합니다.

    $ oc create namespace app-ns-2
    Copy to Clipboard Toggle word wrap
  8. 다음 명령을 실행하여 app-ns-3 이라는 세 번째 애플리케이션 네임스페이스를 생성합니다.

    $ oc create namespace app-ns-3
    Copy to Clipboard Toggle word wrap
  9. 다음 명령을 실행하여 두 번째 컨트롤 플레인의 검색 선택기와 일치하도록 네임스페이스와 버전 버전 레이블 mesh-2 모두에 istio-discovery=mesh-2 레이블을 추가합니다.

    $ oc label namespace app-ns-2 app-ns-3 istio-discovery=mesh-2 istio.io/rev=mesh-2
    Copy to Clipboard Toggle word wrap
  10. 다음 명령을 실행하여 절전httpbin 애플리케이션을 app-ns-2 네임스페이스에 배포합니다.

    $ oc apply -n app-ns-2 \
       -f https://raw.githubusercontent.com/openshift-service-mesh/istio/release-1.24/samples/sleep/sleep.yaml \
       -f https://raw.githubusercontent.com/openshift-service-mesh/istio/release-1.24/samples/httpbin/httpbin.yaml
    Copy to Clipboard Toggle word wrap
  11. 다음 명령을 실행하여 절전httpbin 애플리케이션을 app-ns-3 네임스페이스에 배포합니다.

    $ oc apply -n app-ns-3 \
       -f https://raw.githubusercontent.com/openshift-service-mesh/istio/release-1.24/samples/sleep/sleep.yaml \
       -f https://raw.githubusercontent.com/openshift-service-mesh/istio/release-1.24/samples/httpbin/httpbin.yaml
    Copy to Clipboard Toggle word wrap
  12. 선택 사항: 다음 명령을 사용하여 배포를 사용할 수 있을 때까지 기다립니다.

    $ oc wait deployments -n app-ns-2 --all --for condition=Available
    Copy to Clipboard Toggle word wrap

검증

  1. 애플리케이션을 배포한 후 istioctl ps 명령을 사용하여 각 애플리케이션 워크로드가 할당된 컨트롤 플레인에 의해 관리되는지 확인합니다.

    1. 다음 명령을 실행하여 워크로드가 istio-system-1 의 컨트롤 플레인에 할당되었는지 확인합니다.

      $ istioctl ps -i istio-system-1
      Copy to Clipboard Toggle word wrap

      출력 예

      NAME                                  CLUSTER        CDS              LDS              EDS              RDS              ECDS        ISTIOD                            VERSION
      httpbin-7f56dc944b-vwfm5.app-ns-1     Kubernetes     SYNCED (11m)     SYNCED (11m)     SYNCED (11m)     SYNCED (11m)     IGNORED     istiod-mesh-1-b69646b6f-kxrwk     1.23.0
      sleep-5577c64d7c-d675f.app-ns-1       Kubernetes     SYNCED (11m)     SYNCED (11m)     SYNCED (11m)     SYNCED (11m)     IGNORED     istiod-mesh-1-b69646b6f-kxrwk     1.23.0
      Copy to Clipboard Toggle word wrap

    2. 다음 명령을 실행하여 워크로드가 istio-system-2 의 컨트롤 플레인에 할당되었는지 확인합니다.

      $ istioctl ps -i istio-system-2
      Copy to Clipboard Toggle word wrap

      출력 예

      NAME                                  CLUSTER        CDS                LDS                EDS                RDS                ECDS        ISTIOD                            VERSION
      httpbin-7f56dc944b-54gjs.app-ns-3     Kubernetes     SYNCED (3m59s)     SYNCED (3m59s)     SYNCED (3m59s)     SYNCED (3m59s)     IGNORED     istiod-mesh-2-8666fdfc6-mqp45     1.23.0
      httpbin-7f56dc944b-gnh72.app-ns-2     Kubernetes     SYNCED (4m1s)      SYNCED (4m1s)      SYNCED (3m59s)     SYNCED (4m1s)      IGNORED     istiod-mesh-2-8666fdfc6-mqp45     1.23.0
      sleep-5577c64d7c-k9mxz.app-ns-2       Kubernetes     SYNCED (4m1s)      SYNCED (4m1s)      SYNCED (3m59s)     SYNCED (4m1s)      IGNORED     istiod-mesh-2-8666fdfc6-mqp45     1.23.0
      sleep-5577c64d7c-m9hvm.app-ns-3       Kubernetes     SYNCED (4m1s)      SYNCED (4m1s)      SYNCED (3m59s)     SYNCED (4m1s)      IGNORED     istiod-mesh-2-8666fdfc6-mqp45     1.23.0
      Copy to Clipboard Toggle word wrap

  2. 애플리케이션 연결이 해당 메시 내의 워크로드로 제한되었는지 확인합니다.

    1. 다음 명령을 실행하여 통신이 실패하는지 확인하려면 app-ns-1sleep 포드에서 app-ns-2httpbin 서비스로 요청을 보냅니다.

      $ oc -n app-ns-1 exec deploy/sleep -c sleep -- curl -sIL http://httpbin.app-ns-2.svc.cluster.local:8000
      Copy to Clipboard Toggle word wrap

      이전에 생성된 PeerAuthentication 리소스는 각 메시 내의 STRICT 모드에서 상호 TLS(mTLS) 트래픽을 적용합니다. 각 메시는 istio-ca-root-cert 구성 맵에서 관리하는 자체 루트 인증서를 사용하여 메시 간 통신을 방지합니다. 출력은 다음 예와 유사한 통신 실패를 나타냅니다.

      출력 예

      HTTP/1.1 503 Service Unavailable
      content-length: 95
      content-type: text/plain
      date: Wed, 16 Oct 2024 12:05:37 GMT
      server: envoy
      Copy to Clipboard Toggle word wrap

    2. mesh-2 에서 관리하는 app-ns-2 네임스페이스에 있는 httpbin 서비스로 절전 포드에서 요청을 전송하여 통신이 작동하는지 확인합니다. 다음 명령을 실행합니다.

      $ oc -n app-ns-2 exec deploy/sleep -c sleep -- curl -sIL http://httpbin.app-ns-3.svc.cluster.local:8000
      Copy to Clipboard Toggle word wrap

      출력 예

      HTTP/1.1 200 OK
      access-control-allow-credentials: true
      access-control-allow-origin: *
      content-security-policy: default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' camo.githubusercontent.com
      content-type: text/html; charset=utf-8
      date: Wed, 16 Oct 2024 12:06:30 GMT
      x-envoy-upstream-service-time: 8
      server: envoy
      transfer-encoding: chunked
      Copy to Clipboard Toggle word wrap

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat