1.2. 서비스 메시 릴리스 노트

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

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

1.2.2. 새로운 기능 및 개선 사항

이 릴리스에는 다음 구성 요소 및 개념과 관련된 개선 사항이 추가되었습니다.

1.2.2.1. Red Hat OpenShift Service Mesh 버전 2.2.3 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures), 버그 수정, OpenShift Container Platform 4.9 이상에서 지원됩니다.

1.2.2.1.1. Red Hat OpenShift Service Mesh 버전 2.2.3에 포함된 구성 요소 버전
구성 요소버전

Istio

1.12.9

Envoy 프록시

1.20.8

Jaeger

1.36

Kiali

1.48.3

1.2.2.2. Red Hat OpenShift Service Mesh 버전 2.2.2 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures), 버그 수정, OpenShift Container Platform 4.9 이상에서 지원됩니다.

1.2.2.2.1. Red Hat OpenShift Service Mesh 버전 2.2.2에 포함된 구성 요소 버전
구성 요소버전

Istio

1.12.7

Envoy 프록시

1.20.6

Jaeger

1.36

Kiali

1.48.2-1

1.2.2.2.2. 경로 레이블 복사

이번 개선된 기능을 통해 주석 복사 외에도 OpenShift 경로의 특정 레이블을 복사할 수 있습니다. Red Hat OpenShift Service Mesh는 Istio Gateway 리소스에 있는 모든 레이블 및 주석( kubectl.kubernetes.io로 시작하는 주석 제외)을 관리형 OpenShift 경로 리소스에 복사합니다.

1.2.2.3. Red Hat OpenShift Service Mesh 버전 2.2.1 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures), 버그 수정, OpenShift Container Platform 4.9 이상에서 지원됩니다.

1.2.2.3.1. Red Hat OpenShift Service Mesh 버전 2.2.1에 포함된 구성 요소 버전
구성 요소버전

Istio

1.12.7

Envoy 프록시

1.20.6

Jaeger

1.34.1

Kiali

1.48.2-1

1.2.2.4. Red Hat OpenShift Service Mesh 2.2 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스에는 새로운 기능 및 개선 사항이 추가되어 OpenShift Container Platform 4.9 이상에서 지원됩니다.

1.2.2.4.1. Red Hat OpenShift Service Mesh 버전 2.2에 포함된 구성 요소 버전
구성 요소버전

Istio

1.12.7

Envoy 프록시

1.20.4

Jaeger

1.34.1

Kiali

1.48.0.16

1.2.2.4.2. WasmPlugin API

이번 릴리스에서는 WasmPlugin API를 지원하고 ServiceMeshExtention API를 더 이상 사용하지 않습니다.

1.2.2.4.3. ROSA 지원

이번 릴리스에서는 다중 클러스터 페더레이션을 포함하여 AWS(ROSA)의 Red Hat OpenShift에 대한 서비스 메시 지원을 도입했습니다.

1.2.2.4.4. Istio-node DaemonSet의 이름

이번 릴리스에서는 istio-node DaemonSet이 업스트림 Istio의 이름과 일치하도록 istio-cni-node 로 이름이 변경되었습니다.

1.2.2.4.5. Envoy 사이드카 네트워킹 변경

Istio 1.10은 기본적으로 lo 대신 eth0 을 사용하여 애플리케이션 컨테이너로 트래픽을 전송하도록 Envoy를 업데이트했습니다.

1.2.2.4.6. 서비스 메시 컨트롤 플레인 1.1

이번 릴리스에서는 모든 플랫폼의 서비스 메시 1.1을 기반으로 서비스 메시 컨트롤 플레인에 대한 지원 종료를 표시합니다.

1.2.2.4.7. Istio 1.12 지원

서비스 메시 2.2는 Istio 1.12를 기반으로 하며 새로운 기능 및 제품 개선 사항을 제공합니다. 많은 Istio 1.12 기능이 지원되지만 다음과 같은 지원되지 않는 기능을 고려해야 합니다.

  • AuthPolicy Dry Run은 기술 프리뷰 기능입니다.
  • gRPC 프록시 없는 서비스 메시는 기술 프리뷰 기능입니다.
  • Telemetry API는 기술 프리뷰 기능입니다.
  • 검색 선택기는 지원되는 기능이 아닙니다.
  • 외부 컨트롤 플레인은 지원되지 않습니다.
  • 게이트웨이 삽입은 지원되는 기능이 아닙니다.
1.2.2.4.8. Kubernetes 게이트웨이 API

Kubernetes Gateway API는 기본적으로 비활성화되어 있는 기술 프리뷰 기능입니다.

기능을 활성화하려면 ServiceMeshControlPlane 에서 Istiod 컨테이너에 대해 다음 환경 변수를 설정합니다.

spec:
  runtime:
    components:
      pilot:
        container:
          env:
            PILOT_ENABLE_GATEWAY_API: true
            PILOT_ENABLE_GATEWAY_API_STATUS: true
            # and optionally, for the deployment controller
            PILOT_ENABLE_GATEWAY_API_DEPLOYMENT_CONTROLLER: true

게이트웨이 API 리스너에 대한 경로 연결 제한은 SameNamespace 또는 All 설정을 사용하여 수행할 수 있습니다. Istio는 listeners.allowedRoutes.namespaces 의 라벨 선택기 사용을 무시하고 기본 동작(SameNamespace)으로 되돌립니다.

1.2.2.5. Red Hat OpenShift Service Mesh 2.1.5.1 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures), 버그 수정, OpenShift Container Platform 4.9 이상에서 지원됩니다.

1.2.2.5.1. Red Hat OpenShift Service Mesh 버전 2.1.5.1에 포함된 구성 요소 버전
구성 요소버전

Istio

1.9.9

Envoy 프록시

1.17.5

Jaeger

1.36

Kiali

1.36.13

1.2.2.6. Red Hat OpenShift Service Mesh 2.1.5 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures), 버그 수정, OpenShift Container Platform 4.9 이상에서 지원됩니다.

1.2.2.6.1. Red Hat OpenShift Service Mesh 버전 2.1.5에 포함된 구성 요소 버전
구성 요소버전

Istio

1.9.9

Envoy 프록시

1.17.1

Jaeger

1.36

Kiali

1.36.12-1

1.2.2.7. Red Hat OpenShift Service Mesh 2.1.4 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures) 및 버그 수정을 제공합니다.

1.2.2.7.1. Red Hat OpenShift Service Mesh 버전 2.1.4에 포함된 구성 요소 버전
구성 요소버전

Istio

1.9.9

Envoy 프록시

1.17.1

Jaeger

1.30.2

Kiali

1.36.12-1

1.2.2.8. Red Hat OpenShift Service Mesh 2.1.3 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures) 및 버그 수정을 제공합니다.

1.2.2.8.1. Red Hat OpenShift Service Mesh 버전 2.1.3에 포함된 구성 요소 버전
구성 요소버전

Istio

1.9.9

Envoy 프록시

1.17.1

Jaeger

1.30.2

Kiali

1.36.10-2

1.2.2.9. Red Hat OpenShift Service Mesh 2.1.2.1 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures) 및 버그 수정을 제공합니다.

1.2.2.9.1. Red Hat OpenShift Service Mesh 버전 2.1.2.1에 포함된 구성 요소 버전
구성 요소버전

Istio

1.9.9

Envoy 프록시

1.17.1

Jaeger

1.30.2

Kiali

1.36.9

1.2.2.10. Red Hat OpenShift Service Mesh 2.1.2 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures) 및 버그 수정을 제공합니다.

이번 릴리스에서는 Red Hat OpenShift distributed tracing platform Operator가 기본적으로 openshift-distributed-tracing 네임스페이스에 설치됩니다. 이전에는 기본 설치가 openshift-operator 네임스페이스에 있었습니다.

1.2.2.10.1. Red Hat OpenShift Service Mesh 버전 2.1.2에 포함된 구성 요소 버전
구성 요소버전

Istio

1.9.9

Envoy 프록시

1.17.1

Jaeger

1.30.1

Kiali

1.36.8

1.2.2.11. Red Hat OpenShift Service Mesh 2.1.1 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures) 및 버그 수정을 제공합니다.

이 릴리스에서는 네트워크 정책 자동 생성을 비활성화하는 기능도 추가되었습니다.

1.2.2.11.1. Red Hat OpenShift Service Mesh 버전 2.1.1에 포함된 구성 요소 버전
구성 요소버전

Istio

1.9.9

Envoy 프록시

1.17.1

Jaeger

1.24.1

Kiali

1.36.7

1.2.2.11.2. 네트워크 정책 비활성화

Red Hat OpenShift Service Mesh는 Service Mesh Control Plane 및 애플리케이션 네임스페이스에서 여러 NetworkPolicies 리소스를 자동으로 생성하고 관리합니다. 이는 애플리케이션과 컨트롤 플레인이 서로 통신할 수 있도록 하기 위한 것입니다.

예를 들어 회사 보안 정책을 적용하기 위해 NetworkPolicies 리소스의 자동 생성 및 관리를 비활성화하려면 이를 수행할 수 있습니다. ServiceMeshControlPlane 을 편집하여 spec.security.manageNetworkPolicy 설정을 false로 설정할 수 있습니다.

참고

spec.security.manageNetworkPolicy Red Hat OpenShift Service Mesh를 비활성화하면 NetworkPolicy 오브젝트가 생성되지 않습니다. 시스템 관리자는 네트워크를 관리하고 이로 인해 발생할 수 있는 문제를 수정할 책임이 있습니다.

절차

  1. OpenShift Container Platform 웹 콘솔에서 Operator설치된 Operator를 클릭합니다.
  2. 프로젝트 메뉴에서 Service Mesh Control Plane을 설치한 프로젝트(예: istio-system )를 선택합니다.
  3. Red Hat OpenShift Service Mesh Operator를 클릭합니다. Istio Service Mesh Control Plane 열에서 ServiceMeshControlPlane의 이름을 클릭합니다(예: basic-install).
  4. ServiceMeshControlPlane 세부 정보 만들기 페이지에서 YAML을 클릭하여 구성을 수정합니다.
  5. 이 예와 같이 ServiceMeshControlPlane 필드 spec.security.manageNetworkPolicyfalse 로 설정합니다.

    apiVersion: maistra.io/v2
    kind: ServiceMeshControlPlane
    spec:
      security:
          trust:
          manageNetworkPolicy: false
  6. 저장을 클릭합니다.

1.2.2.12. Red Hat OpenShift Service Mesh 2.1 새 기능 및 개선 사항

이번 Red Hat OpenShift Service Mesh 릴리스에는 OpenShift Container Platform 4.6 EUS, 4.7, 4.8, 4.9와 함께 Istio 1.9.8, Envoy 프록시 1.17.1, Jaeger 1.24.1 및 Kiali 1.36.5에 대한 지원이 추가되었습니다.

1.2.2.12.1. Red Hat OpenShift Service Mesh 버전 2.1에 포함된 구성 요소 버전
구성 요소버전

Istio

1.9.6

Envoy 프록시

1.17.1

Jaeger

1.24.1

Kiali

1.36.5

1.2.2.12.2. 서비스 메시 페더레이션

통합 서비스 메시를 지원하기 위해 새로운 CRD(Custom Resource Definitions)가 추가되었습니다. 동일한 클러스터 내에서 또는 다른 OpenShift 클러스터에서 서비스 메시를 모두 연결할 수 있습니다. 이러한 새 리소스는 다음과 같습니다.

  • ServiceMeshPeer - 게이트웨이 구성, 루트 신뢰 인증서 구성 및 상태 필드를 포함하여 별도의 서비스 메시와 페더레이션을 정의합니다. 연결된 메시 쌍에서 각 메시는 고유한 별도의 ServiceMeshPeer 리소스를 정의합니다.
  • ExportedServiceMeshSet - 피어 메시에 사용할 수 있는 지정된 ServiceMeshPeer 의 서비스를 정의합니다.
  • ImportedServiceSet - 피어 메시에서 가져온 ServiceMeshPeer 에 대한 서비스를 정의합니다. 이러한 서비스는 피어의 Exported ServiceMeshSet 리소스에서도 사용할 수 있어야 합니다.

서비스 메시 페더레이션은 ROSA(Red Hat OpenShift Service on AWS), Azure Red Hat OpenShift(ARO) 또는 OSD(OpenShift Dedicated)의 클러스터 간에 지원되지 않습니다.

1.2.2.12.3. OVN-Kubernetes CNI(Container Network Interface) 일반적으로 사용 가능

OVN-Kubernetes CNI(Container Network Interface)는 이전에 Red Hat OpenShift Service Mesh 2.0.1에서 기술 프리뷰 기능으로 도입되었으며 OpenShift Container Platform 4.7.32, OpenShift Container Platform 4.8.12 및 OpenShift Container Platform 4.9에서 일반적으로 Red Hat OpenShift Service Mesh 2.1 및 2.0.x에서 사용할 수 있습니다.

1.2.2.12.4. Service Mesh WebAssembly (WASM) 확장

2.0에서 기술 프리뷰로 처음 도입된 ServiceMeshExtensions CRD(Custom Resource Definition)를 이제 일반적으로 사용할 수 있습니다. CRD를 사용하여 고유한 플러그인을 빌드할 수 있지만 Red Hat은 사용자가 생성한 플러그인을 지원하지 않습니다.

Mixer는 Service Mesh 2.1에서 완전히 제거되었습니다. Mixer가 활성화된 경우 Service Mesh 2.0.x 릴리스에서 2.1로 업그레이드가 차단됩니다. Mixer 플러그인은 WebAssembly 확장에 포팅되어야 합니다.

1.2.2.12.5. 3scale WebAssembly Adapter (WASM)

Mixer가 공식적으로 제거된 상태에서 OpenShift Service Mesh 2.1은 3scale Mix 어댑터를 지원하지 않습니다. Service Mesh 2.1으로 업그레이드하기 전에 Mixer 기반 3scale 어댑터 및 추가 Mixer 플러그인을 제거하십시오. 그런 다음 ServiceMeshExtension 리소스를 사용하여 Service Mesh 2.1+를 사용하여 새 3scale WebAssembly 어댑터를 수동으로 설치하고 구성합니다.

3scale 2.11에는 WebAssembly 를 기반으로 업데이트된 Service Mesh 통합이 도입되었습니다.

1.2.2.12.6. Istio 1.9 지원

Service Mesh 2.1은 Istio 1.9를 기반으로 하며 많은 수의 새로운 기능과 제품 개선 사항을 제공합니다. 대부분의 Istio 1.9 기능은 지원되지만 다음과 같은 예외에 유의해야 합니다.

  • 가상 머신 통합이 아직 지원되지 않음
  • Kubernetes 게이트웨이 API가 아직 지원되지 않음
  • WebAssembly HTTP 필터의 원격 가져오기 및 로드는 아직 지원되지 않습니다.
  • Kubernetes CSR API를 사용한 사용자 정의 CA 통합은 아직 지원되지 않습니다.
  • 트래픽 모니터링을 위한 분류 요청은 기술 프리뷰 기능입니다.
  • 권한 부여 정책의 CUSTOM 작업을 통해 외부 권한 부여 시스템과의 통합은 기술 검토 기능입니다.
1.2.2.12.7. 서비스 메시 Operator 성능 개선

Red Hat OpenShift Service Mesh에서 모든 ServiceMeshControlPlane 조정이 끝나면 이전 리소스를 정리하는 데 사용하는 시간이 줄어듭니다. 그러면 ServiceMeshControlPlane 배포 속도가 빨라지고 기존 SMCP에 적용된 변경 사항이 보다 신속하게 적용됩니다.

1.2.2.12.8. Kiali 업데이트

Kiali 1.36에는 다음과 같은 기능 및 개선 사항이 포함되어 있습니다.

  • 서비스 메시 문제 해결 기능

    • 컨트롤 플레인 및 게이트웨이 모니터링
    • 프록시 동기화 상태
    • Envoy 구성 뷰
    • Envoy 프록시 및 애플리케이션 로그를 표시한 통합 보기
  • 페더레이션 서비스 메시 보기를 지원하기 위한 네임스페이스 및 클러스터 박스
  • 새로운 검증, 마법사 및 분산 추적 기능 개선 사항

1.2.2.13. Red Hat OpenShift Service Mesh 2.0.11.1 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures), 버그 수정, OpenShift Container Platform 4.9 이상에서 지원됩니다.

1.2.2.13.1. Red Hat OpenShift Service Mesh 버전 2.0.11.1에 포함된 구성 요소 버전
구성 요소버전

Istio

1.6.14

Envoy 프록시

1.14.5

Jaeger

1.36

Kiali

1.24.17

1.2.2.14. Red Hat OpenShift Service Mesh 2.0.11 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures), 버그 수정, OpenShift Container Platform 4.9 이상에서 지원됩니다.

1.2.2.14.1. Red Hat OpenShift Service Mesh 버전 2.0.11에 포함된 구성 요소 버전
구성 요소버전

Istio

1.6.14

Envoy 프록시

1.14.5

Jaeger

1.36

Kiali

1.24.16-1

1.2.2.15. Red Hat OpenShift Service Mesh 2.0.10 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures) 및 버그 수정을 제공합니다.

1.2.2.15.1. Red Hat OpenShift Service Mesh 버전 2.0.10에 포함된 구성 요소 버전
구성 요소버전

Istio

1.6.14

Envoy 프록시

1.14.5

Jaeger

1.28.0

Kiali

1.24.16-1

1.2.2.16. Red Hat OpenShift Service Mesh 2.0.9 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures) 및 버그 수정을 제공합니다.

1.2.2.16.1. Red Hat OpenShift Service Mesh 버전 2.0.9에 포함된 구성 요소 버전
구성 요소버전

Istio

1.6.14

Envoy 프록시

1.14.5

Jaeger

1.24.1

Kiali

1.24.11

1.2.2.17. Red Hat OpenShift Service Mesh 2.0.8 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 버그 수정을 해결합니다.

1.2.2.18. Red Hat OpenShift Service Mesh 2.0.7.1 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures)를 제공합니다.

1.2.2.18.1. Red Hat OpenShift Service Mesh가 URI 내용을 처리하는 방법의 변경

Red Hat OpenShift Service Mesh에는 원격으로 악용할 수 있는 취약점 CVE-2021-39156 이 포함되어 있습니다. 여기서 URI 경로에 있는 URI 끝에 있는 HTTP 요청은 Istio URI 경로 기반 권한 부여 정책을 무시할 수 있습니다. 예를 들어 Istio 권한 부여 정책은 URI 경로 /user/profile 으로 전송된 요청을 거부합니다. 취약한 버전에서 URI 경로 /user/profile#section1 이 있는 요청은 거부 정책 및 경로를 백엔드로 무시합니다(정규화된 URI 경로 /user/profile%23section1사용) 보안 문제로 이어질 수 있습니다.

DENY 작업 및 operation.paths 또는 ALLOW 작업 및 operation. notPaths 와 함께 권한 부여 정책을 사용하는 경우 이 취약점의 영향을 받습니다.

완화를 통해 요청 URI의 조각 부분은 권한 부여 및 라우팅 전에 제거됩니다. 이렇게 하면 URI의 내용이 있는 요청이 조각 부분 없이 URI를 기반으로 하는 권한 부여 정책을 바이패스하지 않습니다.

완화의 새 동작을 옵트아웃하려면 URI의 fragment 섹션이 유지됩니다. URI 내용을 유지하도록 ServiceMeshControlPlane 을 구성할 수 있습니다.

주의

새 동작을 비활성화하면 위에서 설명한 대로 경로를 정규화하고 안전하지 않은 것으로 간주됩니다. URI 내용을 유지하기 전에 모든 보안 정책에 사용할 수 있는지 확인합니다.

ServiceMeshControlPlane 수정 예

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  techPreview:
    meshConfig:
      defaultConfig:
        proxyMetadata: HTTP_STRIP_FRAGMENT_FROM_PATH_UNSAFE_IF_DISABLED: "false"

1.2.2.18.2. 권한 부여 정책에 필요한 업데이트

Istio는 호스트 이름 자체와 일치하는 포트 모두에 대한 호스트 이름을 생성합니다. 예를 들어 가상 서비스 또는 "httpbin.foo" 호스트의 게이트웨이는 "httpbin.foo 및 httpbin.foo:*"와 일치하는 구성을 생성합니다. 그러나 권한 부여 정책은 hosts 또는 notHosts 필드에 지정된 정확한 문자열과만 일치합니다.

호스트 또는 notHosts 를 결정하는 규칙에 대해 정확한 문자열 비교를 사용하여 AuthorizationPolicy 리소스가 있는 경우 클러스터가 영향을 받습니다.

정확한 일치 대신 접두사 일치를 사용하도록 권한 부여 정책 규칙을 업데이트해야 합니다. 예를 들어 첫 번째 AuthorizationPolicy 예제에서 ["httpbin.com"]hosts: ["httpbin.com:*"] 로 교체합니다.

접두사 일치를 사용하는 첫 번째 예제 AuthorizationPolicy

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: httpbin
  namespace: foo
spec:
  action: DENY
  rules:
  - from:
    - source:
        namespaces: ["dev"]
    to:
    - operation:
        hosts: [“httpbin.com”,"httpbin.com:*"]

접두사 일치를 사용하는 AuthorizationPolicy의 두 번째 예

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: httpbin
  namespace: default
spec:
  action: DENY
  rules:
  - to:
    - operation:
        hosts: ["httpbin.example.com:*"]

1.2.2.19. Red Hat OpenShift Service Mesh 2.0.7 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures) 및 버그 수정을 제공합니다.

1.2.2.20. Red Hat OpenShift Dedicated 및 Microsoft Azure Red Hat OpenShift의 Red Hat OpenShift Service Mesh

Red Hat OpenShift Service Mesh는 이제 Red Hat OpenShift Dedicated 및 Microsoft Azure Red Hat OpenShift를 통해 지원됩니다.

1.2.2.21. Red Hat OpenShift Service Mesh 2.0.6 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures) 및 버그 수정을 제공합니다.

1.2.2.22. Red Hat OpenShift Service Mesh 2.0.5 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures) 및 버그 수정을 제공합니다.

1.2.2.23. Red Hat OpenShift Service Mesh 2.0.4 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures) 및 버그 수정을 제공합니다.

중요

CVE-2021-29492 및 CVE-2021-31920 문제를 해결하려면 수동 단계가 완료되어야 합니다.

1.2.2.23.1. CVE-2021-29492 및 CVE-2021-31920에서 필요한 수동 업데이트

Istio에는 경로 기반 권한 부여 규칙이 사용될 때 여러 슬래시 또는 이스케이프된 슬래시 문자(%2F 또는 %5C)가 있는 HTTP 요청 경로가 잠재적으로 Istio 권한 부여 정책을 우회할 수 있는 원격으로 악용 가능한 취약점이 포함되어 있습니다.

예를 들어 Istio 클러스터 관리자가 경로 /admin에 있는 요청을 거부하도록 권한 부여 DENY 정책을 정의한다고 가정합니다. //admin URL 경로에 전송된 요청이 권한 부여 정책에서 거부되지 않습니다.

RFC 3986에 따르면 여러 개의 슬래시가 있는 //admin 경로는 기술적으로 /admin과 다른 경로로 처리되어야 합니다. 그러나 일부 백엔드 서비스는 여러 슬래시를 단일 슬래시로 병합하여 URL 경로를 정규화하도록 선택합니다. 이로 인해 권한 부여 정책( //admin/admin과 일치하지 않음)을 우회할 수 있으며 사용자는 백엔드의 /admin 경로에 있는 리소스에 액세스할 수 있습니다. 결과적으로 이는 보안 문제로 나타날 수 있습니다.

ALLOW action + notPaths 필드 또는 DENY action + paths field 경로 필드 패턴을 사용하는 권한 부여 정책이 있는 경우 클러스터는 이 취약점의 영향을 받습니다. 이러한 패턴은 예기치 않은 정책 우회에 취약합니다.

다음과 같은 경우 클러스터는 이 취약점의 영향을 받지 않습니다.

  • 권한 부여 정책이 없습니다.
  • 권한 부여 정책은 paths 또는 notPaths 필드를 정의하지 않습니다.
  • 권한 부여 정책은 ALLOW action + paths 필드 또는 DENY action + notPaths 필드 패턴을 사용합니다. 이러한 패턴은 정책 우회 대신 예기치 않은 거부를 유발할 수 있습니다. 이러한 경우 업그레이드는 선택 사항입니다.
참고

경로 정규화를 위한 Red Hat OpenShift Service Mesh 구성 위치는 Istio 구성과 다릅니다.

1.2.2.23.2. 경로 정규화 구성 업데이트

Istio 권한 부여 정책은 HTTP 요청의 URL 경로를 기반으로 할 수 있습니다. URI 정규화라고도 하는 경로 정규화는 들어오는 요청의 경로를 수정 및 표준화하여 정규화된 경로를 표준 방식으로 처리할 수 있도록 합니다. 구문적으로 경로 정규화 후에는 다른 경로가 동일할 수 있습니다.

Istio는 권한 부여 정책에 대해 평가하고 요청을 라우팅하기 전에 요청 경로에서 다음 정규화 체계를 지원합니다.

표 1.1. 정규화 체계

옵션설명예제참고

NONE

정규화는 수행되지 않습니다. Envoy가 수신한 모든 항목은 정확히 그대로 모든 백엔드 서비스에 전달됩니다.

../%2FA../b는 권한 부여 정책에 의해 평가되고 서비스로 전송됩니다.

이 설정은 CVE-2021-31920에 취약합니다.

BASE

현재 이는 Istio의 기본 설치에 사용되는 옵션입니다. 이로 인해 Envoy 프록시에 normalize_path 옵션을 적용하며, RFC 3986에 따라 백슬래시를 슬래시로 변환하는 추가 정규화를 따릅니다.

/a/../b/b 로 정규화됩니다.\da/da 로 정규화됩니다.

이 설정은 CVE-2021-31920에 취약합니다.

MERGE_SLASHES

BASE 정규화 후 슬래시가 병합됩니다.

/a//b/a/b로 정규화됩니다.

CVE-2021-31920을 완화하려면 이 설정으로 업데이트합니다.

DECODE_AND_MERGE_SLASHES

기본적으로 모든 트래픽을 허용할 때 가장 엄격한 설정입니다. 이 설정은 권한 부여 정책 경로를 철저하게 테스트해야 한다는 경고와 함께 권장됩니다. 백분율로 인코딩된 슬래시 및 백슬래시 문자 (%2F, %2f, %5C%5c)는 MERGE_SLASHES 정규화 전에 / 또는 \로 디코딩됩니다.

/a%2fb/a/b로 정규화됩니다.

CVE-2021-31920을 완화하려면 이 설정으로 업데이트합니다. 이 설정은 더 안전하지만 애플리케이션이 중단될 수도 있습니다. 프로덕션에 배포하기 전에 애플리케이션을 테스트합니다.

정규화 알고리즘은 다음 순서로 수행됩니다.

  1. 백분율로 디코딩된 %2F, %2f, %5C%5c.
  2. Envoy의 normalize_path 옵션에 의해 구현된 RFC 3986 및 기타 정규화입니다.
  3. 슬래시를 병합합니다.
주의

이러한 정규화 옵션은 HTTP 표준 및 일반적인 업계 관행의 권장 사항을 나타내지만 애플리케이션은 원하는 방식으로 URL을 해석할 수 있습니다. 거부 정책을 사용할 때 애플리케이션이 작동하는 방식을 이해해야 합니다.

1.2.2.23.3. 경로 정규화 구성 예

Envoy는 백엔드 서비스의 기대치와 일치하도록 요청 경로를 표준화하여 시스템 보안에 매우 중요합니다. 다음 예제는 시스템을 구성하기 위한 참조로 사용할 수 있습니다. 정규화된 URL 경로 또는 NONE이 선택된 경우 원래 URL 경로는 다음과 같습니다.

  1. 권한 부여 정책을 확인하는 데 사용됩니다.
  2. 백엔드 애플리케이션으로 전달됩니다.

표 1.2. 구성 예

애플리케이션 조건선택…​

프록시를 사용하여 정규화를 수행합니다.

BASE,MERGE_SLASHES 또는 DECODE_AND_MERGE_SLASHES

RFC 3986을 기반으로 요청 경로를 정규화하고 슬래시를 병합하지 않습니다.

BASE

RFC 3986을 기반으로 요청 경로를 정규화하고 슬래시를 병합하지만 백분율로 인코딩된 슬래시를 디코딩하지는 않습니다.

MERGE_SLASHES

RFC 3986을 기반으로 요청 경로를 표준화하고, 백분율로 인코딩된 슬래시를 디코딩하고, 슬래시를 병합합니다.

DECODE_AND_MERGE_SLASHES

프로세스는 RFC 3986과 호환되지 않는 방식으로 요청 경로를 처리합니다.

NONE

1.2.2.23.4. 경로 정규화를 위해 SMCP 구성

Red Hat OpenShift Service Mesh에 대한 경로 정규화를 구성하려면 ServiceMeshControlPlane에서 다음을 지정합니다. 시스템 설정을 결정하는 데 도움이 되도록 구성 예제를 사용합니다.

SMCP v2 pathNormalization

spec:
  techPreview:
    global:
      pathNormalization: <option>

1.2.2.23.5. 케이스 정규화를 위한 설정

일부 환경에서는 대/소문자를 구분하지 않는 권한 부여 정책의 경로를 사용하는 것이 유용할 수 있습니다. 예를 들어 https://myurl/gethttps://myurl/GeT을 동일한 방법으로 처리합니다. 이 경우 아래에 표시된 EnvoyFilter를 사용할 수 있습니다. 이 필터는 비교에 사용되는 경로와 애플리케이션에 제공되는 경로를 모두 변경합니다. 이 예제에서 istio-system 은 Service Mesh Control Plane 프로젝트의 이름입니다.

EnvoyFilter 를 파일에 저장하고 다음 명령을 실행합니다.

$ oc create -f <myEnvoyFilterFile>
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: ingress-case-insensitive
  namespace: istio-system
spec:
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: "envoy.filters.network.http_connection_manager"
            subFilter:
              name: "envoy.filters.http.router"
    patch:
      operation: INSERT_BEFORE
      value:
        name: envoy.lua
        typed_config:
            "@type": "type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua"
            inlineCode: |
              function envoy_on_request(request_handle)
                local path = request_handle:headers():get(":path")
                request_handle:headers():replace(":path", string.lower(path))
              end

1.2.2.24. Red Hat OpenShift Service Mesh 2.0.3의 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures) 및 버그 수정을 제공합니다.

또한 이 릴리스에는 다음과 같은 새로운 기능이 있습니다.

  • 지정된 Service Mesh Control Plane 네임스페이스에서 정보를 수집하는 옵션을 must-gather 데이터 수집 툴에 추가했습니다. 자세한 내용은 OSSM-351을 참조하십시오.
  • 수백 개의 네임스페이스를 사용하여 Service Mesh Control Plane의 성능 향상

1.2.2.25. Red Hat OpenShift Service Mesh 2.0.2 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스에는 IBM Z 및 IBM Power Systems에 대한 지원이 추가되었습니다. 또한 CVE(Common Vulnerabilities and Exposures) 및 버그 수정을 제공합니다.

1.2.2.26. Red Hat OpenShift Service Mesh 2.0.1 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스는 CVE(Common Vulnerabilities and Exposures) 및 버그 수정을 제공합니다.

1.2.2.27. Red Hat OpenShift Service Mesh 2.0 새 기능

이번 Red Hat OpenShift Service Mesh 릴리스에는 Istio 1.6.5, Jaeger 1.20.0, Kiali 1.24.2, 3scale Istio Adapter 2.0 및 OpenShift Container Platform 4.6에 대한 지원이 추가되었습니다.

또한 이 릴리스에는 다음과 같은 새로운 기능이 있습니다.

  • Service Mesh Control Plane의 설치, 업그레이드 및 관리를 간소화합니다.
  • Service Mesh Control Plane의 리소스 사용량과 시작 시간을 줄입니다.
  • 네트워크를 통한 상호 컨트롤 플레인 통신을 줄임으로써 성능을 향상시킵니다.

    • Envoy의 SDS(Secret Discovery Service)에 대한 지원을 추가합니다. SDS는 Envoy 사이드 카 프록시에 시크릿을 전달하기 위한 보다 안전하고 효율적인 메커니즘입니다.
  • 잘 알려진 보안 위험이 있는 Kubernetes Secrets를 사용할 필요가 없습니다.
  • 새 인증서를 인식하기 위해 프록시를 다시 시작할 필요가 없으므로 인증서 순환 중에 성능이 향상됩니다.

    • WebAssembly 확장을 사용하여 구축된 Istio의 Telemetry v2 아키텍처에 대한 지원이 추가되었습니다. 이 새로운 아키텍처는 상당한 성능 향상을 가져왔습니다.
    • 서비스 메시 컨트롤 플레인을 보다 쉽게 관리할 수 있도록 간소화된 구성으로 ServiceMeshControlPlane 리소스를 v2로 업데이트합니다.
    • WebAssembly 확장을 기술 프리뷰 기능으로 도입합니다.

1.2.3. 기술 프리뷰

이 릴리스의 일부 기능은 현재 기술 프리뷰 단계에 있습니다. 이러한 실험적 기능은 프로덕션용이 아닙니다.

중요

기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 지원 범위를 참조하십시오.

1.2.3.1. Istio 호환성 및 지원 매트릭스

아래 표에서 기능은 다음과 같은 상태로 표시되어 있습니다.

  • TP: 기술 프리뷰
  • GA: 정식 출시일 (GA)

해당 기능은 Red Hat Customer Portal의 지원 범위를 참조하십시오.

표 1.3. Istio 호환성 및 지원 매트릭스

기능Istio 버전지원 상태설명

holdApplicationUntilProxyStarts

1.7

TP

프록시가 실행될 때까지 애플리케이션 컨테이너 시작을 차단합니다.

DNS 캡처

1.8

GA

기본적으로 사용하도록 설정

1.2.4. 사용되지 않거나 삭제된 기능

이전 릴리스에서 사용 가능하던 일부 기능이 더 이상 사용되지 않거나 삭제되었습니다.

더 이상 사용되지 않는 기능은 여전히 OpenShift Container Platform에 포함되어 있으며 계속 지원됩니다. 그러나 이 기능은 향후 릴리스에서 제거될 예정이므로 새로운 배포에는 사용하지 않는 것이 좋습니다.

제거된 기능은 제품에 더 이상 존재하지 않습니다.

1.2.4.1. Red Hat OpenShift Service Mesh 2.2의 더 이상 사용되지 않는 기능

ServiceMeshExtension API는 릴리스 2.2로 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다. ServiceMeshExtension API는 릴리스 2.2에서 계속 지원되지만 고객은 새 wasmPlugin API로 이동하기 시작해야 합니다.

1.2.4.2. Red Hat OpenShift Service Mesh 2.2 삭제된 기능

이번 릴리스에서는 모든 플랫폼의 Service Mesh 1.1을 기반으로 하는 Service Mesh Control Plane에 대한 지원 종료를 표시합니다.

1.2.4.3. Red Hat OpenShift Service Mesh 2.1 삭제된 기능

Service Mesh 2.1에서는 Mixer 구성 요소가 제거됩니다. 버그 수정 및 지원은 Service Mesh 2.0 라이프 사이클 종료를 통해 제공됩니다.

Mixer 플러그인이 활성화된 경우 Service Mesh 2.0.x 릴리스에서 2.1로 업그레이드할 수 없습니다. Mixer 플러그인은 WebAssembly 확장에 포팅해야 합니다.

1.2.4.4. Red Hat OpenShift Service Mesh 2.0의 중단된 기능

Mixer 구성 요소는 릴리스 2.0에서 더 이상 사용되지 않으며 릴리스 2.1에서 제거될 예정입니다. Mixer를 사용한 확장 구현은 릴리스 2.0에서 계속 지원되지만, 확장은 새로운 WebAssembly 메커니즘으로 마이그레이션되어야 합니다.

다음 리소스 유형은 Red Hat OpenShift Service Mesh 2.0에서 더 이상 지원되지 않습니다.

  • Policy(authentication.istio.io/v1alpha1)은 더 이상 지원되지 않습니다. 정책 리소스의 특정 구성에 따라 동일한 효과를 달성하기 위해 여러 리소스를 구성해야 할 수 있습니다.

    • RequestAuthentication(security.istio.io/v1beta1) 사용
    • PeerAuthentication(security.istio.io/v1beta1) 사용
  • ServiceMeshPolicy(maistra.io/v1)는 더 이상 지원되지 않습니다.

    • 위에서 언급한 것처럼 RequestAuthentication 또는 PeerAuthentication 을 사용하지만 Service Mesh Control Plane 네임스페이스에 배치합니다.
  • RbacConfig(rbac.istio.io/v1alpha1)는 더 이상 지원되지 않습니다.

    • RbacConfig, ServiceRole, 및 ServiceRoleBinding을 포함하는 AuthorizationPolicy(security.istio.io/v1beta1)로 대체됩니다.
  • ServiceMeshRbacConfig(maistra.io/v1)는 더 이상 지원되지 않습니다.

    • 위의 대로 AuthorizationPolicy 를 사용하지만 Service Mesh Control Plane 네임스페이스에 배치합니다.
  • ServiceRole(rbac.istio.io/v1alpha1)은 더 이상 지원되지 않습니다.
  • ServiceRoleBinding(rbac.istio.io/v1alpha1)은 더 이상 지원되지 않습니다.
  • Kiali에서는 loginLDAP 전략이 더 이상 사용되지 않습니다. 향후 버전에서는 OpenID 공급자를 사용한 인증을 도입할 예정입니다.

1.2.5. 확인된 문제

이러한 제한 사항은 Red Hat OpenShift Service Mesh에 있습니다.

  • Red Hat OpenShift Service Mesh는 업스트림 Istio 프로젝트에서 완전히 지원되지 않기 때문에 IPv6를 지원하지 않습니다. 결과적으로 Red Hat OpenShift Service Mesh는 듀얼 스택 클러스터를 지원하지 않습니다.
  • 그래프 레이아웃 - 애플리케이션 아키텍처 및 표시할 데이터(그래프 노드 및 상호 작용 수)에 따라 Kiali 그래프의 레이아웃이 다르게 렌더링됩니다. 모든 상황에 적합하게 렌더링되는 단일 레이아웃을 만드는 것이 불가능하지는 않지만 어렵기 때문에 Kiali는 다양한 레이아웃 옵션을 제공합니다. 다른 레이아웃을 선택하려면 그래프 설정 메뉴에서 다른 레이아웃 스키마를 선택할 수 있습니다.
  • Kiali 콘솔에서 분산 추적 플랫폼 및 Grafana와 같은 관련 서비스에 처음 액세스하는 경우 인증서를 수락하고 OpenShift Container Platform 로그인 인증 정보를 사용하여 다시 인증해야 합니다. 이것은 프레임워크가 콘솔에 포함된 페이지를 표시하는 방법에 문제가 있기 때문입니다.
  • Bookinfo 샘플 애플리케이션은 IBM Z 및 IBM Power에 설치할 수 없습니다.
  • WebAssembly 확장은 IBM Z 및 IBM Power에서 지원되지 않습니다.
  • LuaJIT는 IBM Power에서 지원되지 않습니다.

1.2.5.1. 서비스 메시의 알려진 문제

이는 Red Hat OpenShift Service Mesh에서 알려진 문제입니다.

  • Istio-14743 이 Red Hat OpenShift Service Mesh 릴리스의 기반이 되는 Istio 버전의 제한으로 인해 현재 Service Mesh와 호환되지 않는 애플리케이션이 있을 수 있습니다. 자세한 내용은 링크 커뮤니티 관련 문제를 참조하십시오.
  • OSSM-1655 Kiali 대시보드에 SMCP 에서 mTLS를 활성화한 후 오류가 표시됩니다.

    SMCP에서 spec.security.controlPlane.mtls 설정을 활성화하면 Kiali 콘솔에 다음과 같은 오류 메시지가 표시됩니다. No subsets defined.

  • OSSM-1505 이 문제는 OpenShift Container Platform 4.11에서 ServiceMeshExtension 리소스를 사용하는 경우에만 발생합니다. OpenShift Container Platform 4.11에서 ServiceMeshExtension 를 사용하면 리소스가 준비되지 않습니다. oc describe ServiceMeshExtension 를 사용하여 문제를 검사하면 다음 오류가 표시됩니다. stderr: pivot: function not implemented 전에 마운트 네임스페이스를 생성하는 동안 오류가 발생했습니다.

    해결방법: ServiceMeshExtension 는 Service Mesh 2.2에서 더 이상 사용되지 않습니다. ServiceMeshExtension 에서 WasmPlugin 리소스로 마이그레이션합니다. 자세한 내용은 ServiceMeshExtension 에서 wasmPlugin 리소스로 마이그레이션 을 참조하십시오.

  • OSSM-1396 게이트웨이 리소스에 ServiceMeshControlPlane 을 업데이트할 때 다시 생성하는 대신 spec.externalIPs 설정이 포함된 경우 게이트웨이가 제거되고 다시 생성되지 않습니다.
  • OSSM-1168 서비스 메시 리소스가 단일 YAML 파일로 생성되면 Envoy 프록시 사이드카가 Pod에 안정적으로 삽입되지 않습니다. SMCP, SMMR 및 Deployment 리소스가 개별적으로 생성되면 배포가 예상대로 작동합니다.
  • OSSM-1052 서비스 메시 컨트롤 플레인에서 ingressgateway에 대해 서비스 ExternalIP 를 구성할 때 서비스가 생성되지 않습니다. SMCP의 스키마에 서비스 매개변수가 누락되어 있습니다.

    해결방법: SMCP 사양에서 게이트웨이 생성을 비활성화하고 서비스, 역할 및 RoleBinding을 포함하여 완전히 수동으로 게이트웨이 배포를 관리합니다.

  • OSSM-882 이는 서비스 메시 2.1 및 이전 버전에 적용됩니다. namespace는 accessible_namespace 목록에 있지만 Kiali UI에는 표시되지 않습니다. 기본적으로 Kiali는 이러한 네임스페이스는 일반적으로 메시의 일부가 아닌 내부 용도로만 사용되므로 "kube"로 시작하는 네임스페이스는 표시되지 않습니다.

    예를 들어 'akube-a'라는 네임스페이스를 생성하여 Service Mesh 멤버 롤에 추가하면 Kiali UI에서 네임스페이스를 표시하지 않습니다. 정의된 제외 패턴의 경우 소프트웨어는 패턴으로 시작하거나 포함하는 네임스페이스를 제외합니다.

    해결방법: Kiali 사용자 정의 리소스 설정을 변경하여 설정 앞에 캐스(^)를 지정합니다. 예를 들면 다음과 같습니다.

    api:
      namespaces:
        exclude:
        - "^istio-operator"
        - "^kube-.*"
        - "^openshift.*"
        - "^ibm.*"
        - "^kiali-operator"
  • MAISTRA-2692 Mixer가 제거된 경우 Service Mesh 2.0.x에 정의된 사용자 지정 지표를 2.1에서 사용할 수 없습니다. 사용자 지정 지표는 EnvoyFilter 를 사용하여 구성할 수 있습니다. 명시적으로 문서화된 경우를 제외하고 Red Hat은 EnvoyFilter 구성을 지원할 수 없습니다. 이는 기본 Envoy API와 긴밀하게 결합되므로 이전 버전과의 호환성을 유지할 수 없습니다.
  • MAISTRA-2648 ServiceMeshExtensions 는 현재 IBM Z Systems에 배포된 메시와 호환되지 않습니다.
  • MAISTRA-1959 2.0으로 마이그레이션 mTLS가 활성화된 경우 Prometheus 스크래핑(spec.addons.prometheus.scrapetrue로 설정)이 작동하지 않습니다. 또한 Kiali는 mTLS가 비활성화되면 관련 없는 그래프 데이터를 표시합니다.

    이 문제는 프록시 구성에서 포트 15020을 제외하여 해결할 수 있습니다. 예를 들면 다음과 같습니다.

    spec:
      proxy:
        networking:
          trafficControl:
            inbound:
              excludedPorts:
              - 15020
  • MAISTRA-1314 Red Hat OpenShift Service Mesh는 IPv6를 지원하지 않습니다.
  • MAISTRA-453 새 프로젝트를 생성하고 즉시 pod를 배포하면 사이드카 삽입이 발생하지 않습니다. pod가 생성되기 전에 Operator에서 maistra.io/member-of를 추가하지 못하므로 사이드카 삽입을 수행하려면 pod를 삭제하고 다시 생성해야 합니다.
  • MAISTRA-158 동일한 호스트 이름을 참조하는 여러 게이트웨이를 적용하면 모든 게이트웨이가 작동을 중지합니다.

1.2.5.2. Kiali의 확인된 문제

참고

Kiali의 새로운 문제는 OpenShift Service Mesh 프로젝트에서 생성되어야 하며 ComponentKiali로 설정되어야 합니다.

다음은 Kiali에서 알려진 문제입니다.

  • KIALI-2206 처음으로 Kiali 콘솔에 액세스했을 때 Kiali에 대해 캐시된 브라우저 데이터가 없는 경우 Kiali 서비스 상세 정보 페이지의 Metrics 탭에 있는 ‘Grafana에서 보기’ 링크가 잘못된 위치로 리디렉션됩니다. 이 문제가 발생하는 유일한 상황은 Kiali에 처음 액세스하는 경우입니다.
  • KIALI-507 Kiali는 Internet Explorer 11을 지원하지 않습니다. 기본 프레임워크가 Internet Explorer를 지원하지 않기 때문입니다. Kiali 콘솔에 액세스하려면 Chrome, Edge, Firefox 또는 Safari 브라우저의 두 가지 최신 버전 중 하나를 사용하십시오.

1.2.5.3. Red Hat OpenShift distributed tracing 알려진 문제

이러한 제한 사항은 Red Hat OpenShift distributed tracing에 있습니다.

  • Apache Spark가 지원되지 않습니다.
  • AMQ/Kafka를 통한 스트리밍 배포는 IBM Z 및 IBM Power Systems에서는 지원되지 않습니다.

다음은 Red Hat OpenShift distributed tracing에 대해 알려진 문제입니다.

  • TRACING-2057 Kafka API가 Strimzi Kafka Operator 0.23.0을 지원하도록 v1beta2로 업데이트되었습니다. 그러나 이 API 버전은 AMQ Streams 1.6.3에서 지원되지 않습니다. 다음 환경의 경우 Jaeger 서비스가 업그레이드되지 않으며 새 Jaeger 서비스를 생성하거나 기존 Jaeger 서비스를 수정할 수 없습니다.

    • Jaeger Operator 채널: 1.17.x stable 또는 1.20.x stable
    • AMQ Streams Operator 채널: amq-streams-1.6.x

      이 문제를 해결하려면 AMQ Streams Operator의 서브스크립션 채널을 amq-streams-1.7.x 또는 stable로 전환합니다.

1.2.6. 수정된 문제

현재 릴리스에서 다음 문제가 해결되었습니다.

1.2.6.1. 서비스 메시의 수정된 문제

  • OSSM-2053 Red Hat OpenShift Service Mesh Operator 2.2 또는 2.3을 사용하는 경우 SMMR 컨트롤러가 SMMR.status.configuredMembers 에서 멤버 네임스페이스를 제거했습니다. 이로 인해 몇 분 동안 멤버 네임스페이스의 서비스를 사용할 수 없게 되었습니다.

    Red Hat OpenShift Service Mesh Operator 2.2 또는 2.3을 사용하면 SMMR 컨트롤러에서 더 이상 SMMR.status.configuredMembers 의 네임스페이스를 제거하지 않습니다. 대신 컨트롤러는 SMMR.status.pendingMembers 에 네임스페이스를 추가하여 해당 네임스페이스가 최신 상태가 되지 않음을 나타냅니다. 조정 중에 각 네임스페이스가 SMCP와 동기화되므로 네임스페이스는 SMMR.status.pendingMembers 에서 자동으로 제거됩니다.

  • OSSM-1668 새 필드 spec.security.jwksResolverCA 가 버전 2.1 SMCP 에 추가되었지만 2.2.0 및 2.2.1 릴리스에서는 누락되었습니다. 이 필드가 누락된 Operator 버전에 문제가 있는 Operator 버전에서 업그레이드할 때 SMCP 에서 .spec.security.jwksResolverCA 필드를 사용할 수 없었습니다.
  • OSSM-1325 istiod Pod가 충돌하고 다음 오류 메시지: 치명적 오류: 동시 맵 반복 및 쓰기 매핑을 표시합니다.
  • OSSM-1211 장애 조치를 위해 Federated 서비스 메시를 구성하면 예상대로 작동하지 않습니다.

    Istiod pilot 로그에는 envoy connection [C289] TLS 오류가 표시됩니다. 337047686:SSL 루틴:tls_process_server_certificate:certificate 검증 실패

  • OSSM-1099 Kiali 콘솔에 Sorry라는 메시지가 표시되었습니다. 새로 고침을 시도하거나 다른 페이지로 이동합니다.
  • SMCP에 정의된 OSSM-1074 Pod 주석은 Pod에 삽입되지 않습니다.
  • OSSM-999 Kiali retention가 예상대로 작동하지 않았습니다. 대시보드 그래프에서 일정 시간이 회색이었습니다.
  • OSSM-797 Kiali Operator Pod는 Operator를 설치하거나 업데이트하는 동안 CreateContainerConfigError 를 생성합니다.
  • kube 로 시작하는 OSSM-722 네임스페이스는 Kiali에서 숨겨집니다.
  • OSSM-569 Prometheus istio-proxy 컨테이너에 CPU 메모리 제한이 없습니다. Prometheus istio-proxy 사이드카에서 spec.proxy.runtime.container 에 정의된 리소스 제한을 사용합니다.
  • OSSM-449 VirtualService 및 Service로 인해 "도메인에 대한 고유한 값만 허용됩니다. 도메인 중복 항목이 허용됩니다."
  • OSSM-419 이름이 유사한 네임스페이스는 서비스 메시 멤버 역할에 네임스페이스를 정의할 수 없는 경우에도 Kiali 네임스페이스 목록에 모두 표시됩니다.
  • OSSM-296 Kiali 사용자 지정 리소스(CR)에 상태 구성을 추가할 때 Kiali configmap에 복제되지 않습니다.
  • OSSM-291 Kiali 콘솔의 애플리케이션, 서비스 및 워크로드 페이지에서 ‘필터에서 레이블 삭제’ 기능이 작동하지 않습니다.
  • OSSM-289 Kiali 콘솔에는 ‘istio-ingressgateway’ 및 ‘jaeger-query’ 서비스에 대한 서비스 세부 정보 페이지에 표시되는 추적이 없습니다. 추적은 Jaeger에 있습니다.
  • OSSM-287 Kiali 콘솔에는 그래프 서비스에 표시되는 추적이 없습니다.
  • OSSM-285 Kiali 콘솔에 액세스하려고 할 때 “Error trying to get OAuth Metadata”와 같은 오류 메시지가 표시됩니다.

    해결방법: Kiali 포드를 다시 시작합니다.

  • MAISTRA-2735 Red Hat OpenShift Service Mesh 버전 2.1에서 SMCP를 조정할 때 Service Mesh Operator가 삭제하는 리소스입니다. 이전에는 Operator에서 다음 레이블이 있는 리소스를 삭제했습니다.

    • maistra.io/owner
    • app.kubernetes.io/version

    이제 Operator에서 app.kubernetes.io/managed-by=maistra-istio-operator 레이블도 포함하지 않는 리소스를 무시합니다. 자체 리소스를 생성하는 경우 app.kubernetes.io/managed-by=maistra-istio-operator 레이블을 추가하지 않아야 합니다.

  • MAISTRA-2687 Red Hat OpenShift Service Mesh 2.1 페더레이션 게이트웨이는 외부 인증서를 사용할 때 전체 인증서 체인을 전송하지 않습니다. 서비스 메시 페더레이션 송신 게이트웨이는 클라이언트 인증서만 전송합니다. 페더레이션 수신 게이트웨이는 루트 인증서만 알고 있으므로 페더레이션 가져오기 ConfigMap 에 루트 인증서를 추가하지 않는 한 클라이언트 인증서를 확인할 수 없습니다.
  • MAISTRA-2635 더 이상 사용되지 않는 Kubernetes API 교체. OpenShift Container Platform 4.8과 호환되도록 apiextensions.k8s.io/v1beta1 API는 Red Hat OpenShift Service Mesh 2.0.8에서 더 이상 사용되지 않습니다.
  • MAISTRA-2631 WASM 기능은 nsenter 바이너리가 존재하지 않기 때문에 podman이 실패하기 때문에 작동하지 않습니다. Red Hat OpenShift Service Mesh는 다음과 같은 오류 메시지를 생성합니다. 오류: CNI 네트워크 플러그인 구성 오류 exec: "nsenter": $PATH에서 실행 가능 파일을 찾을 수 없습니다. 이제 컨테이너 이미지에 nsenter가 포함되고 WASM이 예상대로 작동합니다.
  • MAISTRA-2534 istiod에서 JWT 규칙에 지정된 발급자에 대한 JWKS를 가져오기를 시도하면 발급자 서비스가 502로 응답했습니다. 이로 인해 프록시 컨테이너가 준비되지 않아 배포가 중단되었습니다. 커뮤니티 버그 수정이 Service Mesh 2.0.7 릴리스에 포함되어 있습니다.
  • MAISTRA-2411 Operator가 ServiceMeshControlPlane에서 spec.gateways.additionaIngress를 사용하여 새 수신 게이트웨이를 생성하면 Operator는 기본 istio-ingressgateway에 대한 추가 수신 게이트웨이에 대한 NetworkPolicy를 생성하지 않습니다. 이로 인해 새 게이트웨이 경로에서 503 응답이 발생합니다.

    해결방법: <istio-system> 네임스페이스에서 NetworkPolicy 를 수동으로 생성합니다.

  • MAISTRA-2401 CVE-2021-3586 servicemesh-operator: NetworkPolicy 리소스가 인그레스 리소스에 대해 포트가 잘못 지정되었습니다. Red Hat OpenShift Service Mesh에 설치된 NetworkPolicy 리소스가 액세스할 수 있는 포트를 올바르게 지정하지 않았습니다. 이로 인해 모든 pod에서 이러한 리소스의 모든 포트에 액세스할 수 있었습니다. 다음 리소스에 적용되는 네트워크 정책은 영향을 받습니다.

    • Galley
    • Grafana
    • Istiod
    • Jaeger
    • Kiali
    • Prometheus
    • Sidecar injector
  • MAISTRA-2378 클러스터가 ovs-multitenant와 함께 OpenShift SDN을 사용하도록 구성되고 메시에 다수의 네임스페이스(200+)가 포함된 경우 OpenShift Container Platform 네트워킹 플러그인은 네임스페이스를 빠르게 구성할 수 없습니다. 서비스 메시의 시간이 초과되어 서비스 메시에서 네임스페이스가 지속적으로 드롭된 다음 다시 나열됩니다.
  • MAISTRA-2370 listerInformer에서 tombstones를 처리합니다. 업데이트된 캐시 코드베이스는 네임스페이스 캐시에서 집계된 캐시로 이벤트를 변환할 때 tombstones를 처리하지 않아 go 루틴에서 패닉이 발생했습니다.
  • MAISTRA-2117 operator에 선택적 ConfigMap 마운트 추가. 이제 CSV에 선택적 ConfigMap 볼륨 마운트가 포함되어 있으며, 이 마운트는 smcp-templates ConfigMap 이 존재하는 경우 마운트됩니다. smcp-templates ConfigMap 이 없으면 마운트된 디렉터리가 비어 있습니다. ConfigMap 을 생성할 때 디렉터리는 ConfigMap 의 항목으로 채워지며 SMCP.spec.profiles 에서 참조할 수 있습니다. Service Mesh Operator를 다시 시작할 필요가 없습니다.

    smcp-templates ConfigMap을 마운트하기 위해 수정된 CSV가 있는 2.0 Operator를 사용하는 고객은 Red Hat OpenShift Service Mesh 2.1로 업그레이드할 수 있습니다. 업그레이드 후 CSV를 편집하지 않고 기존 ConfigMap과 포함된 프로필을 계속 사용할 수 있습니다. 이전에 다른 이름으로 ConfigMap을 사용한 고객은 업그레이드 후 ConfigMap의 이름을 변경하거나 CSV를 업데이트해야 합니다.

  • MAISTRA-2010 AuthorizationPolicy는 request.regex.headers 필드를 지원하지 않습니다. validatingwebhook는 필드가 있는 모든 AuthorizationPolicy를 거부하며, 이를 비활성화한 경우에도 Pilot은 동일한 코드를 사용하여 유효성을 검사하려고 시도하지만 작동하지 않습니다.
  • MAISTRA-1979 2.0으로 마이그레이션 변환 Webhook는 SMCP.status를 v2에서 v1로 변환할 때 다음과 같은 중요한 필드를 삭제합니다.

    • conditions
    • components
    • observedGeneration
    • annotations

      Operator를 2.0으로 업그레이드하면 리소스의 maistra.io/v1 버전을 사용하여 SMCP 상태를 판독하는 클라이언트 툴이 중단될 수 있습니다.

      또한 oc get servicemeshcontrolplanes.v1.maistra.io를 실행할 때 READY 및 STATUS 열이 비어 있습니다.

  • ServiceMeshExtensions에 대한 MAISTRA-1947 기술 프리뷰 업데이트는 적용되지 않습니다.

    해결방법: ServiceMeshExtensions 를 제거하고 다시 생성합니다.

  • MAISTRA-1983 2.0으로 마이그레이션 기존의 유효하지 않은 ServiceMeshControlPlane을 사용하여 2.0.0으로 업그레이드하면 쉽게 복구할 수 없습니다. ServiceMeshControlPlane 리소스의 유효하지 않은 항목으로 인해 복구할 수 없는 오류가 발생했습니다. 수정으로 오류를 복구할 수 있습니다. 유효하지 않은 리소스를 삭제하고 새 리소스로 교체하거나 리소스를 편집하여 오류를 수정할 수 있습니다. 리소스 편집에 대한 자세한 내용은 [Red Hat OpenShift Service Mesh 설치 구성]을 참조하십시오.
  • MAISTRA-1502 버전 1.0.10에서 CVE가 수정되므로 Grafana의 홈 대시보드 메뉴에서는 Istio 대시보드 를 사용할 수 없습니다. Istio 대시보드에 액세스하려면 탐색 패널에서 대시보드 메뉴를 클릭하고 관리 탭을 선택합니다.
  • MAISTRA-1399 Red Hat OpenShift Service Mesh를 사용하면 더 이상 지원되지 않는 CNI 프로토콜을 설치할 수 없습니다. 지원되는 네트워크 구성은 변경되지 않았습니다.
  • MAISTRA-1089 2.0으로 마이그레이션 비 컨트롤 플레인 네임스페이스에서 생성된 게이트웨이는 자동으로 삭제됩니다. SMCP 사양에서 게이트웨이 정의를 제거한 후 이러한 리소스를 수동으로 삭제해야 합니다.
  • MAISTRA-858 Istio 1.1.x와 관련된 더 이상 사용하지 않는 옵션 및 구성을 설명하는 다음과 같은 Envoy 로그 메시지가 예상됩니다.

    • [2019-06-03 07:03:28.943][19][warning][misc] [external/envoy/source/common/protobuf/utility.cc:129] Using deprecated option 'envoy.api.v2.listener.Filter.config'. 이 구성은 곧 Envoy에서 삭제될 예정입니다.
    • [2019-08-12 22:12:59.001][13][warning][misc] [external/envoy/source/common/protobuf/utility.cc:174] Using deprecated option 'envoy.api.v2.Listener.use_original_dst' from file lds.proto. 이 구성은 곧 Envoy에서 삭제될 예정입니다.
  • MAISTRA-806 제거된 Istio Operator pod로 인해 메시 및 CNI가 배포되지 않습니다.

    해결방법: 제어 창을 배포하는 동안 istio-operator pod가 제거되면, 제거된 istio-operator pod를 삭제합니다.

  • MAISTRA-681 서비스 메시 컨트롤 플레인에 네임스페이스가 많은 경우 성능 문제가 발생할 수 있습니다.
  • MAISTRA-193 citadel에 대해 상태 확인이 활성화되면 예기치 않은 콘솔 정보 메시지가 표시됩니다.
  • Bugzilla 1821432 OpenShift Container Platform 사용자 정의 리소스 세부 정보 페이지의 토글 제어가 CR을 올바르게 업데이트하지 않습니다. OpenShift Container Platform 웹 콘솔의 SMCP(Service Mesh Control Plane) 개요 페이지의 UI 토글 제어가 리소스에서 잘못된 필드를 업데이트하는 경우가 있습니다. SMCP를 업데이트하려면 토글 제어를 클릭하는 대신 YAML 콘텐츠를 직접 편집하거나 명령줄에서 리소스를 업데이트합니다.

1.2.6.2. Red Hat OpenShift distributed tracing 고정 문제

  • TRACING-2337 Jaeger는 다음과 유사한 Jaeger 로그에 반복적인 경고 메시지를 기록합니다.

    {"level":"warn","ts":1642438880.918793,"caller":"channelz/logging.go:62","msg":"[core]grpc: Server.Serve failed to create ServerTransport: connection error: desc = \"transport: http2Server.HandleStreams received bogus greeting from client: \\\"\\\\x16\\\\x03\\\\x01\\\\x02\\\\x00\\\\x01\\\\x00\\\\x01\\\\xfc\\\\x03\\\\x03vw\\\\x1a\\\\xc9T\\\\xe7\\\\xdaCj\\\\xb7\\\\x8dK\\\\xa6\\\"\"","system":"grpc","grpc_log":true}

    이 문제는 gRPC 포트가 아닌 쿼리 서비스의 HTTP(S) 포트만 노출하여 해결되었습니다.

  • TRACING-2009 Jaeger Operator가 Strimzi Kafka Operator 0.23.0에 대한 지원을 포함하도록 업데이트되었습니다.
  • TRACING-1907 애플리케이션 네임스페이스에서 구성 맵이 누락되어 Jaeger 에이전트 사이드카 삽입이 실패했습니다. 잘못된 OwnerReference 필드 설정으로 인해 구성 맵이 자동으로 삭제되었으며 결과적으로 애플리케이션 Pod가 "ContainerCreating" 단계를 통과하지 않았습니다. 잘못된 설정이 제거되었습니다.
  • TRACING-1725 TRACING-1631에 대한 후속 조치입니다. 동일한 이름을 사용하지만 다른 네임스페이스 내에 Jaeger 프로덕션 인스턴스가 여러 개인 경우 Elasticsearch 인증서가 올바르게 조정되는지 확인하기 위한 추가 수정 사항입니다. BZ-1918920도 참조하십시오.
  • TRACING-1631 동일한 이름을 사용하지만 다른 네임스페이스 내의 여러 Jaeger 프로덕션 인스턴스로, Elasticsearch 인증서 문제를 발생시킵니다. 여러 서비스 메시가 설치되면 모든 Jaeger Elasticsearch 인스턴스에 개별 시크릿 대신 동일한 Elasticsearch 시크릿이 있어 OpenShift Elasticsearch Operator가 모든 Elasticsearch 클러스터와 통신할 수 없습니다.
  • TRACING-1300 Istio 사이드카를 사용할 때 에이전트와 수집기 간의 연결에 실패했습니다. Jaeger Operator 업데이트는 Jaeger 사이드카 에이전트와 Jaeger 수집기 간의 TLS 통신을 기본적으로 활성화했습니다.
  • TRACING-1208 Jaeger UI에 액세스할 때 인증 “500 Internal Error”입니다. OAuth를 사용하여 UI를 인증할 때 oauth-proxy 사이드카가 additionalTrustBundle로 설치할 때 정의된 사용자 정의 CA 번들을 신뢰하지 않기 때문에 500 오류가 발생합니다.
  • TRACING-1166 현재 연결이 끊긴 환경에서 Jaeger 스트리밍 전략을 사용할 수 없습니다. Kafka 클러스터가 프로비저닝되면 오류가 발생합니다. 이미지 registry.redhat.io/amq7/amq-streams-kafka-24-rhel7@sha256:f9ceca004f1b7dccb3b82d9a8027961f9fe4104e0ed69752c0bdd8078b4a1076를 가져오지 못했습니다.
  • TRACING-809 Jaeger Ingester는 Kafka 2.3과 호환되지 않습니다. Jaeger Ingester의 두 개 이상의 인스턴스와 트래픽이 충분한 경우 로그에 지속적으로 리밸런싱 메시지를 생성합니다. 이는 Kafka 2.3.1에서 수정된 Kafka 2.3의 문제의 재발로 인해 발생합니다. 자세한 내용은 Jaegertracing-1819를 참조하십시오.
  • BZ-1918920/LOG-1619 업데이트 후 Elasticsearch Pod가 자동으로 다시 시작되지 않습니다.

    해결방법: Pod를 수동으로 다시 시작합니다.