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


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

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

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

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

1.2.2.1.

1.2.2.1.1.
구성 요소버전

Istio

1.14.5

1.22.4

Jaeger

1.39

Kiali

1.57.5

1.2.2.2.

1.2.2.2.1.
구성 요소버전

Istio

1.14.3

1.22.4

Jaeger

1.38

Kiali

1.57.3

1.2.2.2.2.

1.2.2.2.3.

1.2.2.2.4.

1.2.2.2.5.
중요

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

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

1.2.2.2.6.

1.2.2.2.6.1.

  apiVersion: maistra.io/v2
  kind: ServiceMeshControlPlane
  metadata:
    name: cluster-wide
    namespace: istio-system
  spec:
    version: v2.3
    techPreview:
      controlPlaneMode: ClusterScoped 1
1

  apiVersion: maistra.io/v1
  kind: ServiceMeshMemberRoll
  metadata:
    name: default
  spec:
    members:
    - '*' 1
1

1.2.2.3.

1.2.2.3.1.
구성 요소버전

Istio

1.12.9

1.20.8

Jaeger

1.39

Kiali

1.48.3

1.2.2.4.

1.2.2.4.1.
구성 요소버전

Istio

1.12.9

1.20.8

Jaeger

1.36.14

Kiali

1.48.3

1.2.2.5.

1.2.2.5.1.
구성 요소버전

Istio

1.12.9

1.20.8

Jaeger

1.36

Kiali

1.48.3

1.2.2.6.

1.2.2.6.1.
구성 요소버전

Istio

1.12.7

1.20.6

Jaeger

1.36

Kiali

1.48.2-1

1.2.2.6.2.

1.2.2.7.

1.2.2.7.1.
구성 요소버전

Istio

1.12.7

1.20.6

Jaeger

1.34.1

Kiali

1.48.2-1

1.2.2.8.

1.2.2.8.1.
구성 요소버전

Istio

1.12.7

1.20.4

Jaeger

1.34.1

Kiali

1.48.0.16

1.2.2.8.2. WasmPlugin API

1.2.2.8.3.

1.2.2.8.4.

1.2.2.8.5.

1.2.2.8.6.

1.2.2.8.7.

1.2.2.8.8. Kubernetes Gateway API
중요

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

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

1.2.2.8.8.1.

$ kubectl get crd gateways.gateway.networking.k8s.io || { kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd?ref=v0.4.0" | kubectl apply -f -; }
1.2.2.8.8.2.

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"

1.2.2.8.8.3.

  apiVersion: gateway.networking.k8s.io/v1alpha2
  kind: Gateway
  metadata:
    name: gateway
  spec:
    addresses:
    - value: ingress.istio-gateways.svc.cluster.local
      type: Hostname

1.2.2.9.

1.2.2.9.1.
구성 요소버전

Istio

1.9.9

1.17.5

Jaeger

1.36

Kiali

1.36.14

1.2.2.10.

1.2.2.10.1.
구성 요소버전

Istio

1.9.9

1.17.5

Jaeger

1.36

Kiali

1.24.17

1.2.2.11.

1.2.2.11.1.
구성 요소버전

Istio

1.9.9

1.17.5

Jaeger

1.36

Kiali

1.36.13

1.2.2.12.

1.2.2.12.1.
구성 요소버전

Istio

1.9.9

1.17.1

Jaeger

1.36

Kiali

1.36.12-1

1.2.2.13.

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

1.2.2.13.1.
구성 요소버전

Istio

1.9.9

1.17.1

Jaeger

1.30.2

Kiali

1.36.12-1

1.2.2.14.

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

1.2.2.14.1.
구성 요소버전

Istio

1.9.9

1.17.1

Jaeger

1.30.2

Kiali

1.36.10-2

1.2.2.15.

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

1.2.2.15.1.
구성 요소버전

Istio

1.9.9

1.17.1

Jaeger

1.30.2

Kiali

1.36.9

1.2.2.16.

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

1.2.2.16.1.
구성 요소버전

Istio

1.9.9

1.17.1

Jaeger

1.30.1

Kiali

1.36.8

1.2.2.17.

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

1.2.2.17.1.
구성 요소버전

Istio

1.9.9

1.17.1

Jaeger

1.24.1

Kiali

1.36.7

1.2.2.17.2.

참고

절차

  1. Red Hat OpenShift Service Mesh Operator를 클릭합니다. Istio Service Mesh Control Plane 열에서 ServiceMeshControlPlane의 이름을 클릭합니다(예: basic-install).
  2. ServiceMeshControlPlane 세부 정보 만들기 페이지에서 YAML을 클릭하여 구성을 수정합니다.
  3. apiVersion: maistra.io/v2
    kind: ServiceMeshControlPlane
    spec:
      security:
          trust:
          manageNetworkPolicy: false
  4. 저장을 클릭합니다.

1.2.2.18.

1.2.2.18.1.
구성 요소버전

Istio

1.9.6

1.17.1

Jaeger

1.24.1

Kiali

1.36.5

1.2.2.18.2.

1.2.2.18.3.

1.2.2.18.4.

1.2.2.18.5.

1.2.2.18.6.

1.2.2.18.7.

1.2.2.18.8.

1.2.2.19.

1.2.2.19.1.
구성 요소버전

Istio

1.6.14

1.14.5

Jaeger

1.36

Kiali

1.24.17

1.2.2.20.

1.2.2.20.1.
구성 요소버전

Istio

1.6.14

1.14.5

Jaeger

1.36

Kiali

1.24.16-1

1.2.2.21.

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

1.2.2.21.1.
구성 요소버전

Istio

1.6.14

1.14.5

Jaeger

1.28.0

Kiali

1.24.16-1

1.2.2.22.

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

1.2.2.22.1.
구성 요소버전

Istio

1.6.14

1.14.5

Jaeger

1.24.1

Kiali

1.24.11

1.2.2.23.

1.2.2.24.

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

1.2.2.24.1.

주의

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.24.2.

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:*"]

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.25. Red Hat OpenShift Service Mesh 2.0.7 새 기능

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

1.2.2.26. 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.27. Red Hat OpenShift Service Mesh 2.0.6 새 기능

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

1.2.2.28. Red Hat OpenShift Service Mesh 2.0.5 새 기능

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

1.2.2.29. 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.29.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.29.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.29.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.29.4. 경로 정규화를 위해 SMCP 구성

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

SMCP v2 pathNormalization

spec:
  techPreview:
    global:
      pathNormalization: <option>

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

일부 환경에서는 대/소문자를 구분하지 않는 권한 부여 정책의 경로를 사용하는 것이 유용할 수 있습니다. 예를 들어 https://myurl/gethttps://myurl/GeT을 동일한 방법으로 처리합니다. 이 경우 아래에 표시된 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.30. Red Hat OpenShift Service Mesh 2.0.3의 새 기능

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

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

  • 자세한 내용은 OSSM-351을 참조하십시오.

1.2.2.31. 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.32. Red Hat OpenShift Service Mesh 2.0.1 새 기능

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

1.2.2.33. Red Hat OpenShift Service Mesh 2.0 새 기능

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

  • 네트워크를 통한 상호 컨트롤 플레인 통신을 줄임으로써 성능을 향상시킵니다.

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

    • WebAssembly 확장을 사용하여 구축된 Istio의 Telemetry v2 아키텍처에 대한 지원이 추가되었습니다. 이 새로운 아키텍처는 상당한 성능 향상을 가져왔습니다.
    • WebAssembly 확장을 기술 프리뷰 기능으로 도입합니다.

1.2.3. 기술 프리뷰

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

중요

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

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

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

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

1.2.4.1.

  • ECDHE-ECDSA-AES128-SHA
  • ECDHE-RSA-AES128-SHA
  • AES128-GCM-SHA256
  • AES128-SHA
  • ECDHE-ECDSA-AES256-SHA
  • ECDHE-RSA-AES256-SHA
  • AES256-GCM-SHA384
  • AES256-SHA

1.2.4.2.

1.2.4.3.

1.2.4.4.

1.2.4.5. 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)는 더 이상 지원되지 않습니다.

  • RbacConfig(rbac.istio.io/v1alpha1)는 더 이상 지원되지 않습니다.

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

  • 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를 지원하지 않습니다.
  • 그래프 레이아웃 - 애플리케이션 아키텍처 및 표시할 데이터(그래프 노드 및 상호 작용 수)에 따라 Kiali 그래프의 레이아웃이 다르게 렌더링됩니다. 모든 상황에 적합하게 렌더링되는 단일 레이아웃을 만드는 것이 불가능하지는 않지만 어렵기 때문에 Kiali는 다양한 레이아웃 옵션을 제공합니다. 다른 레이아웃을 선택하려면 그래프 설정 메뉴에서 다른 레이아웃 스키마를 선택할 수 있습니다.
  • 이것은 프레임워크가 콘솔에 포함된 페이지를 표시하는 방법에 문제가 있기 때문입니다.

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

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

  • apiVersion: networking.istio.io/v1beta1
    kind: ProxyConfig
    metadata:
      name: mesh-wide-concurrency
      namespace: <istiod-namespace>
    spec:
      concurrency: 0
  • 예를 들면 다음과 같습니다.

    api:
      namespaces:
        exclude:
        - "^istio-operator"
        - "^kube-.*"
        - "^openshift.*"
        - "^ibm.*"
        - "^kiali-operator"
  • 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.

  • Apache Spark가 지원되지 않습니다.

  • 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-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”와 같은 오류 메시지가 표시됩니다.

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

  • MAISTRA-2534 istiod에서 JWT 규칙에 지정된 발급자에 대한 JWKS를 가져오기를 시도하면 발급자 서비스가 502로 응답했습니다. 이로 인해 프록시 컨테이너가 준비되지 않아 배포가 중단되었습니다. 커뮤니티 버그 수정이 Service Mesh 2.0.7 릴리스에 포함되어 있습니다.
  • MAISTRA-2411 Operator가 ServiceMeshControlPlane에서 spec.gateways.additionaIngress를 사용하여 새 수신 게이트웨이를 생성하면 Operator는 기본 istio-ingressgateway에 대한 추가 수신 게이트웨이에 대한 NetworkPolicy를 생성하지 않습니다. 이로 인해 새 게이트웨이 경로에서 503 응답이 발생합니다.

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

    • Galley
    • Grafana
    • Istiod
    • Jaeger
    • Kiali
    • Prometheus
    • Sidecar injector
  • 서비스 메시의 시간이 초과되어 서비스 메시에서 네임스페이스가 지속적으로 드롭된 다음 다시 나열됩니다.
  • MAISTRA-2370 listerInformer에서 tombstones를 처리합니다. 업데이트된 캐시 코드베이스는 네임스페이스 캐시에서 집계된 캐시로 이벤트를 변환할 때 tombstones를 처리하지 않아 go 루틴에서 패닉이 발생했습니다.
  • 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 기술 프리뷰 업데이트는 적용되지 않습니다.

  • MAISTRA-1983 2.0으로 마이그레이션 기존의 유효하지 않은 ServiceMeshControlPlane을 사용하여 2.0.0으로 업그레이드하면 쉽게 복구할 수 없습니다. ServiceMeshControlPlane 리소스의 유효하지 않은 항목으로 인해 복구할 수 없는 오류가 발생했습니다. 수정으로 오류를 복구할 수 있습니다. 유효하지 않은 리소스를 삭제하고 새 리소스로 교체하거나 리소스를 편집하여 오류를 수정할 수 있습니다. 리소스 편집에 대한 자세한 내용은 [Red Hat OpenShift Service Mesh 설치 구성]을 참조하십시오.
  • MAISTRA-1089 2.0으로 마이그레이션 비 컨트롤 플레인 네임스페이스에서 생성된 게이트웨이는 자동으로 삭제됩니다.
  • 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가 배포되지 않습니다.

  • MAISTRA-193 citadel에 대해 상태 확인이 활성화되면 예기치 않은 콘솔 정보 메시지가 표시됩니다.
  • SMCP를 업데이트하려면 토글 제어를 클릭하는 대신 YAML 콘텐츠를 직접 편집하거나 명령줄에서 리소스를 업데이트합니다.

1.2.6.2.

  • {"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}

  • 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를 참조하십시오.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.