25.5. Cluster Operator 업그레이드
초기 배포 방법으로 Cluster Operator를 업그레이드하려면 동일한 방법을 사용합니다.
25.5.1. 설치 파일을 사용하여 Cluster Operator 업그레이드 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 Apache Kafka 2.7에 Streams를 사용하도록 Cluster Operator 배포를 업그레이드하는 방법을 설명합니다.
설치 YAML 파일을 사용하여 Cluster Operator를 배포한 경우 다음 절차를 따르십시오.
Cluster Operator에서 관리하는 Kafka 클러스터의 가용성은 업그레이드 작업의 영향을 받지 않습니다.
해당 버전으로 업그레이드하는 방법에 대한 정보는 특정 버전의 Apache Kafka를 지원하는 설명서를 참조하십시오.
사전 요구 사항
- 기존 Cluster Operator 배포를 사용할 수 있습니다.
- Apache Kafka 2.7용 Streams 아티팩트를 다운로드 했습니다.
프로세스
-
기존 Cluster Operator 리소스(
/install/cluster-operator디렉터리)에 대한 구성 변경 사항을 기록해 두십시오. Cluster Operator의 새 버전으로 변경 사항을 덮어씁니다. - Apache Kafka 버전 2.7에 사용할 수 있는 지원되는 구성 옵션을 반영하도록 사용자 지정 리소스를 업데이트합니다.
Cluster Operator를 업데이트합니다.
Cluster Operator가 실행되는 네임스페이스에 따라 새 Cluster Operator 버전의 설치 파일을 수정합니다.
Linux에서 다음을 사용하십시오.
sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow MacOS에서 다음을 사용하십시오.
sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
기존 Cluster Operator 배포에서 하나 이상의 환경 변수를 수정한 경우
install/cluster-operator/060-파일을 편집하여 해당 환경 변수를 사용합니다.Deployment-strimzi-cluster-operator.yaml
업데이트된 구성이 있는 경우 나머지 설치 리소스와 함께 배포합니다.
oc replace -f install/cluster-operator
oc replace -f install/cluster-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 롤링 업데이트가 완료될 때까지 기다립니다.
새 Operator 버전이 업그레이드 중인 Kafka 버전을 더 이상 지원하지 않는 경우 Cluster Operator는 버전이 지원되지 않는 것으로 오류 메시지를 반환합니다. 그렇지 않으면 오류 메시지가 반환되지 않습니다.
오류 메시지가 반환되면 새 Cluster Operator 버전에서 지원하는 Kafka 버전으로 업그레이드합니다.
-
Kafka사용자 정의 리소스를 편집합니다. -
spec.kafka.version속성을 지원되는 Kafka 버전으로 변경합니다.
-
- 오류 메시지가 반환 되지 않으면 다음 단계로 이동합니다. 나중에 Kafka 버전을 업그레이드합니다.
Kafka Pod의 이미지를 가져와 업그레이드가 성공적으로 수행되었는지 확인합니다.
oc get pods my-cluster-kafka-0 -o jsonpath='{.spec.containers[0].image}'oc get pods my-cluster-kafka-0 -o jsonpath='{.spec.containers[0].image}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow image 태그는 Apache Kafka 버전의 새 Streams와 Kafka 버전이 차례로 표시됩니다.
registry.redhat.io/amq-streams/strimzi-kafka-37-rhel9:2.7.0
registry.redhat.io/amq-streams/strimzi-kafka-37-rhel9:2.7.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Cluster Operator는 버전 2.7으로 업그레이드되지만 관리하는 클러스터에서 실행되는 Kafka 버전은 변경되지 않습니다.
25.5.2. OperatorHub를 사용하여 Cluster Operator 업그레이드 링크 복사링크가 클립보드에 복사되었습니다!
OperatorHub에서 Apache Kafka용 Streams를 배포하는 경우 OLM(Operator Lifecycle Manager)을 사용하여 Apache Kafka Operator의 스트림 업데이트 채널을 Apache Kafka 버전의 새 스트림으로 변경합니다.
채널을 업데이트하면 선택한 업그레이드 전략에 따라 다음 유형의 업그레이드 중 하나가 시작됩니다.
- 자동 업그레이드가 시작됨
- 설치를 시작하기 전에 승인이 필요한 수동 업그레이드
stable 채널을 구독하면 채널을 변경하지 않고도 자동 업데이트를 받을 수 있습니다. 그러나 설치 전 업그레이드 단계가 누락될 가능성이 있으므로 자동 업데이트를 활성화하는 것은 권장되지 않습니다. 버전별 채널에서만 자동 업그레이드를 사용합니다.
OperatorHub를 사용하여 Operator를 업그레이드하는 방법에 대한 자세한 내용은 설치된 Operator 업그레이드(OpenShift 문서)를 참조하십시오.
25.5.3. 단방향 주제 관리로 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
Topic Operator를 배포하여 주제를 관리할 때 Cluster Operator는 기본적으로 단방향 주제 관리를 활성화합니다. 양방향 주제 관리를 사용한 Apache Kafka용 스트림 버전에서 전환하는 경우 Cluster Operator를 업그레이드한 후 수행해야 하는 몇 가지 정리 작업이 있습니다. 자세한 내용은 10.9절. “Topic Operator 모드 간 전환”의 내용을 참조하십시오.
25.5.4. Cluster Operator 업그레이드 시 Kafka 버전 오류가 반환됩니다. 링크 복사링크가 클립보드에 복사되었습니다!
Cluster Operator를 사용 중인 현재 Kafka 버전을 지원하지 않는 버전으로 업그레이드하는 경우 지원되지 않는 Kafka 버전 오류가 발생합니다. 이 오류는 모든 설치 방법에 적용되며 Kafka를 지원되는 Kafka 버전으로 업그레이드해야 합니다. Kafka 리소스의 spec.kafka.version 을 지원되는 버전으로 변경합니다.
oc 를 사용하여 Kafka 리소스의 상태에서 이와 같은 오류 메시지를 확인할 수 있습니다.
Kafka 상태에 오류가 있는지 확인
oc get kafka <kafka_cluster_name> -n <namespace> -o jsonpath='{.status.conditions}'
oc get kafka <kafka_cluster_name> -n <namespace> -o jsonpath='{.status.conditions}'
<kafka_cluster_name>을 Kafka 클러스터의 이름으로 바꾸고 <namespace>를 Pod가 실행 중인 OpenShift 네임스페이스로 바꿉니다.
25.5.5. OperatorHub를 사용하여 Apache Kafka 1.7 또는 이전 버전의 Streams에서 업그레이드 링크 복사링크가 클립보드에 복사되었습니다!
OperatorHub를 사용하여 Apache Kafka 1.7 또는 이전 버전의 Streams에서 업그레이드하는 경우 필요한 작업
Apache Kafka Operator의 Streams for Apache Kafka Operator 를 버전 2.7로 업그레이드하기 전에 다음과 같은 사항을 변경해야 합니다.
-
사용자 정의 리소스 및 CRD를
v1beta2로 변환 -
ControlPlaneListener기능 게이트가 비활성화된 Apache Kafka의 Streams 버전으로 업그레이드
이러한 요구 사항은 25.2.2절. “1.7 이전의 Apache Kafka용 Streams에서 업그레이드” 에 설명되어 있습니다.
Apache Kafka 1.7 또는 이전 버전의 Streams에서 업그레이드하는 경우 다음을 수행합니다.
- Apache Kafka 1.7의 Streams로 업그레이드합니다.
- Apache Kafka 소프트웨어 다운로드 페이지에서 Streams for Apache Kafka 1.8와 함께 제공되는 Red Hat Streams for Apache Kafka API 변환 툴 을 다운로드합니다.
사용자 정의 리소스 및 CRD를
v1beta2로 변환합니다.- OperatorHub에서 Apache Kafka Operator용 Streams 1.7 버전을 삭제합니다.
또한 존재하는 경우 Apache Kafka Operator용 Streams 2.7 버전을 삭제합니다.
존재하지 않는 경우 다음 단계로 이동합니다.
Apache Kafka Operator의 Streams에 대한 승인 전략이 자동으로 설정된 경우 Operator의 버전 2.7이 클러스터에 이미 존재할 수 있습니다. 사용자 정의 리소스 및 CRD를 릴리스 전에
v1beta2API 버전으로 변환 하지 않은 경우 operator-managed 사용자 정의 리소스 및 CRD는 이전 API 버전을 사용합니다. 그 결과 2.7 Operator가 Pending 상태로 유지됩니다. 이 경우 버전 2.7 of the Streams for Apache Kafka Operator 및 버전 1.7을 삭제해야 합니다.두 Operator를 모두 삭제하면 새 Operator 버전이 설치될 때까지 조정이 일시 중지됩니다. 사용자 정의 리소스에 대한 변경 사항이 지연되지 않도록 다음 단계를 즉시 수행합니다.
OperatorHub에서 다음 중 하나를 수행합니다.
-
Apache Kafka Operator용 Streams 1.8로 업그레이드(
ControlPlaneListener기능 게이트는 기본적으로 비활성화되어 있음). -
ControlPlaneListener기능 게이트를 비활성화하여 Apache Kafka Operator용 Streams 2.0 또는 2.2(ControlPlaneListener기능 게이트가 기본적으로 활성화되어 있음)로 업그레이드합니다.
-
Apache Kafka Operator용 Streams 1.8로 업그레이드(
Apache Kafka Operator의 Streams 2.7으로 즉시 업그레이드합니다.
설치된 2.7 Operator는 클러스터를 모니터링하고 롤링 업데이트를 수행합니다. 이 프로세스 중에 클러스터 성능이 일시적으로 저하될 수 있습니다.