OpenShift Serverless 정보


Red Hat OpenShift Serverless 1.34

OpenShift Serverless 소개

Red Hat OpenShift Documentation Team

초록

이 문서에서는 기능, Serving, Eventing을 포함한 OpenShift Serverless 기능에 대한 개요를 제공합니다. 또한 릴리스 노트와 지원을 받는 방법에 대한 세부 사항이 포함되어 있습니다.

1장. 릴리스 노트

참고

OpenShift Serverless 라이프 사이클 및 지원되는 플랫폼에 대한 자세한 내용은 OpenShift Operator 라이프 사이클 을 참조하십시오.

릴리스 노트에는 사용되지 않는 새로운 기능, 변경 사항 중단 및 알려진 문제에 대한 정보가 포함되어 있습니다. 다음 릴리스 노트는 OpenShift Container Platform의 최신 OpenShift Serverless 릴리스에 적용됩니다.

OpenShift Serverless 기능에 대한 개요는 OpenShift Serverless 정보를 참조하십시오.

참고

OpenShift Serverless는 오픈 소스 Knative 프로젝트를 기반으로 합니다.

최신 Knative 구성 요소 릴리스에 대한 자세한 내용은 Knative 블로그를 참조하십시오.

1.1. API 버전 정보

API 버전은 OpenShift Serverless의 특정 기능 및 사용자 정의 리소스의 개발 상태에 대한 중요한 척도입니다. 올바른 API 버전을 사용하지 않는 클러스터에서 리소스를 생성하면 배포에 문제가 발생할 수 있습니다.

OpenShift Serverless Operator는 최신 버전을 사용하기 위해 더 이상 사용되지 않는 API를 사용하는 이전 리소스를 자동으로 업그레이드합니다. 예를 들어 v1beta1과 같은 이전 ApiServerSource API 버전을 사용하는 리소스를 클러스터에 생성한 경우 OpenShift Serverless Operator는 사용 가능하고 v1beta1 버전이 더 이상 사용되지 않을 때 API의 v1 버전을 사용하도록 이러한 리소스를 자동으로 업데이트합니다.

더 이상 사용되지 않는 API의 이전 버전은 향후 릴리스에서 제거될 수 있습니다. 더 이상 사용되지 않는 API 버전을 사용해도 리소스가 실패하지 않습니다. 그러나 제거된 API 버전을 사용하려고 하면 리소스가 실패합니다. 문제를 방지하기 위해 최신 버전을 사용하도록 매니페스트가 업데이트되었는지 확인합니다.

1.2. 일반적으로 사용 가능한 기능 및 기술 프리뷰 기능

GA(일반 사용 가능) 기능은 완전하게 지원되며 프로덕션 환경에 적합합니다. 기술 프리뷰(TP) 기능은 실험적 기능이며 프로덕션용이 아닙니다. TP 기능에 대한 자세한 내용은 Red Hat 고객 포털에서 기술 프리뷰 지원 범위를 참조하십시오.

다음 표에서는 GA 및 TP인 OpenShift Serverless 기능에 대한 정보를 제공합니다.

Expand
표 1.1. 일반적으로 사용 가능한 및 기술 프리뷰 기능 추적기
기능1.321.331.34

Eventing 전송 암호화

-

-

TP

전송 암호화 제공

-

-

TP

OpenShift Serverless Logic

TP

GA

GA

ARM64 지원

-

TP

TP

사용자 정의 지표 자동 스케일러 Operator (KEDA)

-

TP

TP

kn 이벤트 플러그인

TP

TP

TP

Pipelines-as-code

TP

TP

TP

new-trigger-filters

TP

TP

TP

S2I 빌더를 사용하여 Go 기능

TP

TP

TP

단일 노드 OpenShift에서 Serverless 설치 및 사용

GA

GA

GA

서비스 메시를 사용하여 Serverless에서 네트워크 트래픽 분리

TP

TP

TP

서버리스 논리

TP

GA

GA

함수 의 활성준비 상태 덮어쓰기

GA

GA

GA

kn func

GA

GA

GA

Quarkus 함수

GA

GA

GA

Node.js 함수

GA

GA

GA

TypeScript 함수

GA

GA

GA

Python 함수

TP

TP

TP

서비스 메시 mTLS

GA

GA

GA

emptyDir 볼륨

GA

GA

GA

HTTPS 리디렉션

GA

GA

GA

Kafka 브로커

GA

GA

GA

Kafka 싱크

GA

GA

GA

Knative 서비스에 대한 Init 컨테이너 지원

GA

GA

GA

Knative 서비스에 대한 PVC 지원

GA

GA

GA

네임스페이스 범위 브로커

TP

TP

TP

멀티컨테이너 지원

GA

GA

GA

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

이전 릴리스에서 GA(Generally Available) 또는 TP(기술 프리뷰)인 일부 기능은 더 이상 사용되지 않거나 제거되었습니다. 더 이상 사용되지 않는 기능은 여전히 OpenShift Serverless에 포함되어 있으며 계속 지원됩니다. 그러나 이 기능은 향후 릴리스에서 제거될 예정이므로 새 배포에는 사용하지 않는 것이 좋습니다.

OpenShift Serverless에서 더 이상 사용되지 않고 삭제된 주요 기능의 최신 목록은 다음 표를 참조하십시오.

Expand
표 1.2. 사용되지 않거나 삭제된 기능 추적
기능1.291.301.311.321.331.34

EventTypes v1beta1 API

-

-

-

더 이상 사용되지 않음

더 이상 사용되지 않음

더 이상 사용되지 않음

domain-mappingdomain-mapping-webhook 배포

-

-

-

제거됨

제거됨

제거됨

Kourier가 활성화된 경우 Serverless가 있는 Red Hat OpenShift Service Mesh

-

-

-

더 이상 사용되지 않음

더 이상 사용되지 않음

더 이상 사용되지 않음

NamespacedKafka 주석

-

더 이상 사용되지 않음

더 이상 사용되지 않음

더 이상 사용되지 않음

더 이상 사용되지 않음

더 이상 사용되지 않음

enable-secret-informer-filtering 주석

더 이상 사용되지 않음

더 이상 사용되지 않음

더 이상 사용되지 않음

더 이상 사용되지 않음

더 이상 사용되지 않음

더 이상 사용되지 않음

serving 및 Eventing v1alpha1 API

제거됨

제거됨

제거됨

제거됨

제거됨

제거됨

kn func emit ( 1.21 이상에서kn func 호출 )

제거됨

제거됨

제거됨

제거됨

제거됨

제거됨

KafkaBinding API

제거됨

제거됨

제거됨

제거됨

제거됨

제거됨

1.4. Red Hat OpenShift Serverless 1.34

OpenShift Serverless 1.34가 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

1.4.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 1.14를 사용합니다.
  • OpenShift Serverless에서 Knative Eventing 1.14를 사용합니다.
  • OpenShift Serverless에서 Kourier 1.14를 사용합니다.
  • OpenShift Serverless에서 Knative(kn) CLI 1.14를 사용합니다.
  • OpenShift Serverless에서 Apache Kafka 1.14에 Knative를 사용합니다.
  • kn func CLI 플러그인은 이제 func 1.15를 사용합니다.
  • OpenShift Serverless Logic은 이제 동일한 네임스페이스 내에서 OpenAPI에 대한 여러 구성을 지원합니다.
  • OpenShift Serverless Logic의 관리 콘솔을 개발 프로세스 간소화를 위한 TP(기술 프리뷰) 기능으로 사용할 수 있습니다.
  • OpenShift Serverless Logic 1.34에는 구성을 통해 워크플로우가 다른 OpenShift Container Platform 클러스터에 액세스할 수 있는 새로운 기능이 도입되었습니다. 이 기능을 사용하면 워크플로우 내에서 REST 호출을 정의하여 여러 클러스터와 원활하게 상호 작용할 수 있습니다.
  • OpenShift Serverless Logic에서 리더 상태를 검색하는 데 필요한 시간을 제한하도록 작업 서비스 활성 검사가 향상되었습니다. 새 시스템 속성인 kogito.jobs-service.leader-check.expiration-in-seconds 가 도입되어 리더 상태 점검에 허용되는 최대 시간을 구성할 수 있습니다.
  • Automatic EventType 등록은 이제 TP(기술 프리뷰)로 Eventing 기능을 사용할 수 있습니다. 브로커 인그레스 및 메모리 내 채널에서 처리된 이벤트를 기반으로 EventTypes 오브젝트를 자동으로 생성하여 EventTypes 사용 및 생성 환경을 개선합니다.
  • Encryption Serving은 이제 TP(기술 프리뷰) 기능으로 사용할 수 있습니다.
  • 시작 프로브가 지원되어 애플리케이션 시작 시간을 단축하고 성능을 개선할 수 있습니다. 이러한 프로브는 특히 시작 프로세스가 느린 컨테이너에 유용합니다.
  • OpenShift Serverless Serving 전송 암호화 기능을 사용하면 TLS를 사용하여 보안 및 암호화된 HTTPS 연결을 통해 데이터를 전송할 수 있습니다. 이제 TP(기술 프리뷰) 기능으로 사용할 수 있습니다.
  • S2I 빌더를 사용하는 Go 함수는 이제 Linux 및 Mac 개발자를 위한 TP(기술 프리뷰) 기능으로 사용할 수 있으므로 이러한 플랫폼에서 Go 함수를 구현하고 빌드할 수 있습니다.
  • Knative Serving에 대한 멀티컨테이너 지원을 사용하면 단일 Knative 서비스를 사용하여 멀티컨테이너 Pod를 배포할 수 있습니다. 또한 여러 컨테이너에 대한 준비 및 활성 상태 프로브 값을 지원합니다.
  • Knative Kafka 트리거에 대한 자동 스케일링은 KEDA(Kubernetes Event-Driven Autoscaling)를 기술 프리뷰(TP)로 사용하여 향상되었습니다. CMA/KEDA를 사용한 자동 스케일링은 Kafka 트리거 및 KafkaSource 오브젝트에 대한 리소스 할당을 최적화하여 성능을 강화하여 이벤트 중심 워크로드의 확장성을 개선합니다.
  • Knative Eventing에서는 이제 전송 암호화(Eventing TLS)의 데이터를 TP(기술 프리뷰) 기능으로 지원합니다. HTTPS 주소를 노출하고 사용자 제공 CA 신뢰 번들을 클라이언트에 추가하도록 Knative Eventing 구성 요소를 구성할 수 있습니다.

1.4.2. 해결된 문제

  • 이전에는 KafkaSource.spec.net.tls.key 가 로드되지 않은 경우에도 KafkaSource 개체가 Ready 상태에 잘못 남아 있었습니다. 이 문제가 해결되었습니다. PKCS #1에서 지원되지 않는 TLS 인증서(Public-Key Cryptography Standards #1) 형식의 Kafka Broker,KafkaChannel,KafkaSource, KafkaSink 오브젝트를 생성할 때 오류가 보고되어 구성 문제의 적절한 처리 및 알림이 보장됩니다.
  • Eventing 컨트롤러가 잘못된 오브젝트 유형(네임스페이스)을 잘못 큐에 추가하여 "리소스를 찾을 수 없음" 로그 오류가 발생했습니다. 이제 이 문제가 해결되어 컨트롤러가 오브젝트 대기열을 처리하여 보다 정확한 로깅 및 리소스 관리를 보장합니다.

1.5. Red Hat OpenShift Serverless 1.33.2

OpenShift Serverless 1.33.2가 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 수정된 문제는 다음 사항에 포함되어 있습니다.

1.5.1. 해결된 문제

  • 이전 버전에서는 사용자 네임스페이스에서 KnativeServing 또는 KnativeEventing 과 같은 Knative 설치 리소스를 생성하면 OpenShift Serverless Operator에서 무한 조정 루프가 트리거되었습니다. 이 문제는 knative-serving 또는 knative-eventing 이외의 네임스페이스에서 Knative 설치 리소스를 생성하지 못하도록 승인 Webhook를 다시 도입하여 해결되었습니다.
  • 이전에는 일정 기간 후에 설치 후 배치 작업이 제거되어 권한 있는 서비스 계정이 바인딩되지 않은 상태로 유지되었습니다. 이로 인해 규정 준수 시스템이 문제에 플래그를 지정했습니다. 이 문제는 완료된 작업을 유지하여 서비스 계정이 바인딩되도록 하여 해결되었습니다.

1.6. Red Hat OpenShift Serverless 1.33

OpenShift Serverless 1.33이 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

1.6.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 1.12를 사용합니다.
  • OpenShift Serverless에서 Knative Eventing 1.12를 사용합니다.
  • OpenShift Serverless에서 Kourier 1.12를 사용합니다.
  • OpenShift Serverless에서 Knative(kn) CLI 1.12를 사용합니다.
  • OpenShift Serverless에서 Apache Kafka 1.12에 Knative를 사용합니다.
  • kn func CLI 플러그인은 이제 func 1.14를 사용합니다.
  • OpenShift Serverless Logic은 이제 일반 GA(GA)를 사용할 수 있습니다. 이 릴리스에는 OpenShift Serverless Logic에 대한 개요, 워크플로우 생성, 실행 및 배포 방법, OpenShift Serverless Logic Operator의 설치 및 제거에 대한 지침이 포함되어 있습니다. 또한 OpenAPI 서비스 및 엔드포인트를 구성하는 단계와 서비스 문제 해결을 위한 기술이 포함되어 있습니다. 자세한 내용은 OpenShift Serverless Logic 개요 를 참조하십시오.

    추가 문서를 참조할 수도 있습니다. 자세한 내용은 Serverless Logic 설명서를 참조하십시오.

  • ARM64의 OpenShift Serverless를 기술 프리뷰로 사용할 수 있습니다.
  • NamespacedKafka 주석이 더 이상 사용되지 않습니다. 대신 데이터 플레인 격리 없이 표준 Kafka 브로커를 사용합니다.
  • 자동 EventType 자동 생성을 활성화하면 클러스터 내에서 사용 가능한 이벤트를 쉽게 검색할 수 있습니다. 이 기능은 개발자 프리뷰로 사용할 수 있습니다.
  • OpenShift 개발자 콘솔에서 개발자 뷰의 Observe 탭에서 직접 Knative Eventing 모니터링 대시보드를 탐색할 수 있습니다.
  • Custom Metrics Autoscaler Operator를 사용하여 KafkaSource 오브젝트에서 정의한 Apache Kafka 소스에 대한 Knative Eventing 소스를 자동 스케일링할 수 있습니다. 이 기능은 기술 프리뷰 기능으로 사용할 수 있으며 Knative Eventing 내에서 Kafka 기반 이벤트 소스에 대한 확장성 및 효율성을 향상시킵니다.
  • Kafka 구현을 사용하여 Knative Broker를 생성할 때 내부 Kafka 주제 속성을 사용자 지정할 수 있습니다. 이는 효율성을 개선하고 관리를 단순화합니다.
  • 이제 새로운 트리거 필터 기능을 기술 프리뷰로 사용할 수 있습니다. 이러한 필터는 기본적으로 활성화되어 있으며 각 표현식이 각 이벤트에 대해 true 또는 false로 평가되는 일련의 필터 표현식을 지정할 수 있습니다.

1.6.2. 확인된 문제

  • 다른 마운트 지점 권한으로 인해 클러스터 빌드에 대한 직접 업로드가 IBM zSystems(s390x) 및 IBM Power(ppc64le)에서 작동하지 않습니다.
  • Podman 버전 4.6을 사용하여 함수를 빌드하고 배포하면 유효하지 않은 가져오기 정책 "1" 오류와 함께 실패합니다.

    이 문제를 해결하려면 Podman 버전 4.5를 사용합니다.

1.7. Red Hat OpenShift Serverless 1.32.2

OpenShift Serverless 1.32.2를 사용할 수 있습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 수정된 문제는 다음 사항에 포함되어 있습니다.

1.7.1. 해결된 문제

  • 이전에는 일정 기간 후에 설치 후 배치 작업이 제거되어 권한 있는 서비스 계정이 바인딩되지 않은 상태로 유지되었습니다. 이로 인해 규정 준수 시스템이 문제에 플래그를 지정했습니다. 이 문제는 완료된 작업을 유지하여 서비스 계정이 바인딩되도록 하여 해결되었습니다.

1.8. Red Hat OpenShift Serverless 1.32

OpenShift Serverless 1.32가 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

1.8.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 1.11을 사용합니다.
  • OpenShift Serverless에서 Knative Eventing 1.11을 사용합니다.
  • OpenShift Serverless에서 Kourier 1.11을 사용합니다.
  • OpenShift Serverless에서 Knative(kn) CLI 1.11을 사용합니다.
  • OpenShift Serverless에서 Apache Kafka 1.11에 Knative를 사용합니다.
  • kn func CLI 플러그인은 이제 func 1.13을 사용합니다.
  • TP(기술 프리뷰) 기능으로 사용할 수 있는 Serverless Logic이 업데이트되었습니다.

    사용 지침 은 Serverless Logic 설명서 를 참조하십시오.

  • 사용자 컨테이너 및 queue-proxy 컨테이너에 대한 OpenShift Serverless Functions 준비 및 활성 상태 프로브 설정을 구성할 수 있습니다.
  • OpenShift Serverless Functions는 이제 1.10 에서 1.14 (latest)까지 OpenShift Pipelines 버전을 지원합니다. 이전 버전의 OpenShift Pipelines는 더 이상 OpenShift Serverless Functions와 호환되지 않습니다.
  • Code로 Pipeline을 사용하는 것을 포함한 클러스터의 온-클러스터 기능 빌드는 이제 OpenShift Data Foundation 스토리지의 IBM zSystems(s390x) 및 IBM Power(ppc64le)에서 지원됩니다.
  • func subscribe 명령을 사용하여 일련의 이벤트에 함수를 구독할 수 있습니다. 이렇게 하면 함수를 필터에서 정의한 CloudEvent 오브젝트에 연결하고 자동 응답을 활성화합니다.
  • 내부 트래픽에 대한 Knative Serving TLS 암호화 기능이 더 이상 사용되지 않습니다. 기술 프리뷰 기능이었습니다. internal-encryption 구성 플래그가 있는 기능은 더 이상 사용할 수 없으며 향후 릴리스에서 새 구성 플래그로 대체됩니다.
  • OpenShift Serverless Operator 측에서는 기본적으로 보안 필터링이 활성화됩니다. 환경 변수 ENABLE_SECRET_INFORMER_BY_CERT_UID=true 가 기본적으로 net-istionet-kourier 컨트롤러 Pod에 추가됩니다.
  • knative-serving 네임스페이스의 domain-mappingdomain-mapping-webhook 배포 기능이 제거되었습니다. 이제 Serving Webhook 및 Serving 컨트롤러와 통합됩니다.
  • KnativeServing CR(사용자 정의 리소스)에 spec.config.domain 필드를 설정하면 기본 외부 도메인이 더 이상 knative-serving 네임스페이스의 config-domain 구성 맵을 자동으로 채워지지 않습니다. 이제 정확한 도메인 설정을 확인하려면 config-domain 구성 맵을 수동으로 구성해야 합니다.
  • net-kourier 배포에 gRPC 상태 프로브를 사용할 수 있습니다. Kourier 컨트롤러는 이제 준비 및 활성 상태 모두에 표준 Kubernetes gRPC 상태 프로브를 사용하여 exec 및 custom 명령의 이전 사용을 대체합니다. timeoutSeconds 값이 100밀리초에서 1초로 조정되어 더 안정적인 프로브 응답을 보장합니다.
  • 이제 새로운 트리거 필터 기능을 기술 프리뷰로 사용할 수 있습니다. 이제 새 트리거 필터가 기본적으로 활성화됩니다. 이를 통해 각 표현식은 각 이벤트에 대해 true 또는 false로 평가되는 필터 표현식 세트를 지정할 수 있습니다.
  • Knative Eventing에서는 이제 개발자 프리뷰로 전송 암호화(Eventing TLS)의 데이터를 지원합니다. HTTPS 주소를 노출하고 사용자 제공 CA 신뢰 번들을 클라이언트에 추가하도록 Knative Eventing 구성 요소를 구성할 수 있습니다.
  • OpenShift Serverless에서 시스템 구성 요소에 대한 사용자 정의 OpenShift CA 번들 삽입을 지원합니다. 자세한 내용은 사용자 정의 PKI 구성을 참조하십시오.
  • Custom Metrics Autoscaler Operator를 사용하여 Apache Kafka 소스의 Knative Eventing 소스를 자동 스케일링할 수 있습니다. 이 기능은 개발자 프리뷰로 사용할 수 있으며 Knative Eventing 내에서 Kafka 기반 이벤트 소스에 대한 확장성 및 효율성을 향상시킵니다.
  • OpenShift 개발자 콘솔의 개발자 보기의 Observe 탭에서 Knative Eventing 모니터링 대시보드를 직접 탐색할 수 있습니다.
  • OpenShift Serverless 1.32에서는 Knative에서 EventTypes v1beta1 에 대한 지원이 더 이상 사용되지 않습니다. OpenShift Serverless 1.32에서 Knative CLI는 EventType v1beta2 API를 사용하여 새 참조 모델을 용이하게 합니다. 이전 릴리스에서는 kn CLI가 EventType API v1beta1 과 이전 버전과 호환되지 않으며 kn eventtypes 하위 명령 그룹으로 제한됩니다. 따라서 최상의 사용자 환경을 위해 일치하는 kn 버전을 사용하는 것이 좋습니다.

1.8.2. 해결된 문제

  • 3scale-kourier-gateways 의 기본 CPU 제한이 500m 에서 1s 로 증가했습니다. 500개 이상의 Knative 서비스 인스턴스가 생성되면 CPU 리소스 소진으로 인해 3scale-kourier-gateways Pod에서 준비 및 활성 상태 프로브 오류가 발생할 수 있습니다. 이 조정은 이러한 오류를 줄이고 더 원활한 작업을 수행하는 것을 목표로 합니다.

1.8.3. 확인된 문제

  • 다른 마운트 지점 권한으로 인해 클러스터 빌드에 대한 직접 업로드가 IBM zSystems(s390x) 및 IBM Power(ppc64le)에서 작동하지 않습니다.
  • Podman 버전 4.6을 사용하여 함수를 빌드하고 배포하면 유효하지 않은 가져오기 정책 "1" 오류와 함께 실패합니다.

    이 문제를 해결하려면 Podman 버전 4.5를 사용합니다.

1.9. Red Hat OpenShift Serverless 1.31

OpenShift Serverless 1.31이 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

1.9.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 1.10을 사용합니다.
  • OpenShift Serverless에서 Knative Eventing 1.10을 사용합니다.
  • OpenShift Serverless에서 Kourier 1.10을 사용합니다.
  • OpenShift Serverless에서 Knative(kn) CLI 1.10을 사용합니다.
  • OpenShift Serverless에서 Apache Kafka 1.10에 Knative를 사용합니다.
  • kn func CLI 플러그인은 이제 func 1.11을 사용합니다.
  • Service Mesh의 OpenShift Serverless 멀티 테넌시를 이제 TP(기술 프리뷰) 기능으로 사용할 수 있습니다.
  • TP(기술 프리뷰) 기능으로 사용할 수 있는 Serverless Logic이 업데이트되었습니다.

    사용 지침 은 Serverless Logic 설명서 를 참조하십시오.

  • OpenShift Serverless를 단일 노드 OpenShift에 설치하고 사용할 수 있습니다.
  • 이제 Serverless 함수와 함께 사용할 기존 PersistentVolume 오브젝트에 대한 PVC(영구 볼륨 클레임)를 구성할 수 있습니다.
  • Ingress에 Kourier를 지정하고 DomainMapping 을 사용하는 경우 OpenShift 경로의 TLS가 passthrough로 설정되고 Kourier Gateway에서 TLS를 처리합니다. Serverless 1.31부터 Kourier Gateway 측에서 활성화된 암호화 제품군을 지정할 수 있습니다.
  • Kourier가 활성화된 경우 Red Hat OpenShift Service Mesh를 Serverless와 통합하면 더 이상 사용되지 않습니다. 서비스 메시 통합을 위해 net-kourier 대신 net-istio 를 사용합니다.

    자세한 내용은 "Red Hat OpenShift Service Mesh with Serverless" 섹션을 참조하십시오.

  • 3scale-kourier-gateway 배포를 위해 PodDistruptionBudgetHorizontalPodAutoscaler 오브젝트가 추가되었습니다.

    • PodDistruptionBudget 은 배포에서 Pod의 최소 가용성 요구 사항을 정의하는 데 사용됩니다.
    • HorizontalPodAutoscaler 는 수요 또는 사용자 정의 메트릭에 따라 배포에서 Pod 수를 자동으로 확장하는 데 사용됩니다.
  • 이제 Knative 브로커 및 Apache Kafka 채널에서 사용하는 Apache Kafka 주제 이름의 패턴을 변경할 수 있습니다.
  • DomainMapping v1alpha1 CRD(사용자 정의 리소스 정의)가 더 이상 사용되지 않습니다. 대신 v1beta1 CRD를 사용합니다.
  • TP(기술 프리뷰) 기능인 NamespacedKafka 주석은 데이터 플레인 격리 없이 표준 Kafka 브로커를 선호합니다.

1.9.2. 해결된 문제

  • 이전 버전에서는 전체 Red Hat OpenShift Service Mesh 통합 및 STRICT 피어 인증을 사용하여 Knative Eventing을 배포할 때 PingSource 어댑터 메트릭을 사용할 수 없었습니다.

    이 문제는 수정되었으며 이제 PingSource 어댑터 메트릭이 다른 작업서비스 레이블 값을 사용하여 수집됩니다. 이전 값은 pingsource-mt-adapter 이고 새 값은 pingsource-mt-adapter-sm-service 입니다.

1.10. Red Hat OpenShift Serverless 1.30.2

OpenShift Serverless 1.30.2가 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

이번 OpenShift Serverless 릴리스는 CVE(Common Vulnerabilities and Exposures)를 처리하고 버그 수정이 포함되어 있으며 OpenShift Container Platform 4.11 이상 버전에서 지원됩니다. 특히 이 업데이트는 Serving, Eventing Webhook 및 RBAC 프록시 컨테이너에서 HTTP/2 전송을 비활성화하여 CVE-2023-44487 - HTTP/2 Rapid Stream Reset을 해결합니다.

1.11. Red Hat OpenShift Serverless 1.30.1

OpenShift Serverless 1.30.1이 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

이번 OpenShift Serverless 릴리스는 CVE(Common Vulnerabilities and Exposures)를 처리하고 버그 수정이 포함되어 있으며 OpenShift Container Platform 4.11 이상 버전에서 지원됩니다.

1.12. Red Hat OpenShift Serverless 1.30

OpenShift Serverless 1.30이 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음에 포함되어 있습니다.

중요

OpenShift Container Platform 4.13은 RHEL (Red Hat Enterprise Linux) 9.2를 기반으로 합니다. FIPS(Federal Information Processing Standards) 검증을 위해 RHEL 9.2가 제출되지 않았습니다. Red Hat은 특정 기간 동안 커밋할 수 없지만 RHEL 9.0 및 RHEL 9.2 모듈에 대한 FIPS 검증을 받을 것으로 예상되며 나중에 RHEL 9.x의 마이너 릴리스도 제공됩니다. 업데이트에 대한 정보는 규정 준수 활동 및 정부 표준 지식 베이스 문서에서 확인할 수 있습니다.

1.12.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 1.9 사용
  • OpenShift Serverless에서 Knative Eventing 1.9를 사용합니다.
  • OpenShift Serverless에서 Kourier 1.9 사용
  • OpenShift Serverless에서 Knative(kn) CLI 1.9를 사용합니다.
  • OpenShift Serverless에서 Apache Kafka 1.9에 Knative를 사용합니다.
  • kn func CLI 플러그인은 이제 func 1.10.1을 사용합니다.
  • OpenShift Serverless가 HyperShift 호스팅 클러스터에서 실행됩니다.
  • OpenShift Serverless가 단일 노드 OpenShift에서 실행됩니다.
  • OpenShift Serverless에 대한 개발자 환경을 이제 Visual Studio Code(VSCode)용 OpenShift IDE Extension인 OpenShift Toolkit을 통해 사용할 수 있습니다. 확장 기능은 VSCode 확장 탭 및 VSCode Marketplace에서 설치할 수 있습니다. Visual Studio Code OpenShift Toolkit 확장의 Marketplace 페이지를 참조하십시오.
  • OpenShift Serverless Functions는 이제 Red Hat OpenShift Pipelines 버전 1.10 및 1.11을 지원합니다. 이전 버전의 Red Hat OpenShift Pipelines는 더 이상 OpenShift Serverless Functions와 호환되지 않습니다.
  • Serverless Logic은 이제 TP(기술 프리뷰) 기능으로 사용할 수 있습니다.

    자세한 내용은 Serverless Logic 설명서 를 참조하십시오.

  • OpenShift Serverless 1.30.0부터 다음 런타임 환경은 s2i 빌더를 사용하는 IBM zSystems에서 지원됩니다.

    • NodeJS
    • Python
    • TypeScript
    • Quarkus
  • Red Hat OpenShift Service Mesh와 Eventing의 통합이 이제 TP(기술 프리뷰) 기능으로 제공됩니다.

    통합에는 다음이 포함됩니다.

    • PingSource
    • ApiServerSource
    • Apache Kafka의 Knative 소스
    • Apache Kafka용 Knative 브로커
    • Knative Sink for Apache Kafka
    • ContainerSource
    • SinkBinding
    • InMemoryChannel
    • KafkaChannel
    • 채널 기반 Knative 브로커
  • OpenShift Serverless Functions의 pipelines-as-code를 TP(기술 프리뷰)로 사용할 수 있습니다.
  • net-kourier 에 대한 QPS(초당 버스트 및 쿼리를 구성할 수 있습니다.
  • OpenShift Serverless Functions 사용자는 개별 Quarkus 함수에 대해 func.yaml 파일의 준비 및 활성 상태 프로브 값을 덮어쓸 수 있습니다.

    Quarkus, TypeScript 및 Node.js 함수에 대한 지침은 "기능 개발 참조 가이드"를 참조하십시오.

  • OpenShift Serverless 1.30.0부터 Kourier 컨트롤러 및 게이트웨이 매니페스트에는 기본적으로 다음과 같은 제한 및 요청이 있습니다.

    • 요청:

      • CPU: 200m
      • 메모리: 200Mi
    • 제한:

      • CPU: 500m
      • 메모리: 500Mi

        OpenShift Serverless 설명서의 " Knative Serving 시스템 배포 구성 개요" 섹션을 참조하십시오.

  • TP(기술 프리뷰) 기능인 NamespacedKafka 주석은 데이터 플레인 격리 없이 표준 Kafka 브로커를 선호합니다.

1.12.2. 해결된 문제

  • 이전에는 3scale-kourier-gateway Pod에서 매일 수천 개의 net-kourier-controller DNS 쿼리를 전송했습니다. 각 NXDOMAIN 응답에 대해 새로운 쿼리가 전송되었습니다. 이는 올바른 DNS 쿼리가 생성될 때까지 계속되었습니다.

    이제 쿼리에 기본적으로 net-kourier-controller.knative-serving-ingress.svc.<cluster domain>. FQDN(정규화된 도메인 이름)이 기본적으로되어 문제를 해결합니다.

1.12.3. 확인된 문제

  • Podman 버전 4.6을 사용하여 함수를 빌드하고 배포하면 유효하지 않은 가져오기 정책 "1" 오류와 함께 실패합니다.

    이 문제를 해결하려면 Podman 버전 4.5를 사용합니다.

  • Pipelines-as-code를 포함한 클러스터 기반 기능 빌드는 IBM zSystems 및 IBM Power에서 지원되지 않습니다.
  • Buildpack 빌더는 IBM zSystems 및 IBM Power에서 지원되지 않습니다.

1.13. Red Hat OpenShift Serverless 1.29.1

OpenShift Serverless 1.29.1이 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

이번 OpenShift Serverless 릴리스는 CVE(Common Vulnerabilities and Exposures)를 처리하고 버그 수정이 포함되어 있으며 OpenShift Container Platform 4.10 이상 버전에서 지원됩니다.

1.13.1. 해결된 문제

  • 이전에는 활성 프로브 오류로 인해 net-kourier-controller 가 시작되지 않는 경우가 있었습니다. 이 문제는 해결되었습니다.

1.14. Red Hat OpenShift Serverless 1.29

OpenShift Serverless 1.29가 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

중요

OpenShift Container Platform 4.13은 RHEL (Red Hat Enterprise Linux) 9.2를 기반으로 합니다. RHEL 9.2는 FIPS(Federal Information Processing Standards) 검증을 위해 제출되지 않았습니다. Red Hat은 특정 기간 동안 커밋할 수 없지만 RHEL 9.0 및 RHEL 9.2 모듈에 대한 FIPS 검증을 받을 것으로 예상되며 나중에 RHEL 9.x의 마이너 릴리스도 제공됩니다. 업데이트에 대한 정보는 규정 준수 활동 및 정부 표준 지식 베이스 문서에서 확인할 수 있습니다.

1.14.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 1.8을 사용합니다.
  • OpenShift Serverless에서 Knative Eventing 1.8을 사용합니다.
  • OpenShift Serverless에서 Kourier 1.8을 사용합니다.
  • OpenShift Serverless에서 Knative(kn) CLI 1.8을 사용합니다.
  • OpenShift Serverless에서 Apache Kafka 1.8에 Knative를 사용합니다.
  • kn func CLI 플러그인은 이제 func 1.10을 사용합니다.
  • OpenShift Serverless 1.29부터는 다음과 같이 다양한 제품 버전을 사용할 수 있습니다.

    • 최신 릴리스는 stable 채널을 통해 제공됩니다.
    • 최신 버전 이외의 릴리스는 버전 기반 채널을 통해 제공됩니다.

      이를 사용하려면 서브스크립션 오브젝트 YAML 파일의 channel 매개변수를 stable 에서 stable-1.29 와 같은 해당 버전 기반 채널로 업데이트합니다.

      이번 변경으로 최신 릴리스뿐만 아니라 유지 관리 단계의 릴리스에도 업데이트를 받을 수 있습니다.

      또한 Knative (kn) CLI 버전을 잠글 수 있습니다. 자세한 내용은 " Knative CLI 설치" 섹션을 참조하십시오.

  • OpenShift Container Platform Pipelines를 사용하여 개발자 콘솔을 통해 OpenShift Serverless 함수를 생성할 수 있습니다.
  • Knative Serving에 대한 멀티컨테이너 지원을 일반적으로 사용할 수 있습니다. 이 기능을 사용하면 단일 Knative 서비스를 사용하여 멀티컨테이너 Pod를 배포할 수 있습니다.
  • OpenShift Serverless 함수가 개별 Node.js 및 TypeScript 함수에 대해 func.yaml 파일의 준비 및 활성 상태 프로브 값을 덮어쓸 수 있습니다.
  • 이제 GitHub 리포지토리에서 소스 코드가 변경될 때 클러스터에 자동으로 배포되도록 함수를 구성할 수 있습니다. 이를 통해 보다 원활한 CI/CD 통합을 가능하게 합니다.
  • 이제 Service Mesh와 Eventing 통합이 개발자 프리뷰 기능으로 제공됩니다. 통합에는 PingSource,ApiServerSource, Knative Source for Apache Kafka, Knative Broker for Apache Kafka, Knative Sink for Apache Kafka, ContainerSource, SinkBinding.
  • 이 릴리스에는 OpenShift Serverless Logic의 업그레이드된 개발자 프리뷰가 포함되어 있습니다.
  • Knative Operator Serving 및 Eventings CRD의 API 버전 v1alpha1 이 제거되었습니다. 대신 v1beta1 버전을 사용해야 합니다. 이는 CRD가 Serverless Operator를 업그레이드할 때 자동으로 업데이트되므로 기존 설치에는 영향을 미치지 않습니다.

1.14.2. 확인된 문제

  • DomainMapping에 지정된 시크릿을 업데이트할 때 시크릿을 업데이트해도 조정 루프가 트리거되지 않습니다. 조정 반복문을 트리거하려면 시크릿의 이름을 바꾸거나 Knative Ingress 리소스를 삭제해야 합니다.
  • HPA(Webhook Horizontal Pod Autoscaler) 설정은 OpenShift Serverless Operator에서 덮어씁니다. 결과적으로 더 높은 워크로드에 맞게 확장할 수 없습니다. 이 문제를 해결하려면 워크로드에 해당하는 초기 복제본 값을 수동으로 설정합니다.
  • Red Hat OpenShift Serverless 1.27 이전에 생성된 KafkaSource 리소스는 삭제 시 중단됩니다. 이 문제를 해결하려면 KafkaSource 를 삭제한 후 리소스에서 종료자를 제거합니다.
  • net-kourier-controller 가 활성 프로브 오류로 인해 시작되지 않을 수 있습니다. 지식 베이스 솔루션을 사용하여 문제를 해결할 수 있습니다.

1.15. Red Hat OpenShift Serverless 1.28

OpenShift Serverless 1.28이 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

중요

OpenShift Container Platform 4.13은 RHEL (Red Hat Enterprise Linux) 9.2를 기반으로 합니다. RHEL 9.2는 FIPS(Federal Information Processing Standards) 검증을 위해 제출되지 않았습니다. Red Hat은 특정 기간 동안 커밋할 수 없지만 RHEL 9.0 및 RHEL 9.2 모듈에 대한 FIPS 검증을 받을 것으로 예상되며 나중에 RHEL 9.x의 마이너 릴리스도 제공됩니다. 업데이트에 대한 정보는 규정 준수 활동 및 정부 표준 지식 베이스 문서에서 확인할 수 있습니다.

1.15.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 1.7을 사용합니다.
  • OpenShift Serverless에서 Knative Eventing 1.7을 사용합니다.
  • OpenShift Serverless에서 Kourier 1.7을 사용합니다.
  • OpenShift Serverless에서 Knative(kn) CLI 1.7을 사용합니다.
  • OpenShift Serverless에서 Apache Kafka 1.7에 Knative 브로커 구현을 사용합니다.
  • kn func CLI 플러그인은 이제 func 1.9.1 버전을 사용합니다.
  • OpenShift Serverless Functions의 Node.js 및 TypeScript 런타임은 이제 GA(일반적으로 사용 가능)로 제공됩니다.
  • OpenShift Serverless Functions용 Python 런타임을 기술 프리뷰로 사용할 수 있습니다.
  • Knative Serving에 대한 멀티컨테이너 지원이 이제 기술 프리뷰로 제공됩니다. 이 기능을 사용하면 단일 Knative 서비스를 사용하여 멀티컨테이너 Pod를 배포할 수 있습니다.
  • OpenShift Serverless 1.29 이상에서는 Knative Eventing의 다음 구성 요소가 두 Pod에서 하나로 축소됩니다.

    • imc-controller
    • imc-dispatcher
    • mt-broker-controller
    • mt-broker-filter
    • mt-broker-ingress
  • Serving CR에 대한 서버리스.openshift.io/enable-secret-informer-filtering 주석이 더 이상 사용되지 않습니다. 이 주석은 Istio에만 유효하며 Kourier에는 적용되지 않습니다.

    OpenShift Serverless 1.28에서 OpenShift Serverless Operator를 사용하면 net-istionet-kourier 모두에 환경 변수 ENABLE_SECRET_INFORMER_FILTERING_BY_CERT_UID 를 삽입할 수 있습니다.

    보안 필터링을 활성화하는 경우 모든 시크릿에 networking.internal.knative.dev/certificate-uid: "<id>" 로 레이블이 지정되어야 합니다. 그렇지 않으면 Knative Serving이 탐지되지 않아 오류가 발생합니다. 새 보안 및 기존 보안에 레이블을 지정해야 합니다.

    다음 OpenShift Serverless 릴리스 중 하나에서 시크릿 필터링이 기본적으로 활성화됩니다. 실패를 방지하려면 시크릿에 미리 라벨을 지정하십시오.

1.15.2. 확인된 문제

  • 현재 Python용 런타임은 IBM Power, IBM zSystems 및 IBM® LinuxONE의 OpenShift Serverless Functions에서 지원되지 않습니다.

    Node.js, TypeScript 및 Quarkus 기능은 이러한 아키텍처에서 지원됩니다.

  • Windows 플랫폼에서 Python 함수는 app.sh 파일 권한으로 인해 S2I(Source-to-Image) 빌더를 사용하여 로컬로 빌드, 실행 또는 배포할 수 없습니다.

    이 문제를 해결하려면 Linux용 Windows Cryostat를 사용하십시오.

  • Red Hat OpenShift Serverless 1.27 이전에 생성된 KafkaSource 리소스는 삭제 시 중단됩니다. 이 문제를 해결하려면 KafkaSource 를 삭제한 후 리소스에서 종료자를 제거합니다.

1.16. Red Hat OpenShift Serverless 1.27

OpenShift Serverless 1.27이 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

중요

OpenShift Serverless 1.26은 OpenShift Container Platform 4.12에서 완전히 지원되는 초기 릴리스입니다. OpenShift Serverless 1.25 이상은 OpenShift Container Platform 4.12에 배포되지 않습니다.

이러한 이유로 OpenShift Container Platform을 버전 4.12로 업그레이드하기 전에 먼저 OpenShift Serverless를 버전 1.26 또는 1.27로 업그레이드합니다.

1.16.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 1.6을 사용합니다.
  • OpenShift Serverless에서 Knative Eventing 1.6을 사용합니다.
  • OpenShift Serverless에서 Kourier 1.6을 사용합니다.
  • OpenShift Serverless에서 Knative(kn) CLI 1.6을 사용합니다.
  • OpenShift Serverless에서 Knative Kafka 1.6을 사용합니다.
  • kn func CLI 플러그인은 이제 func 1.8.1을 사용합니다.
  • 이제 네임스페이스 범위 브로커를 기술 프리뷰로 사용할 수 있습니다. 예를 들어 이러한 브로커를 사용하여 역할 기반 액세스 제어(RBAC) 정책을 구현할 수 있습니다.
  • KafkaSink 는 기본적으로 CloudEvent 바이너리 콘텐츠 모드를 사용합니다. 바이너리 콘텐츠 모드는 CloudEvent 대신 본문에서 헤더를 사용하므로 구조화된 모드보다 효율적입니다. 예를 들어 HTTP 프로토콜의 경우 HTTP 헤더를 사용합니다.
  • OpenShift Container Platform 4.10 이상에서 OpenShift 경로를 사용하여 외부 트래픽에 HTTP/2 프로토콜을 통해 gRPC 프레임워크를 사용할 수 있습니다. 이를 통해 클라이언트와 서버 간 통신 효율성 및 속도가 향상됩니다.
  • Knative Operator Serving 및 Eventings CRD의 API 버전 v1alpha1 은 1.27에서 더 이상 사용되지 않습니다. 향후 버전에서는 제거될 예정입니다. 대신 v1beta1 버전을 사용하는 것이 좋습니다. 이는 CRD가 Serverless Operator를 업그레이드할 때 자동으로 업데이트되므로 기존 설치에는 영향을 미치지 않습니다.
  • 이제 전달 시간 초과 기능이 기본적으로 활성화되어 있습니다. 전송된 각 HTTP 요청에 대한 시간 제한을 지정할 수 있습니다. 기능은 기술 프리뷰로 남아 있습니다.

1.16.2. 해결된 문제

  • 이전에는 Knative 서비스가 Ready 상태가 되지 않아 로드 밸런서가 준비될 때까지 기다리는 동안 보고되는 경우가 있었습니다. 이 문제가 해결되었습니다.

1.16.3. 확인된 문제

  • OpenShift Serverless를 Red Hat OpenShift Service Mesh와 통합하면 클러스터에 보안이 너무 많은 경우 net-kourier Pod가 시작 시 메모리가 부족해집니다.
  • 네임스페이스 범위 브로커는 네임스페이스 범위 브로커를 삭제한 후에도 사용자 네임스페이스에 ClusterRoleBinding 을 남겨 둘 수 있습니다.

    이 경우 사용자 네임스페이스에서 rbac-proxy-reviews-prom-rb-knative-kafka-broker-data-plane-{{.Namespace}} 이라는 ClusterRoleBinding 을 삭제합니다.

1.17. Red Hat OpenShift Serverless 1.26

OpenShift Serverless 1.26이 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

1.17.1. 새로운 기능

  • Quarkus를 사용한 OpenShift Serverless Functions가 GA로 제공됩니다.
  • OpenShift Serverless에서 Knative Serving 1.5를 사용합니다.
  • OpenShift Serverless에서 Knative Eventing 1.5를 사용합니다.
  • OpenShift Serverless에서 Kourier 1.5를 사용합니다.
  • OpenShift Serverless에서 Knative(kn) CLI 1.5를 사용합니다.
  • OpenShift Serverless에서 Knative Kafka 1.5를 사용합니다.
  • OpenShift Serverless에서 Knative Operator 1.3을 사용합니다.
  • kn func CLI 플러그인은 이제 func 1.8.1을 사용합니다.
  • PVC(영구 볼륨 클레임)는 이제 GA입니다. PVC는 Knative 서비스에 영구 데이터 스토리지를 제공합니다.
  • 이제 새로운 트리거 필터 기능을 개발자 프리뷰로 사용할 수 있습니다. 이를 통해 각 표현식은 각 이벤트에 대해 true 또는 false로 평가되는 필터 표현식 세트를 지정할 수 있습니다.

    새 트리거 필터를 활성화하려면 Operator 구성 맵에서 KnativeEventing 유형 섹션에 new-trigger-filters: enabled 항목을 추가합니다.

    apiVersion: operator.knative.dev/v1beta1
    kind: KnativeEventing
    ...
    ...
    spec:
      config:
        features:
          new-trigger-filters: enabled
    ...
    Copy to Clipboard Toggle word wrap
  • Knative Operator 1.3은 operator.knative.dev 용으로 업데이트된 v1beta1 버전을 추가합니다.

    KnativeServingKnativeEventing 사용자 정의 리소스 구성 맵의 v1alpha1 에서 v1beta1 로 업데이트하려면 apiVersion 키를 편집합니다.

    KnativeServing 사용자 정의 리소스 구성 맵의 예

    apiVersion: operator.knative.dev/v1beta1
    kind: KnativeServing
    ...
    Copy to Clipboard Toggle word wrap

    KnativeEventing 사용자 정의 리소스 구성 맵의 예

    apiVersion: operator.knative.dev/v1beta1
    kind: KnativeEventing
    ...
    Copy to Clipboard Toggle word wrap

1.17.2. 해결된 문제

  • 이전에는 Kafka 브로커, Kafka 소스 및 Kafka 싱크에 대해 FIPS(Federal Information Processing Standards) 모드가 비활성화되었습니다. 이 문제는 수정되었으며 FIPS 모드를 사용할 수 있습니다.

1.18. Red Hat OpenShift Serverless 1.25.0

OpenShift Serverless 1.25.0이 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

1.18.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 1.4를 사용합니다.
  • OpenShift Serverless에서 Knative Eventing 1.4를 사용합니다.
  • OpenShift Serverless에서 Kourier 1.4를 사용합니다.
  • OpenShift Serverless에서 Knative(kn) CLI 1.4를 사용합니다.
  • OpenShift Serverless에서 Knative Kafka 1.4를 사용합니다.
  • kn func CLI 플러그인은 func 1.7.0을 사용합니다.
  • 함수를 만들고 배포하기 위한 IDE(통합 개발 환경) 플러그인은 이제 Visual Studio CodeIntelliJ 에서 사용할 수 있습니다.
  • Knative Kafka 브로커는 이제 GA입니다. Knative Kafka 브로커는 Apache Kafka를 직접 대상으로 하는 Knative 브로커 API의 고도로 성능 높은 구현입니다.

    대신 MT-Channel-Broker이지만 Knative Kafka 브로커를 사용하지 않는 것이 좋습니다.

  • Knative Kafka 싱크는 이제 GA입니다. KafkaSinkCloudEvent 를 사용하여 Apache Kafka 주제로 보냅니다. 이벤트는 구조화된 또는 바이너리 콘텐츠 모드로 지정할 수 있습니다.
  • 내부 트래픽에 TLS를 활성화하면 이제 기술 프리뷰로 사용할 수 있습니다.

1.18.2. 해결된 문제

  • 이전에는 활성 상태 프로브가 실패한 후 컨테이너를 다시 시작한 경우 Knative Serving에 준비 프로브가 실패한 문제가 있었습니다. 이 문제가 해결되었습니다.

1.18.3. 확인된 문제

  • Kafka 브로커, Kafka 소스 및 Kafka 싱크에 대해 FIPS(Federal Information Processing Standards) 모드는 비활성화되어 있습니다.
  • SinkBinding 오브젝트는 서비스의 사용자 정의 버전 이름을 지원하지 않습니다.
  • Knative Serving 컨트롤러 Pod는 클러스터의 시크릿을 감시하기 위해 새 정보를 추가합니다. 정보 제공자에는 캐시의 시크릿이 포함되어 있어 컨트롤러 Pod의 메모리 사용량이 증가합니다.

    Pod가 메모리 부족하면 배포에 대한 메모리 제한을 늘려 문제를 해결할 수 있습니다.

1.19. Red Hat OpenShift Serverless 1.24.0

OpenShift Serverless 1.24.0이 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

1.19.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 1.3을 사용합니다.
  • OpenShift Serverless에서 Knative Eventing 1.3을 사용합니다.
  • OpenShift Serverless에서 Kourier 1.3을 사용합니다.
  • OpenShift Serverless에서 Knative kn CLI 1.3을 사용합니다.
  • OpenShift Serverless에서 Knative Kafka 1.3을 사용합니다.
  • kn func CLI 플러그인은 이제 func 0.24를 사용합니다.
  • Knative 서비스에 대한 init 컨테이너 지원을 일반적으로 사용할 수 있습니다.
  • OpenShift Serverless 논리가 이제 개발자 프리뷰로 제공됩니다. 서버리스 애플리케이션을 관리하기 위한 선언적 워크플로 모델을 정의할 수 있습니다.
  • OpenShift Container Platform의 경우 OpenShift Serverless에서 비용 관리 서비스를 사용할 수 있습니다.

1.19.2. 해결된 문제

  • OpenShift Serverless를 Red Hat OpenShift Service Mesh와 통합하면 클러스터에 보안이 너무 많은 경우 net-istio-controller Pod가 시작 시 메모리가 부족해집니다.

    이제 net-istio-controllernetworking.internal.knative.dev/certificate-uid 레이블이 있는 보안만 고려하도록 시크릿 필터링을 활성화할 수 있으므로 필요한 메모리 양이 줄어듭니다.

  • OpenShift Serverless Functions 기술 프리뷰는 기본적으로 Cloud Native Buildpacks 를 사용하여 컨테이너 이미지를 빌드합니다.

1.19.3. 확인된 문제

  • Kafka 브로커, Kafka 소스 및 Kafka 싱크에 대해 FIPS(Federal Information Processing Standards) 모드는 비활성화되어 있습니다.
  • OpenShift Serverless 1.23에서는 KafkaBindings 및 kafka-binding Webhook에 대한 지원이 제거되었습니다. 그러나 기존 kafkabindings.webhook.kafka.sources.knative.dev MutatingWebhookConfiguration 은 더 이상 존재하지 않는 kafka-source-webhook 서비스를 가리킬 수 있습니다.

    클러스터의 KafkaBindings의 특정 사양의 경우 kafkabindings.webhook.kafka.sources.knative.dev MutatingWebhookConfiguration 은 배포, Knative 서비스 또는 작업과 같은 다양한 리소스에 이벤트를 전달하도록 구성할 수 있으며 Webhook를 통해 실패합니다.

    이 문제를 해결하려면 OpenShift Serverless 1.23으로 업그레이드한 후 클러스터에서 kafkabindings.webhook.kafka.sources.knative.dev MutatingWebhookConfiguration 을 수동으로 삭제합니다.

    $ oc delete mutatingwebhookconfiguration kafkabindings.webhook.kafka.sources.knative.dev
    Copy to Clipboard Toggle word wrap

1.20. Red Hat OpenShift Serverless 1.23.0

OpenShift Serverless 1.23.0을 사용할 수 있습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

1.20.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 1.2를 사용합니다.
  • OpenShift Serverless에서 Knative Eventing 1.2를 사용합니다.
  • OpenShift Serverless에서 Kourier 1.2를 사용합니다.
  • OpenShift Serverless에서 Knative(kn) CLI 1.2를 사용합니다.
  • OpenShift Serverless에서 Knative Kafka 1.2를 사용합니다.
  • kn func CLI 플러그인은 이제 func 0.24를 사용합니다.
  • 이제 Kafka 브로커와 함께 kafka.eventing.knative.dev/external.topic 주석을 사용할 수 있습니다. 이 주석을 사용하면 브로커가 자체 내부 주제를 생성하는 대신 외부 관리 주제를 사용할 수 있습니다.
  • kafka-ch-controllerkafka-webhook Kafka 구성 요소가 더 이상 존재하지 않습니다. 이러한 구성 요소는 kafka-webhook-eventing 구성 요소로 교체되었습니다.
  • OpenShift Serverless Functions 기술 프리뷰는 기본적으로 S2I(Source-to-Image)를 사용하여 컨테이너 이미지를 빌드합니다.

1.20.2. 확인된 문제

  • Kafka 브로커, Kafka 소스 및 Kafka 싱크에 대해 FIPS(Federal Information Processing Standards) 모드는 비활성화되어 있습니다.
  • Kafka 브로커가 포함된 네임스페이스를 삭제하면 브로커 전에 브로커의 auth.secret.ref.name 보안이 삭제되면 네임스페이스 종료자가 제거되지 않을 수 있습니다.
  • 많은 수의 Knative 서비스를 사용하여 OpenShift Serverless를 실행하면 Knative 활성화 Pod가 기본 메모리 제한 600MB에 가깝게 실행될 수 있습니다. 메모리 사용량이 이 제한에 도달하면 이러한 Pod가 재시작될 수 있습니다. 활성화자 배포에 대한 요청 및 제한은 KnativeServing 사용자 정의 리소스를 수정하여 구성할 수 있습니다.

    apiVersion: operator.knative.dev/v1beta1
    kind: KnativeServing
    metadata:
      name: knative-serving
      namespace: knative-serving
    spec:
      deployments:
      - name: activator
        resources:
        - container: activator
          requests:
            cpu: 300m
            memory: 60Mi
          limits:
            cpu: 1000m
            memory: 1000Mi
    Copy to Clipboard Toggle word wrap
  • 함수의 로컬 빌드 전략으로 Cloud Native Buildpacks 를 사용하는 경우 kn func 는 podman을 자동으로 시작하거나 원격 데몬에 SSH 터널을 사용할 수 없습니다. 이러한 문제의 해결 방법은 함수를 배포하기 전에 Docker 또는 podman 데몬이 로컬 개발 컴퓨터에서 이미 실행되고 있는 것입니다.
  • On-cluster 함수 빌드는 현재 Quarkus 및 Golang 런타임에 실패합니다. Node, Typescript, Python, Springboot 런타임에서 올바르게 작동합니다.

1.21. Red Hat OpenShift Serverless 1.22.0

OpenShift Serverless 1.22.0이 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

1.21.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 1.1을 사용합니다.
  • OpenShift Serverless에서 Knative Eventing 1.1을 사용합니다.
  • OpenShift Serverless에서 Kourier 1.1을 사용합니다.
  • OpenShift Serverless에서 Knative(kn) CLI 1.1을 사용합니다.
  • OpenShift Serverless에서 Knative Kafka 1.1을 사용합니다.
  • kn func CLI 플러그인은 이제 func 0.23을 사용합니다.
  • Knative 서비스에 대한 init 컨테이너 지원을 기술 프리뷰로 사용할 수 있습니다.
  • Knative 서비스에 대한 PVC(영구 볼륨 클레임) 지원을 기술 프리뷰로 사용할 수 있습니다.
  • knative-serving,knative-serving-ingress,knative-eventingknative-kafka 시스템 네임스페이스에 기본적으로 knative.openshift.io/part-of: "openshift-serverless" 레이블이 있습니다.
  • Knative Eventing - Kafka Broker/Trigger 대시보드가 추가되어 웹 콘솔에서 Kafka 브로커 및 트리거 메트릭을 시각화할 수 있습니다.
  • Knative Eventing - KafkaSink 대시보드가 추가되어 웹 콘솔에서 KafkaSink 지표를 시각화할 수 있습니다.
  • Knative Eventing - Broker/Trigger 대시보드를 Knative Eventing - 채널 기반 브로커/Trigger 라고 합니다.
  • knative.openshift.io/part-of: "openshift-serverless" 레이블이 knative.openshift.io/system-namespace 레이블을 대체합니다.
  • Knative Serving YAML 구성 파일의 이름 지정 스타일이 카멜 케이스에서 하이픈 스타일(: 이름)으로 변경되었습니다. 이번 릴리스에서는 Knative Serving YAML 구성 파일을 생성하거나 편집할 때 하이픈 스타일 표기법을 사용합니다.

1.21.2. 확인된 문제

  • Kafka 브로커, Kafka 소스 및 Kafka 싱크에 대해 FIPS(Federal Information Processing Standards) 모드는 비활성화되어 있습니다.

1.22. Red Hat OpenShift Serverless 1.21.0

OpenShift Serverless 1.21.0이 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

1.22.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 1.0 사용
  • OpenShift Serverless에서 Knative Eventing 1.0을 사용합니다.
  • OpenShift Serverless에서 Kourier 1.0을 사용합니다.
  • OpenShift Serverless에서 Knative(kn) CLI 1.0을 사용합니다.
  • OpenShift Serverless에서 Knative Kafka 1.0을 사용합니다.
  • kn func CLI 플러그인은 이제 func 0.21을 사용합니다.
  • Kafka 싱크를 기술 프리뷰로 사용할 수 있습니다.
  • Knative 오픈 소스 프로젝트는 kebab-cased 키를 일관되게 사용하기 위해 camel-cased 구성 키를 사용 중단하기 시작했습니다. 결과적으로 이전에 OpenShift Serverless 1.18.0 릴리스 노트에 언급된 defaultExternalScheme 키가 더 이상 사용되지 않으며 default-external-scheme 키로 교체되었습니다. 키에 대한 사용 지침은 동일하게 유지됩니다.

1.22.2. 해결된 문제

  • OpenShift Serverless 1.20.0에서는 이벤트를 서비스에 보내는 kn 이벤트 전송 사용에 영향을 미치는 이벤트 전달 문제가 있었습니다. 이제 이 문제가 해결되었습니다.
  • OpenShift Serverless 1.20.0(func 0.20)에서 http 템플릿으로 생성된 TypeScript 함수를 클러스터에 배포하지 못했습니다. 이제 이 문제가 해결되었습니다.
  • OpenShift Serverless 1.20.0(func 0.20)에서는 gcr.io 레지스트리를 사용하여 함수를 배포하는 데 오류가 발생했습니다. 이제 이 문제가 해결되었습니다.
  • OpenShift Serverless 1.20.0(func 0.20)에서 kn func create 명령을 사용하여 Springboot 함수 프로젝트 디렉터리를 생성한 다음 kn func build 명령을 실행하면 오류 메시지와 함께 실패했습니다. 이제 이 문제가 해결되었습니다.
  • OpenShift Serverless 1.19.0 (func 0.19)에서 일부 런타임은 podman을 사용하여 함수를 빌드할 수 없었습니다. 이제 이 문제가 해결되었습니다.

1.22.3. 확인된 문제

  • 현재 도메인 매핑 컨트롤러는 현재 지원되지 않는 경로가 포함된 브로커의 URI를 처리할 수 없습니다.

    즉, DomainMapping CR(사용자 정의 리소스)을 사용하여 사용자 정의 도메인을 브로커에 매핑하려면 브로커의 수신 서비스를 사용하여 DomainMapping CR을 구성하고 브로커의 정확한 경로를 사용자 정의 도메인에 추가해야 합니다.

    DomainMapping CR의 예

    apiVersion: serving.knative.dev/v1alpha1
    kind: DomainMapping
    metadata:
      name: <domain-name>
      namespace: knative-eventing
    spec:
      ref:
        name: broker-ingress
        kind: Service
        apiVersion: v1
    Copy to Clipboard Toggle word wrap

    브로커의 URI는 < domain-name>/<broker-namespace>/<broker-name>입니다.

1.23. Red Hat OpenShift Serverless 1.20.0

OpenShift Serverless 1.20.0을 사용할 수 있습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

1.23.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 0.26을 사용합니다.
  • OpenShift Serverless에서 Knative Eventing 0.26을 사용합니다.
  • OpenShift Serverless에서 Kourier 0.26을 사용합니다.
  • OpenShift Serverless에서 Knative (kn) CLI 0.26을 사용합니다.
  • OpenShift Serverless에서 Knative Kafka 0.26을 사용합니다.
  • kn func CLI 플러그인은 func 0.20을 사용합니다.
  • Kafka 브로커는 이제 기술 프리뷰로 사용할 수 있습니다.

    중요

    현재 기술 프리뷰에 있는 Kafka 브로커는 FIPS에서 지원되지 않습니다.

  • kn 이벤트 플러그인은 이제 기술 프리뷰로 사용할 수 있습니다.
  • kn service create 명령의 --min-scale--max-scale 플래그가 더 이상 사용되지 않습니다. 대신 --scale-min--scale-max 플래그를 사용합니다.

1.23.2. 확인된 문제

  • OpenShift Serverless는 HTTPS를 사용하는 기본 주소로 Knative 서비스를 배포합니다. 클러스터 내부의 리소스로 이벤트를 전송하는 경우 발신자에 클러스터 CA(인증 기관)가 구성되지 않습니다. 이로 인해 클러스터가 전역에서 허용되는 인증서를 사용하지 않는 한 이벤트 전달이 실패합니다.

    예를 들어 공개적으로 액세스 가능한 주소로 이벤트 전달이 작동합니다.

    $ kn event send --to-url https://ce-api.foo.example.com/
    Copy to Clipboard Toggle word wrap

    반면, 서비스에서 사용자 정의 CA에서 발급한 HTTPS 인증서와 함께 공용 주소를 사용하는 경우 이 전달이 실패합니다.

    $ kn event send --to Service:serving.knative.dev/v1:event-display
    Copy to Clipboard Toggle word wrap

    브로커 또는 채널과 같은 다른 주소 지정 가능한 개체에 이벤트를 전송하는 것은 이 문제의 영향을 받지 않으며 예상대로 작동합니다.

  • Kafka 브로커는 현재 FIPS(Federal Information Processing Standards) 모드가 활성화된 클러스터에서 작동하지 않습니다.
  • kn func create 명령을 사용하여 Springboot 함수 프로젝트 디렉터리를 생성하면 다음 오류 메시지와 함께 kn func build 명령을 실행하면 실패합니다.

    [analyzer] no stack metadata found at path ''
    [analyzer] ERROR: failed to : set API for buildpack 'paketo-buildpacks/ca-certificates@3.0.2': buildpack API version '0.7' is incompatible with the lifecycle
    Copy to Clipboard Toggle word wrap

    이 문제를 해결하려면 함수 구성 파일 func.yamlbuilder 속성을 gcr.io/paketo-buildpacks/builder:base 로 변경할 수 있습니다.

  • gcr.io 레지스트리를 사용하여 함수를 배포하면 이 오류 메시지와 함께 실패합니다.

    Error: failed to get credentials: failed to verify credentials: status code: 404
    Copy to Clipboard Toggle word wrap

    이 문제를 해결하려면 quay.io 또는 docker.io 와 같은 gcr.io 와 다른 레지스트리를 사용합니다.

  • http 템플릿으로 생성된 TypeScript 함수는 클러스터에 배포되지 않습니다.

    이 문제를 해결하려면 func.yaml 파일에서 다음 섹션을 교체합니다.

    buildEnvs: []
    Copy to Clipboard Toggle word wrap

    이 경우 다음을 수행합니다.

    buildEnvs:
    - name: BP_NODE_RUN_SCRIPTS
      value: build
    Copy to Clipboard Toggle word wrap
  • func 버전 0.20에서는 podman을 사용하여 일부 런타임에서 함수를 빌드하지 못할 수 있습니다. 다음과 유사한 오류 메시지가 표시될 수 있습니다.

    ERROR: failed to image: error during connect: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/info": EOF
    Copy to Clipboard Toggle word wrap
    • 이 문제에 대한 다음 해결방법이 있습니다.

      1. service ExecStart 정의에 --time=0 을 추가하여 podman 서비스를 업데이트합니다.

        서비스 구성 예

        ExecStart=/usr/bin/podman $LOGGING system service --time=0
        Copy to Clipboard Toggle word wrap

      2. 다음 명령을 실행하여 podman 서비스를 다시 시작합니다.

        $ systemctl --user daemon-reload
        Copy to Clipboard Toggle word wrap
        $ systemctl restart --user podman.socket
        Copy to Clipboard Toggle word wrap
    • 또는 TCP를 사용하여 podman API를 노출할 수도 있습니다.

      $ podman system service --time=0 tcp:127.0.0.1:5534 &
      export DOCKER_HOST=tcp://127.0.0.1:5534
      Copy to Clipboard Toggle word wrap

1.24. Red Hat OpenShift Serverless 1.19.0

OpenShift Serverless 1.19.0이 공개되었습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

1.24.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 0.25를 사용합니다.
  • OpenShift Serverless에서 Knative Eventing 0.25를 사용합니다.
  • OpenShift Serverless에서 Kourier 0.25를 사용합니다.
  • OpenShift Serverless에서 Knative (kn) CLI 0.25를 사용합니다.
  • OpenShift Serverless에서 Knative Kafka 0.25를 사용합니다.
  • kn func CLI 플러그인은 이제 func 0.19를 사용합니다.
  • KafkaBinding API는 OpenShift Serverless 1.19.0에서 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다.
  • 이제 HTTPS 리디렉션이 지원되며 클러스터 또는 각 Knative 서비스에 대해 전역적으로 구성할 수 있습니다.

1.24.2. 해결된 문제

  • 이전 릴리스에서는 Kafka 채널 디스패처가 응답하기 전에 로컬 커밋이 성공할 때까지 기다려야 했습니다. 이로 인해 Apache Kafka 노드 실패 시 이벤트가 손실될 수 있었습니다. 이제 Kafka 채널 디스패처에서 응답하기 전에 모든 in-sync 복제본이 커밋될 때까지 기다립니다.

1.24.3. 확인된 문제

  • func 버전 0.19에서는 podman을 사용하여 일부 런타임에서 함수를 빌드하지 못할 수 있습니다. 다음과 유사한 오류 메시지가 표시될 수 있습니다.

    ERROR: failed to image: error during connect: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/info": EOF
    Copy to Clipboard Toggle word wrap
    • 이 문제에 대한 다음 해결방법이 있습니다.

      1. service ExecStart 정의에 --time=0 을 추가하여 podman 서비스를 업데이트합니다.

        서비스 구성 예

        ExecStart=/usr/bin/podman $LOGGING system service --time=0
        Copy to Clipboard Toggle word wrap

      2. 다음 명령을 실행하여 podman 서비스를 다시 시작합니다.

        $ systemctl --user daemon-reload
        Copy to Clipboard Toggle word wrap
        $ systemctl restart --user podman.socket
        Copy to Clipboard Toggle word wrap
    • 또는 TCP를 사용하여 podman API를 노출할 수도 있습니다.

      $ podman system service --time=0 tcp:127.0.0.1:5534 &
      export DOCKER_HOST=tcp://127.0.0.1:5534
      Copy to Clipboard Toggle word wrap

1.25. Red Hat OpenShift Serverless 1.18.0

OpenShift Serverless 1.18.0을 사용할 수 있습니다. OpenShift Container Platform의 OpenShift Serverless와 관련된 새로운 기능, 업데이트 및 알려진 문제는 다음 사항에 포함되어 있습니다.

1.25.1. 새로운 기능

  • OpenShift Serverless에서 Knative Serving 0.24.0을 사용합니다.
  • OpenShift Serverless에서 Knative Eventing 0.24.0을 사용합니다.
  • OpenShift Serverless에서 Kourier 0.24.0을 사용합니다.
  • OpenShift Serverless에서 Knative (kn) CLI 0.24.0을 사용합니다.
  • OpenShift Serverless에서 Knative Kafka 0.24.7을 사용합니다.
  • kn func CLI 플러그인은 이제 func 0.18.0을 사용합니다.
  • 향후 OpenShift Serverless 1.19.0 릴리스에서는 보안을 강화하기 위해 외부 경로의 URL 체계가 기본적으로 HTTPS로 설정됩니다.

    이 변경 사항을 워크로드에 적용하지 않으려면 1.19.0으로 업그레이드하기 전에 다음 YAML을 KnativeServing CR(사용자 정의 리소스)에 추가하여 기본 설정을 덮어쓸 수 있습니다.

    ...
    spec:
      config:
        network:
          defaultExternalScheme: "http"
    ...
    Copy to Clipboard Toggle word wrap

    변경 사항을 1.18.0에 이미 적용하려면 다음 YAML을 추가합니다.

    ...
    spec:
      config:
        network:
          defaultExternalScheme: "https"
    ...
    Copy to Clipboard Toggle word wrap
  • 향후 OpenShift Serverless 1.19.0 릴리스에서 Kourier Gateway가 노출되는 기본 서비스 유형은 LoadBalancer 가 아닌 ClusterIP 가 됩니다.

    이 변경 사항을 워크로드에 적용하지 않으려면 1.19.0으로 업그레이드하기 전에 다음 YAML을 KnativeServing CR(사용자 정의 리소스)에 추가하여 기본 설정을 덮어쓸 수 있습니다.

    ...
    spec:
      ingress:
        kourier:
          service-type: LoadBalancer
    ...
    Copy to Clipboard Toggle word wrap
  • 이제 OpenShift Serverless에서 emptyDir 볼륨을 사용할 수 있습니다. 자세한 내용은 OpenShift Serverless 설명서를 참조하십시오.
  • kn func 를 사용하여 함수를 생성할 때 rust 템플릿을 사용할 수 있습니다.

1.25.2. 해결된 문제

  • Camel-K의 이전 1.4 버전은 OpenShift Serverless 1.17.0과 호환되지 않았습니다. Camel-K의 문제가 해결되었으며 Camel-K 버전 1.4.1은 OpenShift Serverless 1.17.0과 함께 사용할 수 있습니다.
  • 이전 버전에서는 Kafka 채널 또는 새 Kafka 소스에 대한 새 서브스크립션을 생성한 경우 새로 생성된 서브스크립션 또는 싱크에서 준비 상태를 보고한 후 Kafka 데이터 플레인에서 메시지를 디스패치할 준비가 된 지연이 가능했습니다.

    결과적으로 데이터 플레인에서 준비 상태를 보고하지 않은 시간 동안 전송된 메시지가 구독자 또는 싱크로 전달되지 않을 수 있었습니다.

    OpenShift Serverless 1.18.0에서는 문제가 해결되어 더 이상 초기 메시지가 손실되지 않습니다. 문제에 대한 자세한 내용은 지식베이스 문서 #6343981 을 참조하십시오.

1.25.3. 확인된 문제

  • 이전 버전의 Knative kn CLI에서는 이전 버전의 Knative Serving 및 Knative Eventing API를 사용할 수 있습니다. 예를 들어 kn CLI의 0.23.2 버전은 v1alpha1 API 버전을 사용합니다.

    반면 OpenShift Serverless의 최신 릴리스에서는 더 이상 이전 API 버전을 지원하지 않을 수 있습니다. 예를 들어 OpenShift Serverless 1.18.0은 더 이상 kafkasources.sources.knative.dev API의 버전 v1alpha1 을 지원하지 않습니다.

    결과적으로 최신 OpenShift Serverless에서 이전 버전의 Knative kn CLI를 사용하면 kn 에서 오래된 API를 찾을 수 없기 때문에 오류가 발생할 수 있습니다. 예를 들어 kn CLI의 0.23.2 버전은 OpenShift Serverless 1.18.0에서 작동하지 않습니다.

    문제를 방지하려면 OpenShift Serverless 릴리스에 사용 가능한 최신 kn CLI 버전을 사용하십시오. OpenShift Serverless 1.18.0의 경우 Knative kn CLI 0.24.0을 사용합니다.

2장. OpenShift Serverless 개요

OpenShift Serverless에서는 개발자가 OpenShift Container Platform에서 서버리스 이벤트 중심 애플리케이션을 생성하고 배포할 수 있는 Kubernetes 기본 구성 블록을 제공합니다. 서버리스 애플리케이션은 요청 시 확장 및 축소(0)할 수 있으며 여러 이벤트 소스에 의해 트리거됩니다. OpenShift Serverless는 엔터프라이즈급 서버리스 플랫폼을 활성화하여 하이브리드 및 멀티 클라우드 환경에 이식성과 일관성을 제공하는 오픈 소스 Knative 프로젝트를 기반으로 합니다.

참고

OpenShift Serverless는 OpenShift Container Platform과 다른 주기로 릴리스되므로 OpenShift Serverless 설명서는 이제 제품의 각 마이너 버전에 대한 별도의 문서 세트로 제공됩니다.

OpenShift Serverless 문서는 https://docs.openshift.com/serverless/ 에서 확인할 수 있습니다.

특정 버전에 대한 문서는 버전 선택기 드롭다운을 사용하거나 URL에 버전을 추가하여 직접 확인할 수 있습니다(예: https://docs.openshift.com/serverless/1.28 ).

또한 OpenShift Serverless 설명서는 https://access.redhat.com/documentation/en-us/red_hat_openshift_serverless/ 의 Red Hat 포털에서도 사용할 수 있습니다.

OpenShift Serverless 라이프 사이클 및 지원되는 플랫폼에 대한 자세한 내용은 플랫폼 라이프 사이클 정책을 참조하십시오.

2.1. OpenShift Serverless의 구성 요소

2.1.1. Knative Serving

Knative Serving은 Kubernetes에 빌드되어 서버리스 컨테이너로 애플리케이션 및 기능의 배포 및 서비스를 지원합니다. 서빙은 애플리케이션 배포를 단순화하고, 들어오는 트래픽을 기반으로 동적으로 확장하며 트래픽 분할을 통해 사용자 정의 롤아웃 전략을 지원합니다.

Knative Serving에는 다음 기능이 포함되어 있습니다.

  • 서버리스 컨테이너 배포 간소화
  • scale-to-zero를 포함한 트래픽 기반 자동 확장
  • 라우팅 및 네트워크 프로그래밍
  • 지정 시간 애플리케이션 스냅샷 및 해당 구성

2.1.2. Knative Eventing

Knative Eventing에서는 구성 가능 프리미티브를 제공하는 플랫폼을 제공하여 late-binding 이벤트 소스 및 이벤트 소비자를 활성화합니다.

Knative Eventing에서는 다음과 같은 아키텍처 클라우드 네이티브 개념을 지원합니다.

  • 서비스는 개발 중에 느슨하게 결합되어 프로덕션에 독립적으로 배포됩니다.
  • 생산자는 소비자가 수신 대기하기 전에 이벤트를 생성할 수 있으며, 소비자는 아직 생성되지 않은 이벤트 또는 이벤트 클래스에 대한 관심을 나타낼 수 있습니다.
  • 서비스를 연결하여 생산자 또는 소비자를 수정하지 않고 특정 생산자에서 특정 이벤트 하위 집합을 선택할 수 있습니다.

2.1.3. OpenShift Serverless Functions

OpenShift Serverless Functions를 사용하면 Knative 서비스로 배포된 함수를 작성하고 Knative Serving 및 Eventing을 활용할 수 있습니다.

OpenShift Serverless Functions에는 다음 기능이 포함되어 있습니다.

  • 다음 빌드 전략에 대한 지원:

    • S2I(Source-to-Image)
    • Buildpacks
  • 여러 런타임
  • Knative(kn) CLI를 통한 로컬 개발자 경험
  • 프로젝트 템플릿
  • CloudEvents 및 일반 HTTP 요청 수신 지원

2.1.4. OpenShift Serverless Logic

OpenShift Serverless Logic을 사용하면 YAML 또는 JSON 파일을 사용하여 선언적 워크플로 모델을 정의할 수 있습니다. 선언적 워크플로 모델은 이벤트 중심 서버리스 애플리케이션을 오케스트레이션합니다. OpenShift Serverless Logic을 사용하면 워크플로우 실행을 시각화하여 디버깅 및 최적화를 간소화할 수 있습니다. 또한 기본 제공 오류 처리 및 내결함성을 포함하므로 워크플로우 실행 중에 발생하는 오류 및 예외를 더 쉽게 처리할 수 있습니다. OpenShift Serverless Logic은 CNCF Serverless Workflow 사양 을 구현합니다.

2.1.5. Knative CLI

Knative(kn) CLI를 사용하면 명령줄에서 또는 쉘 스크립트 내에서 Knative 리소스를 생성할 수 있습니다. 광범위한 도움말 페이지 및 자동 완성 지원을 통해 Knative 리소스 스키마의 세부 구조를 암기할 수 있습니다.

Knative(kn) CLI에는 다음 기능이 포함되어 있습니다.

  • 다음 Knative Serving 기능 관리 지원

    • 서비스
    • 버전
    • 라우트
  • 다음 Knative Eventing 엔티티 관리 지원

    • 소스
    • 브로커
    • Trigger
    • 채널
    • 서브스크립션
  • 쿠버네티스 (kubectl) CLI 툴의 설계를 기반으로 하는 플러그인 아키텍처
  • Knative를 Tekton 파이프라인에 통합

3장. Knative Serving

Knative Serving에서는 클라우드 네이티브 애플리케이션을 생성, 배포 및 관리하려는 개발자를 지원합니다. OpenShift Container Platform 클러스터에서 서버리스 워크로드 동작을 정의하고 제어하는 Kubernetes CRD(사용자 정의 리소스 정의)로 오브젝트 세트를 제공합니다.

개발자는 이러한 CRD를 사용하여 복잡한 사용 사례를 다룰 때 구성 요소로 사용할 수 있는 CR(사용자 정의 리소스) 인스턴스를 생성합니다. 예를 들면 다음과 같습니다.

  • 신속한 서버리스 컨테이너 배포.
  • Pod 자동 스케일링.

3.1. Knative Serving 리소스

서비스
service.serving.knative.dev CRD를 사용하면 워크로드의 라이프사이클을 자동으로 관리하여 네트워크를 통해 애플리케이션을 배포하고 연결할 수 있습니다. 이 CRD는 사용자 생성 서비스 또는 사용자 정의 리소스가 변경될 때마다 경로, 구성, 새 버전을 생성합니다. Knative의 개발자 상호 작용은 대부분 서비스 수정을 통해 수행됩니다.
버전
revision.serving.knative.dev CRD는 워크로드에 수행된 각 수정의 코드 및 구성에 대한 시점 스냅샷입니다. 버전은 변경할 수 없는 오브젝트이며 필요한 기간에 유지할 수 있습니다.
Route
route.serving.knative.dev CRD는 네트워크 끝점을 하나 이상의 버전에 매핑합니다. 부분 트래픽 및 이름이 지정된 경로를 포함하여 다양한 방법으로 트래픽을 관리할 수 있습니다.
설정
configuration.serving.knative.dev CRD는 배포에 필요한 상태를 유지 관리합니다. 코드와 구성을 명확하게 분리합니다. 구성을 수정하면 새 버전이 생성됩니다.

4장. Knative Eventing

OpenShift Container Platform에서 Knative Eventing을 사용하면 개발자가 서버리스 애플리케이션에 이벤트 중심 아키텍처를 사용할 수 있습니다. 이벤트 중심 아키텍처는 이벤트 생산자와 이벤트 소비자 간의 분리된 관계에 대한 개념을 기반으로 합니다.

이벤트 생산자는 이벤트를 생성하고 이벤트 싱크 또는 소비자를 통해 이벤트를 수신합니다. Knative Eventing은 표준 HTTP POST 요청을 사용하여 이벤트 프로듀서와 싱크 사이에서 이벤트를 전송하고 수신합니다. 이러한 이벤트는 이벤트를 모든 프로그래밍 언어로 생성, 구문 분석, 전송, 수신할 수 있도록 CloudEvents 사양을 준수합니다.

Knative Eventing에서는 다음 유스 케이스를 지원합니다.

소비자를 생성하지 않고 이벤트 게시
이벤트를 HTTP POST에 브로커로 보내고 바인딩을 사용하여 이벤트를 생성하는 애플리케이션에서 대상 구성을 분리할 수 있습니다.
게시자를 생성하지 않고 이벤트 사용
트리거를 사용하면 이벤트 특성을 기반으로 브로커의 이벤트를 사용할 수 있습니다. 애플리케이션은 이벤트를 HTTP POST로 수신합니다.

Knative Eventing에서는 다양한 싱크 유형으로 전달할 수 있도록 다음과 같이 여러 Kubernetes 리소스에서 구현할 수 있는 일반 인터페이스를 정의합니다.

주소 지정 가능 리소스
HTTP를 통해 전달되는 이벤트를 이벤트의 status.address.url 필드에 정의된 주소로 수신 및 승인할 수 있습니다. Kubernetes Service 리소스도 주소 지정 가능 인터페이스의 조건을 충족합니다.
호출 가능한 리소스
HTTP를 통해 전달되는 이벤트를 수신하고 변환하여 HTTP 응답 페이로드에서 0 또는 1개의 새 이벤트를 반환합니다. 반환된 이벤트는 외부 이벤트 소스의 이벤트를 처리하는 것과 동일한 방식으로 추가로 처리할 수 있습니다.

4.1. Apache Kafka에 Knative 브로커 사용

Apache Kafka의 Knative 브로커 구현은 지원되는 버전의 Apache Kafka 메시지 스트리밍 플랫폼을 OpenShift Serverless와 함께 사용할 수 있는 통합 옵션을 제공합니다. Kafka는 이벤트 소스, 채널, 브로커 및 이벤트 싱크 기능에 대한 옵션을 제공합니다.

Apache Kafka용 Knative 브로커는 다음과 같은 추가 옵션을 제공합니다.

  • Kafka 소스
  • Kafka 채널
  • Kafka 브로커
  • Kafka 싱크

5장. OpenShift Serverless Functions 정보

OpenShift Serverless Functions를 사용하면 개발자가 상태 비저장 이벤트 중심 함수를 OpenShift Container Platform에서 Knative 서비스로 생성하고 배포할 수 있습니다. kn func CLI는 Knative kn CLI의 플러그인으로 제공됩니다. kn func CLI를 사용하여 컨테이너 이미지를 클러스터에 Knative 서비스로 생성, 빌드 및 배포할 수 있습니다.

5.1. 포함된 런타임

OpenShift Serverless Functions는 다음 런타임에 대한 기본 기능을 생성하는 데 사용할 수 있는 템플릿을 제공합니다.

5.2. 다음 단계

6장. OpenShift Serverless Logic 개요

OpenShift Serverless Logic을 사용하면 개발자가 이벤트 중심 서버리스 애플리케이션을 오케스트레이션하는 선언적 워크플로 모델을 정의할 수 있습니다.

클라우드 또는 컨테이너 환경에서 서버리스 애플리케이션을 개발하고 배포하는 데 이상적인 YAML 또는 JSON 형식으로 워크플로 모델을 작성할 수 있습니다.

OpenShift Container Platform에 워크플로를 배포하려면 OpenShift Serverless Logic Operator를 사용할 수 있습니다.

다음 섹션에서는 다양한 OpenShift Serverless Logic 개념에 대한 개요를 제공합니다.

6.1. 이벤트

이벤트 상태는 하나 이상의 이벤트 정의로 구성됩니다. 이벤트 정의는 이벤트 상태가 수신 대기하는 CloudEvent 유형을 지정하는 데 결합됩니다. 이벤트 상태를 사용하여 지정된 CloudEvent 를 수신할 때 새 워크플로우 인스턴스를 시작하거나 지정된 CloudEvent 를 수신할 때까지 기존 워크플로우 인스턴스의 실행을 일시 중지할 수 있습니다.

이벤트 상태 정의에서 onEvents 속성은 동일한 작업 세트를 트리거할 수 있는 CloudEvent 유형을 그룹화하는 데 사용됩니다. 이벤트 정의의 배타적 속성은 이벤트 일치를 계산하는 방법을 나타냅니다. 전용 속성 값이 false 인 경우 일치 항목이 발생하려면 eventRefs 배열의 모든 CloudEvent 유형을 수신해야 합니다. 그렇지 않으면 참조된 CloudEvent 유형의 수신이 일치하는 것으로 간주됩니다.

다음 예제에서는 noisysilent 을 포함하여 두 가지 CloudEvent 유형으로 구성된 이벤트 정의를 보여줍니다.

이벤트 정의 예

"events": [
    {
      "name": "noisyEvent",
      "source": "",
      "type": "noisy",
      "dataOnly" : "false"
    },
    {
      "name": "silentEvent",
      "source": "",
      "type": "silent"
    }
  ]
Copy to Clipboard Toggle word wrap

이벤트 일치가 noisysilent CloudEvent 유형이 모두 수신되고 두 CloudEvent 유형에 대해 다른 작업을 실행하기 위해 별도의 onEvent 항목에 있는 이벤트 정의를 포함하는 이벤트 상태를 정의하고 전용 속성을 false로 설정합니다.

여러 onEvent 항목이 있는 이벤트 상태 정의의 예

{
    "name": "waitForEvent",
    "type": "event",
    "onEvents": [
      {
        "eventRefs": [
          "noisyEvent"
         ],
         "actions": [
           {
             "functionRef": "letsGetLoud"
           }
         ]
      },
      {
        "eventRefs": [
           "silentEvent"
        ],
        "actions": [
          {
            "functionRef": "beQuiet"
          }
        ]
      }
    ]
    ,
    "exclusive": false
  }
Copy to Clipboard Toggle word wrap

6.2. 콜백

콜백 상태는 작업을 수행하고 워크플로우를 다시 시작하기 전에 작업 결과로 생성되는 이벤트를 기다립니다. 콜백 상태에 의해 수행되는 작업은 비동기 외부 서비스 호출입니다. 따라서 콜백 상태는 fire&wait-for-result 작업을 수행하는 데 적합합니다.

워크플로 관점에서 비동기 서비스는 작업이 완료될 때까지 기다리지 않고 제어가 호출자로 즉시 반환됨을 나타냅니다. 작업이 완료되면 워크플로우를 다시 시작하기 위해 CloudEvent 가 게시됩니다.

JSON 형식의 콜백 상태 예

{
        "name": "CheckCredit",
        "type": "callback",
        "action": {
            "functionRef": {
                "refName": "callCreditCheckMicroservice",
                "arguments": {
                    "customer": "${ .customer }"
                }
            }
        },
        "eventRef": "CreditCheckCompletedEvent",
        "timeouts": {
          "stateExecTimeout": "PT15M"
        },
        "transition": "EvaluateDecision"
}
Copy to Clipboard Toggle word wrap

YAML 형식의 콜백 상태 예

name: CheckCredit
type: callback
action:
  functionRef:
    refName: callCreditCheckMicroservice
    arguments:
      customer: "${ .customer }"
eventRef: CreditCheckCompletedEvent
timeouts:
  stateExecTimeout: PT15M
transition: EvaluateDecision
Copy to Clipboard Toggle word wrap

action 속성은 외부 활동 또는 서비스를 트리거하는 함수 호출을 정의합니다. 작업이 실행된 후 콜백 상태는 호출된 서비스에서 수동 결정을 완료했음을 나타내는 CloudEvent 를 기다립니다.

완료 콜백 이벤트가 수신되면 콜백 상태는 실행을 완료하고 다음 정의된 워크플로우 상태로 전환되거나 최종 상태인 경우 워크플로우 실행을 완료합니다.

6.3. JQ 표현식

각 워크플로우 인스턴스는 데이터 모델과 연결되어 있습니다. 데이터 모델은 워크플로우 파일에 YAML 또는 JSON 이 포함되어 있는지 여부와 관계없이 JSON 오브젝트로 구성됩니다. JSON 오브젝트의 초기 내용은 워크플로우 시작 방법에 따라 다릅니다. CloudEvent 를 사용하여 워크플로우를 생성하면 워크플로우 콘텐츠가 data 속성에서 가져옵니다. HTTP POST 요청을 통해 워크플로우가 시작되면 워크플로우 콘텐츠가 요청 본문에서 가져옵니다.

JQ 표현식은 데이터 모델과 상호 작용하는 데 사용됩니다. 지원되는 표현식 언어에는 JsonPath 및 JQ가 포함됩니다. JQ 표현식 언어는 기본 언어입니다. expressionLang 속성을 사용하여 표현식 언어를 JsonPath로 변경할 수 있습니다.

함수의 JQ 표현식 예

{
      "name": "max",
      "type": "expression",
      "operation": "{max: .numbers | max_by(.x), min: .numbers | min_by(.y)}"
    }
Copy to Clipboard Toggle word wrap

6.4. 오류 처리

OpenShift Serverless Logic을 사용하면 명시적 오류 처리를 정의할 수 있습니다. 워크플로우 모델 내부에서 일부 일반적인 오류 처리 엔터티 대신 오류가 발생하면 어떤 일이 발생할지 정의할 수 있습니다. 명시적 오류 처리를 사용하면 워크플로우와 외부 시스템 간의 상호 작용 중에 발생할 수 있는 오류를 처리할 수 있습니다. 오류가 발생하면 일반 워크플로우 시퀀스가 변경됩니다. 이러한 경우 워크플로우 상태는 사전 정의된 상태로 전환되는 대신 오류를 잠재적으로 처리할 수 있는 대체 상태로 전환됩니다.

각 워크플로우 상태는 실행 중에 발생할 수 있는 오류와 관련된 오류 처리를 정의할 수 있습니다. 한 상태로 정의된 오류 처리는 워크플로우 실행 중에 다른 상태를 실행하는 동안 발생한 오류를 처리하는 데 사용할 수 없습니다.

워크플로우 정의 내에서 명시적으로 처리되지 않은 워크플로우 상태 실행 중에 발생할 수 있는 알 수 없는 오류는 런타임 구현에 의해 보고되고 워크플로우 실행을 중지해야 합니다.

6.4.1. 오류 정의

워크플로의 오류 정의는 namecode 매개변수로 구성됩니다. name잘못된 매개 변수와 같은 오류에 대한 짧고 자연 언어 설명입니다. code 매개변수는 구현에서 오류를 식별하는 데 도움이 됩니다.

code 매개변수는 필수이며 엔진은 다양한 전략을 사용하여 제공된 값을 런타임 시 발생하는 예외에 매핑합니다. 사용 가능한 전략에는 FQCN, 오류 메시지, 상태 코드가 포함됩니다.

워크플로우를 실행하는 동안 워크플로우 최상위 오류 속성에서 알려진 워크플로 오류를 처리해야 합니다. 이 속성은 문자열 유형일 수 있습니다. 즉, 오류 정의를 포함하여 재사용 가능한 JSON 또는 YAML 정의 파일을 참조하거나 워크플로우 정의에서 이러한 검사된 오류를 인라인으로 정의할 수 있는 배열 유형이 있을 수 있습니다.

다음 예제에서는 두 유형에 대한 정의를 보여줍니다.

재사용 가능한 JSON 오류 정의 파일을 참조하는 예

{
"errors": "file://documents/reusable/errors.json"
}
Copy to Clipboard Toggle word wrap

재사용 가능한 YAML 오류 정의 파일을 참조하는 예

errors: file://documents/reusable/errors.json
Copy to Clipboard Toggle word wrap

JSON 파일을 사용하여 인라인 워크플로우 오류 정의 예

{
"errors": [
  {
    "name": "Service not found error",
    "code": "404",
    "description": "Server has not found anything matching the provided service endpoint information"
  }
]
}
Copy to Clipboard Toggle word wrap

YAML 파일을 사용하여 인라인 워크플로우 오류 정의 예

errors:
  - name: Service not found error
    code: '404'
    description: Server has not found anything matching the provided service endpoint
      information
Copy to Clipboard Toggle word wrap

6.5. 스키마 정의

OpenShift Serverless Logic은 입력 스키마 정의 및 출력 스키마 정의의 두 가지 유형의 스키마 정의를 지원합니다.

6.5.1. 입력 스키마 정의

dataInputSchema 매개변수는 정의된 JSON 스키마에 대해 워크플로 데이터 입력을 검증합니다. 워크플로우 상태가 실행되기 전에 제공된 워크플로우 데이터 입력이 올바른지 확인하는 데 사용되므로 dataInputSchema 를 제공하는 것이 중요합니다.

다음과 같이 dataInputSchema 를 정의할 수 있습니다.

dataInputSchema 정의의 예

"dataInputSchema": {
   "schema": "URL_to_json_schema",
   "failOnValidationErrors": false
}
Copy to Clipboard Toggle word wrap

스키마 속성은 URI로, 워크플로우 데이터 입력의 유효성을 검사하는 데 사용되는 JSON 스키마의 경로를 보유합니다. URI는 classpath URI, 파일 또는 HTTP URL일 수 있습니다. 클래스 경로 URI를 지정하는 경우 JSON 스키마 파일을 프로젝트의 resources 섹션 또는 classpath에 포함된 다른 디렉터리에 배치해야 합니다.

failOnValidationErrors 는 입력 데이터가 지정된 JSON 스키마와 일치하지 않을 때 채택된 동작을 나타내는 선택적 플래그입니다. 지정하지 않거나 true 로 설정하면 예외가 throw되고 흐름 실행이 실패합니다. false 로 설정하면 흐름이 실행되고 검증 오류가 있는 수준 WARN 로그가 출력됩니다.

6.5.2. 출력 스키마 정의

출력 스키마 정의는 워크플로우 실행 후 적용하여 출력 모델의 예상 형식이 있는지 확인합니다. Swagger 생성에도 유용합니다.

입력 스키마 정의와 유사하게 outputSchema 를 사용하여 JSON 스키마의 URL을 지정해야 합니다.

outputSchema 정의의 예

"extensions" : [ {
      "extensionid": "workflow-output-schema",
      "outputSchema": {
         "schema" : "URL_to_json_schema",
          "failOnValidationErrors": false
     }
  } ]
Copy to Clipboard Toggle word wrap

dataInputSchema 에 대해 설명된 동일한 규칙은 스키마failOnValidationErrors 에 적용할 수 있습니다. 유일한 차이점은 워크플로우 실행 후 후자의 플래그가 적용된다는 것입니다.

6.6. 사용자 정의 함수

OpenShift Serverless Logic은 구현에서 함수 정의 기능을 확장할 수 있는 사용자 지정 함수 유형을 지원합니다. 작업 문자열과 결합하여 사전 정의된 함수 유형 목록을 사용할 수 있습니다.

참고

사용자 지정 함수 유형은 다른 런타임 구현에서 이식할 수 없습니다.

6.6.1. SYSOUT 사용자 정의 기능

다음 예와 같이 로깅에 sysout 함수를 사용할 수 있습니다.

sysout 함수 정의의 예

{
  "functions": [
    {
      "name": "logInfo",
      "type": "custom",
      "operation": "sysout:INFO"
    }
  ]
}
Copy to Clipboard Toggle word wrap

: 이후의 문자열은 선택 사항이며 로그 수준을 나타내는 데 사용됩니다. 가능한 값은 TRACE,DEBUG,INFO,WARNERROR 입니다. 값이 없으면 INFO 가 기본값입니다.

상태 정의에서는 다음 예와 동일한 sysout 함수를 호출할 수 있습니다.

상태 내의 sysout 함수 참조 예

{
  "states": [
    {
      "name": "myState",
      "type": "operation",
      "actions": [
        {
          "name": "printAction",
          "functionRef": {
            "refName": "logInfo",
            "arguments": {
              "message": "\"Workflow model is \\(.)\""
            }
          }
        }
      ]
    }
  ]
}
Copy to Clipboard Toggle word wrap

이전 예에서 message 인수는 jq 표현식 또는 보간을 사용하는 jq 문자열일 수 있습니다.

6.6.2. Java 사용자 정의 기능

OpenShift Serverless Logic은 워크플로우 서비스를 정의하는 Apache Maven 프로젝트 내에서 java 함수를 지원합니다.

다음 예제에서는 java 함수 선언을 보여줍니다.

Java 함수 선언 의 예

{
  "functions": [
    {
      "name": "myFunction", 
1

      "type": "custom", 
2

      "operation": "service:java:com.acme.MyInterfaceOrClass::myMethod" 
3

    }
  ]
}
Copy to Clipboard Toggle word wrap

1
myFunction 은 함수 이름입니다.
2
Custom 은 함수 유형입니다.
3
service:java:com.acme.MyInterfaceOrClass::myMethod 는 사용자 정의 작업 정의입니다. 사용자 정의 작업 정의에서 service 는 예약된 작업 키워드와 java 키워드가 차례로 사용됩니다. com.acme.MyInterfaceOrClass 는 인터페이스 또는 구현 클래스의 FQCN(완전화된 클래스 이름)과 메서드 이름 myMethod 입니다.

6.6.3. Knative 사용자 정의 기능

OpenShift Serverless Logic은 knative-serving 애드온을 통해 Knative 서비스를 호출할 수 있는 사용자 정의 기능을 구현합니다. HTTP 요청을 수행하는 데 사용되는 Knative 서비스를 정의하는 정적 URI를 보유할 수 있습니다. URI에 정의된 Knative 서비스는 현재 Knative 클러스터에서 쿼리되고 유효한 URL로 변환됩니다.

다음 예제에서는 배포된 Knative 서비스를 사용합니다.

$ kn service list
NAME                              URL                                                                      LATEST                                  AGE     CONDITIONS   READY   REASON
custom-function-knative-service   http://custom-function-knative-service.default.10.109.169.193.sslip.io   custom-function-knative-service-00001   3h16m   3 OK / 3     True
Copy to Clipboard Toggle word wrap

다음 예와 같이 Knative 서비스 이름을 사용하여 OpenShift Serverless Logic 사용자 정의 함수를 선언할 수 있습니다.

  "functions": [
    {
      "name": "greet", 
1

      "type": "custom", 
2

      "operation": "knative:services.v1.serving.knative.dev/custom-function-knative-service?path=/plainJsonFunction", 
3

    }
  ]
Copy to Clipboard Toggle word wrap
1
이 함수는 함수 이름입니다.
2
Custom 은 함수 유형입니다.
3
작업에서 Knative 서비스의 좌표를 설정합니다.
참고

이 함수는 POST 요청을 보냅니다. 경로를 지정하지 않으면 OpenShift Serverless Logic은 루트 경로(/)를 사용합니다. 작업에서 method= GET 을 설정하여 GET 요청을 보낼 수도 있습니다. 이 경우 인수는 쿼리 문자열을 통해 전달됩니다.In this case, the arguments are forwarded over a query string.

6.6.4. REST 사용자 정의 기능

OpenShift Serverless Logic은 REST 사용자 정의 유형을 바로 가기로 제공합니다. 사용자 지정 rest을 사용하는 경우 함수 정의에서 호출할 HTTP URI와 사용할 HTTP 메서드(get, post, patch 또는 put)를 지정합니다. 이 작업은 작업 문자열을 사용하여 수행됩니다. 함수가 호출되면 OpenAPI 함수를 사용할 때와 같이 요청 인수를 전달합니다.

다음 예제에서는 rest 함수 선언을 보여줍니다.

  {
  "functions": [
    {
      "name": "multiplyAllByAndSum", 
1

      "type": "custom", 
2

      "operation": "rest:post:/numbers/{multiplier}/multiplyByAndSum" 
3

    }
  ]
}
Copy to Clipboard Toggle word wrap
1
multiplyAllAndSum 은 함수 이름입니다.
2
Custom 은 함수 유형입니다.
3
rest:post:/numbers/{multiplier}/multiplyByAndSum 은 사용자 정의 작업 정의입니다. 사용자 정의 작업 정의에서 rest 은 REST 호출임을 나타내는 예약된 작업 키워드이며, post 는 HTTP 메서드이고, /numbers/{multiplier}/multiplyByAndSum 은 상대 엔드포인트입니다.

상대 엔드포인트를 사용하는 경우 호스트를 속성으로 지정해야 합니다. host 속성 형식은 kogito.sw.functions.<function_name> . host입니다. 이 예에서 kogito.sw.functions.multiplyAllByAndSum.host 는 호스트 속성 키입니다. 필요한 경우 kogito.sw.functions.multiplyAllAndSum.port 속성을 지정하여 기본 포트(80)를 덮어쓸 수 있습니다.

이 끝점은 본문에서 필드 번호가 정수 배열인 JSON 오브젝트로, 배열의 각 항목을 multiplier 로 곱하고 모든 곱한 항목의 합계를 반환합니다.

6.7. 시간 초과

OpenShift Serverless Logic은 다양한 시나리오에서 워크플로우 실행에 대한 최대 시간을 구성하는 데 사용할 수 있는 여러 시간 초과 구성을 정의합니다. 지정된 상태 또는 워크플로우의 최대 실행 시간이 있을 때 이벤트가 전달될 때까지 워크플로에서 대기하는 시간을 구성할 수 있습니다.

정의된 위치와 관계없이 시간 초과는 참조된 워크플로우 요소가 활성 상태가 될 때 시작되는 시간 또는 기간으로 구성해야 합니다. 시간 초과는 ISO 8601 데이터 및 시간 표준을 사용하여 시간 기간을 지정하고 일을 정확히 24시간으로 간주하며 PnDTnHnMn.nS 형식을 따릅니다. 예를 들어 PT15M 은 15분을 구성하고 P2DT3H4M 은 2일, 3시간, 4분을 정의합니다.

참고

P2M 또는 두 달의 기간과 같은 월 기반 타임아웃은 월 기간이 달라질 수 있으므로 유효하지 않습니다. 대신 PT60D 를 사용하십시오.

6.7.1. 워크플로우 제한 시간

워크플로우를 취소하기 전에 실행할 수 있는 최대 시간을 구성하려면 워크플로우 제한 시간을 사용할 수 있습니다. 취소되면 워크플로우가 완료된 것으로 간주되며 GET 요청을 통해 더 이상 액세스할 수 없습니다. 따라서 인터럽트가 기본적으로 true 인 것처럼 작동합니다.

워크플로우 시간 초과는 최상위 시간 초과 속성으로 정의됩니다. 두 가지 유형, stringobject 가 있을 수 있습니다. 문자열 유형은 워크플로우 시간 초과 정의를 포함하는 JSON 또는 YAML 파일을 가리키는 URI를 정의합니다. 오브젝트 유형은 시간 초과 정의를 인라인으로 정의하는 데 사용됩니다.

예를 들어 1시간의 실행 후 워크플로우를 취소하려면 다음 구성을 사용합니다.

워크플로우 시간 초과 예

  {
  "id": "workflow_timeouts",
  "version": "1.0",
  "name": "Workflow Timeouts",
  "description": "Simple workflow to show the workflowExecTimeout working",
  "start": "PrintStartMessage",
  "timeouts": {
    "workflowExecTimeout": "PT1H"
  } ...
}
Copy to Clipboard Toggle word wrap

6.7.2. 이벤트 시간 초과

워크플로우에서 상태를 정의할 때 timeouts 속성을 사용하여 이 상태를 완료하는 최대 시간을 구성할 수 있습니다. 시간이 초과되면 상태가 시간 초과로 간주되고 엔진은 이 상태에서 계속 실행됩니다. 실행 흐름은 상태 유형(예: 다음 상태로의 전환)에 따라 달라질 수 있습니다.

이벤트 기반 상태는 하위 속성 이벤트 시간 초과를 사용하여 이벤트가 도착될 때까지 대기할 최대 시간을 구성할 수 있습니다. 이는 현재 구현에서 지원되는 유일한 속성입니다.

이벤트 시간 초과는 콜백 상태 시간 초과, 전환 상태 타임아웃 및 이벤트 상태 타임아웃을 지원합니다.

6.7.2.1. 콜백 상태 시간 초과

콜백 상태는 일반적으로 외부 서비스를 호출하기 위해 작업을 실행하고 이벤트 형태로 비동기 응답을 기다려야 하는 경우 사용할 수 있습니다.

응답 이벤트가 소비되면 워크플로우는 실행을 계속하며 일반적으로 transition 속성에 정의된 다음 상태로 이동합니다.

콜백 상태는 이벤트가 사용될 때까지 실행을 중지하므로 eventTimeout을 구성할 수 있으며, 이벤트가 구성된 기간에 도달하지 않으면 워크플로는 전환에 정의된 다음 상태로 계속 실행됩니다.

시간 초과를 사용한 콜백 상태 예

{
 "name": "CallbackState",
 "type": "callback",
 "action": {
   "name": "callbackAction",
   "functionRef": {
     "refName": "callbackFunction",
     "arguments": {
       "input": "${\"callback-state-timeouts: \" + $WORKFLOW.instanceId + \" has executed the callbackFunction.\"}"
     }
   }
 },
 "eventRef": "callbackEvent",
 "transition": "CheckEventArrival",
 "onErrors": [
   {
     "errorRef": "callbackError",
     "transition": "FinalizeWithError"
   }
 ],
 "timeouts": {
   "eventTimeout": "PT30S"
 }
}
Copy to Clipboard Toggle word wrap

6.7.2.2. 전환 상태 시간 초과

특정 조건에 따라 작업을 수행해야 하는 경우 Switch 상태를 사용할 수 있습니다. 이러한 조건은 워크플로우 데이터, dataConditions 또는 이벤트인 eventConditions 를 기반으로 할 수 있습니다.

eventConditions 를 사용하면 워크플로우 실행이 구성된 이벤트가 도달하고 조건과 일치할 때까지 결정을 내립니다. 이 경우 이벤트의 조건이 일치될 때까지 대기할 최대 시간을 제어하는 이벤트 시간 초과를 구성할 수 있습니다.

이 시간이 만료된 경우 워크플로우는 defaultCondition 속성에 정의된 상태로 이동합니다.

시간 초과를 사용하는 스위치 상태 예

{
    "name": "ChooseOnEvent",
    "type": "switch",
    "eventConditions": [
    {
        "eventRef": "visaApprovedEvent",
        "transition": "ApprovedVisa"
    },
    {
        "eventRef": "visaDeniedEvent",
        "transition": "DeniedVisa"
    }
    ],
        "defaultCondition": {
        "transition": "HandleNoVisaDecision"
    },
        "timeouts": {
        "eventTimeout": "PT5S"
    }
}
Copy to Clipboard Toggle word wrap

6.7.2.3. 이벤트 상태 타임아웃

이벤트 상태는 워크플로우에서 하나 이상의 이벤트가 수신될 때까지 기다린 다음 작업 집합을 실행한 다음 실행을 계속하는 데 사용됩니다. 이벤트 상태가 시작 상태이면 새 워크플로우 인스턴스가 생성됩니다.

timeouts 속성은 이 상태에서 구성된 이벤트가 전달될 때까지 워크플로에서 대기하는 최대 시간을 구성하는 데 사용됩니다.

이 시간이 초과되고 이벤트가 수신되지 않으면 워크플로우는 전환 속성에 정의된 상태로 이동하거나 작업을 수행하지 않고 최종 상태의 경우 워크플로우 인스턴스를 종료합니다.

시간 초과가 있는 이벤트 상태 예

{
  "name": "WaitForEvent",
  "type": "event",
  "onEvents": [
    {
      "eventRefs": [
        "event1"
      ],
      "eventDataFilter": {
        "data": "${ \"The event1 was received.\" }",
        "toStateData": "${ .exitMessage }"
      },
      "actions": [
        {
          "name": "printAfterEvent1",
          "functionRef": {
            "refName": "systemOut",
            "arguments": {
              "message": "${\"event-state-timeouts: \" + $WORKFLOW.instanceId + \" executing actions for event1.\"}"
            }
          }
        }
      ]
    },
    {
      "eventRefs": [
        "event2"
      ],
      "eventDataFilter": {
        "data": "${ \"The event2 was received.\" }",
        "toStateData": "${ .exitMessage }"
      },
      "actions": [
        {
          "name": "printAfterEvent2",
          "functionRef": {
            "refName": "systemOut",
            "arguments": {
              "message": "${\"event-state-timeouts: \" + $WORKFLOW.instanceId + \" executing actions for event2.\"}"
            }
          }
        }
      ]
    }
  ],
  "timeouts": {
    "eventTimeout": "PT30S"
  },
  "transition": "PrintExitMessage"
}
Copy to Clipboard Toggle word wrap

6.8. 병렬 처리

OpenShift Serverless Logic은 병렬 작업 실행을 직렬화합니다. parallel 이라는 단어는 동시 실행을 나타내지 않지만 분기 실행 사이에 논리적 종속성이 없음을 의미합니다. 활성 분기가 실행을 일시 중지하면 활성 분기가 완료될 때까지 기다리지 않고 비활성 분기를 시작하거나 다시 시작할 수 있습니다. 예를 들어 활성 분기는 이벤트 수신을 기다리는 동안 해당 실행을 중단할 수 있습니다.

병렬 상태는 현재 워크플로우 인스턴스 실행 경로를 각 분기에 하나씩 여러 경로로 분할하는 상태입니다. 이러한 실행 경로는 병렬로 수행되며 정의된 completionType 매개변수 값에 따라 현재 실행 경로에 다시 결합됩니다.

JSON 형식의 병렬 워크플로우 예

 {
     "name":"ParallelExec",
     "type":"parallel",
     "completionType": "allOf",
     "branches": [
        {
          "name": "Branch1",
          "actions": [
            {
                "functionRef": {
                    "refName": "functionNameOne",
                    "arguments": {
                        "order": "${ .someParam }"
                    }
                }
            }
        ]
        },
        {
          "name": "Branch2",
          "actions": [
              {
                  "functionRef": {
                      "refName": "functionNameTwo",
                      "arguments": {
                          "order": "${ .someParam }"
                      }
                  }
              }
          ]
        }
     ],
     "end": true
}
Copy to Clipboard Toggle word wrap

YAML 형식의 병렬 워크플로우 예

name: ParallelExec
type: parallel
completionType: allOf
branches:
- name: Branch1
  actions:
  - functionRef:
      refName: functionNameOne
      arguments:
        order: "${ .someParam }"
- name: Branch2
  actions:
  - functionRef:
      refName: functionNameTwo
      arguments:
        order: "${ .someParam }"
end: true
Copy to Clipboard Toggle word wrap

이전 예에서 allOf 는 상태가 전환되거나 종료되기 전에 모든 분기 실행을 정의해야 합니다. 이 매개변수가 설정되지 않은 경우 기본값입니다.

7장. OpenShift Serverless 지원

이 설명서에 설명된 절차를 수행하는 데 어려움이 있는 경우 Red Hat Customer Portal(http://access.redhat.com)을 방문하십시오. Red Hat 고객 포털을 사용하여 Red Hat 제품에 대한 기술 지원 문서의 Red Hat 지식 베이스를 검색하거나 확인할 수 있습니다. Red Hat GSS(글로벌 지원 서비스)에 지원 케이스를 제출하거나 기타 제품 문서에 액세스할 수도 있습니다.

이 가이드를 개선하기 위한 제안이 있거나 오류를 발견한 경우 가장 관련 문서 구성 요소에 대해 Jira 문제를 제출할 수 있습니다. 콘텐츠를 쉽게 찾을 수 있도록 섹션 번호, 가이드 이름, OpenShift Serverless 버전과 같은 구체적인 세부 사항을 입력하십시오.

참고

클러스터 크기 요구 사항을 정의하는 방법에 대한 다음 섹션은 다음 배포에 적용됩니다.

  • OpenShift Container Platform
  • OpenShift Dedicated

7.1. Red Hat 지식베이스 정보

Red Hat 지식베이스는 Red Hat의 제품과 기술을 최대한 활용할 수 있도록 풍부한 콘텐츠를 제공합니다. Red Hat 지식베이스는 Red Hat 제품 설치, 설정 및 사용에 대한 기사, 제품 문서 및 동영상으로 구성되어 있습니다. 또한 알려진 문제에 대한 솔루션을 검색할 수 있으며, 간결한 근본 원인 설명 및 해결 단계를 제공합니다.

7.2. Red Hat 지식베이스 검색

OpenShift Container Platform 문제가 발생한 경우 초기 검색을 수행하여 솔루션이 이미 Red Hat Knowledgebase 내에 존재하는지 확인할 수 있습니다.

사전 요구 사항

  • Red Hat 고객 포털 계정이 있어야 합니다.

프로세스

  1. Red Hat 고객 포털에 로그인합니다.
  2. 기본 Red Hat 고객 포털 검색 필드에 다음과 같이 문제와 관련된 키워드 및 문자열을 입력하십시오.

    • OpenShift Container Platform 구성 요소 (etcd 등)
    • 관련 절차 (예: installation 등)
    • 명시적 실패와 관련된 경고, 오류 메시지 및 기타 출력
  3. Search를 클릭합니다
  4. OpenShift Container Platform 제품 필터를 선택합니다.
  5. Knowledgebase 콘텐츠 유형 필터를 선택합니다.

7.3. 지원 케이스 제출

사전 요구 사항

  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • Red Hat 고객 포털 계정이 있어야 합니다.
  • Red Hat 표준 또는 프리미엄 서브스크립션이 있습니다.

프로세스

  1. Red Hat 고객 포털에 로그인하고 SUPPORT CASESOpen a case를 선택합니다.
  2. 문제에 대한 적절한 카테고리(예: Defect/Bug), 제품(OpenShift Container Platform) 및 아직 자동 입력되지 않은 경우 제품 버전을 선택합니다.
  3. 보고되는 문제와 관련이 있을 수 있는 권장 Red Hat 지식베이스 솔루션 목록을 확인합니다. 제안된 문서로 문제가 해결되지 않으면 Continue을 클릭합니다.
  4. 문제의 증상 및 예상 동작에 대한 자세한 정보와 함께 간결하지만 구체적인 문제 요약을 입력합니다.
  5. 보고되는 문제와 관련있는 제안된 Red Hat 지식베이스 솔루션 목록을 확인하십시오. 케이스 작성 과정에서 더 많은 정보를 제공하면 목록이 구체화됩니다. 제안된 문서로 문제가 해결되지 않으면 Continue을 클릭합니다.
  6. 제시된 계정 정보가 정확한지 확인하고 필요한 경우 적절하게 수정합니다.
  7. 자동 입력된 OpenShift Container Platform 클러스터 ID가 올바른지 확인합니다. 그렇지 않은 경우 클러스터 ID를 수동으로 가져옵니다.

    • OpenShift Container Platform 웹 콘솔을 사용하여 클러스터 ID를 수동으로 가져오려면 다음을 수행합니다.

      1. HomeDashboardsOverview로 이동합니다.
      2. Details 섹션의 Cluster ID 필드에서 값을 찾습니다.
    • 또는 OpenShift Container Platform 웹 콘솔을 통해 새 지원 케이스를 열고 클러스터 ID를 자동으로 입력할 수 있습니다.

      1. 툴바에서 (?) HelpOpen Support Case로 이동합니다.
      2. Cluster ID 값이 자동으로 입력됩니다.
    • OpenShift CLI (oc)를 사용하여 클러스터 ID를 얻으려면 다음 명령을 실행합니다.

      $ oc get clusterversion -o jsonpath='{.items[].spec.clusterID}{"\n"}'
      Copy to Clipboard Toggle word wrap
  8. 프롬프트가 표시되면 다음 질문을 입력한 후 Continue를 클릭합니다.

    • 이 문제가 어디에서 발생했습니까? 어떤 시스템 환경을 사용하고 있습니까?
    • 이 동작이 언제 발생했습니까? 발생 빈도는 어떻게 됩니까? 반복적으로 발생합니까? 특정 시간에만 발생합니까?
    • 이 문제의 발생 기간 및 비즈니스에 미치는 영향에 대한 정보를 제공해주십시오.
  9. 관련 진단 데이터 파일을 업로드하고 Continue를 클릭합니다.

oc adm must-gather 명령을 사용하여 수집된 데이터와 해당 명령으로 수집되지 않은 특정 문제와 관련된 데이터를 제공하는 것이 좋습니다

  1. 관련 케이스 관리 세부 정보를 입력하고 Continue를 클릭합니다.
  2. 케이스 세부 정보를 미리보고 Submit을 클릭합니다.

7.4. 지원을 위한 진단 정보 수집

지원 케이스를 열면 클러스터에 대한 디버깅 정보를 Red Hat 지원에 제공하는 것이 좋습니다. must-gather 툴을 사용하면 OpenShift Serverless 관련 데이터를 포함하여 OpenShift Container Platform 클러스터에 대한 진단 정보를 수집할 수 있습니다. 즉각 지원을 받을 수 있도록 OpenShift Container Platform 및 OpenShift Serverless 둘 다에 대한 진단 정보를 제공하십시오.

7.4.1. must-gather 툴 정보

oc adm must-gather CLI 명령은 다음을 포함하여 문제를 디버깅하는 데 필요할 가능성이 높은 클러스터에서 정보를 수집합니다.

  • 리소스 정의
  • 서비스 로그

기본적으로 oc adm must-gather 명령은 기본 플러그인 이미지를 사용하고 ./must-gather.local 에 씁니다.

또는 다음 섹션에 설명된 대로 적절한 인수로 명령을 실행하여 특정 정보를 수집할 수 있습니다.

  • 하나 이상의 특정 기능과 관련된 데이터를 수집하려면 다음 섹션에 나열된 대로 이미지와 함께 --image 인수를 사용합니다.

    예를 들면 다음과 같습니다.

    $ oc adm must-gather  --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.13.0
    Copy to Clipboard Toggle word wrap
  • 감사 로그를 수집하려면 다음 섹션에 설명된 대로 -- /usr/bin/gather_audit_logs 인수를 사용하십시오.

    예를 들면 다음과 같습니다.

    $ oc adm must-gather -- /usr/bin/gather_audit_logs
    Copy to Clipboard Toggle word wrap
    참고

    감사 로그는 파일 크기를 줄이기 위해 기본 정보 세트의 일부로 수집되지 않습니다.

oc adm must-gather 를 실행하면 클러스터의 새 프로젝트에 임의의 이름이 있는 새 Pod가 생성됩니다. 해당 Pod에 대한 데이터가 수집되어 must-gather.local로 시작하는 새 디렉터리에 저장됩니다. 이 디렉터리는 현재 작업 중인 디렉터리에 생성되어 있습니다.

예를 들면 다음과 같습니다.

NAMESPACE                      NAME                 READY   STATUS      RESTARTS      AGE
...
openshift-must-gather-5drcj    must-gather-bklx4    2/2     Running     0             72s
openshift-must-gather-5drcj    must-gather-s8sdh    2/2     Running     0             72s
...
Copy to Clipboard Toggle word wrap

필요한 경우 --run-namespace 옵션을 사용하여 특정 네임스페이스에서 oc adm must-gather 명령을 실행할 수 있습니다.

예를 들면 다음과 같습니다.

$ oc adm must-gather --run-namespace <namespace> --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.13.0
Copy to Clipboard Toggle word wrap

7.4.2. OpenShift Serverless 데이터 수집 정보

oc adm must-gather CLI 명령을 사용하면 OpenShift Serverless와 연관된 기능 및 오브젝트를 포함하여 클러스터에 대한 정보를 수집할 수 있습니다. must-gather로 OpenShift Serverless 데이터를 수집하려면 OpenShift Serverless 이미지 및 설치된 OpenShift Serverless 버전의 이미지 태그를 지정해야 합니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.

프로세스

  • oc adm must-gather 명령을 사용하여 데이터 수집

    $ oc adm must-gather --image=registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8:<image_version_tag>
    Copy to Clipboard Toggle word wrap

    명령 예

    $ oc adm must-gather --image=registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8:1.14.0
    Copy to Clipboard Toggle word wrap

법적 공지

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat