CLI를 사용하여 Strimzi Operator 업그레이드 방법

Operator Lifecycle Manager (OLM) 사용자가 모든 운영자와 그 집단에서 운행하는 관련 서비스의 생명 주기를 설치, 갱신하고 관리하는 것을 돕는다.이것은 Operator Framework 의 일부이며, 이것은 효율적이고 자동화되며 확장 가능한 방식으로 Kubernetes 본체 응용 프로그램 (조작자) 을 관리하기 위한 소스 패키지입니다.
OLM은 OLM 프레임워크의 기반이 되는 사용자 정의 리소스 정의(CRD)를 관리합니다.

  • OperatorGroup(og): OLM은 여러 개의 이름 공간을 그룹화하고 작업자가 사용할 수 있도록 준비하는 데 사용됩니다.

  • 구독(Subscription): 패키지의 채널을 추적하여 CSV의 최신 디렉토리를 유지합니다.

  • ClusterServiceVersion(csv): OLM 응용 프로그램 메타데이터: 이름, 버전, 아이콘, 필요한 자원, 설치 등.

  • InstallPlan(ip): CSV를 자동으로 설치/업그레이드하기 위해 작성된 리소스 디렉토리의 계산 목록입니다.
  • 이 문서에서는 OpenShift 플랫폼에서 Strimzi 연산자(또는 Red Hat AMQ Streams 연산자)의 업그레이드 과정을 설명합니다.

    Note 1 : Only cluster-admin users could manage the OLM objects.

    Note 2 : The article only covers the upgrade process of the Strimzi Operator, does not cover the strategies to upgrade the Apache Kafka cluster version.



    운영자 구독
    Strimzi 연산자만 검사 네임스페이스(네임스페이스 범위)로 배치하려면 OperatorGroup를 사용해야 합니다.AnOperatorGroup은 OLM에 설치된 운용사에게 다세입자 구성을 제공하는 OLM 자원이다.
    이것은 myproject 네임스페이스의 관리 연산자에 대한 정의입니다.
    ---
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: myproject-og
      namespace: myproject
    spec:
      targetNamespaces:
        - myproject
    
    
    설치하려면 다음과 같이 하십시오.
    ❯ oc apply -f operatorgroup.yml
    
    
    ASubscription는 설치 작업자의 의도를 나타냅니다.CatalogSource와 연산자를 연결하는 사용자 정의 에셋입니다.구독은 구독할 운영자 패키지의 어느 채널과 업데이트를 자동으로 실행하는지 수동으로 실행하는지 설명한다.자동으로 설정하면 구독은 OLM이 운영자를 관리하고 업그레이드하여 최신 버전이 항상 그룹에서 집중적으로 실행되도록 확보할 것이다.
    Strimzi Operator를 설치한 경우Subscription 정의입니다.
    ---
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: strimzi-kafka-operator
      namespace: myproject
    spec:
      channel: stable
      installPlanApproval: Manual
      name: strimzi-kafka-operator
      source: community-operators
      sourceNamespace: openshift-marketplace
      startingCSV: strimzi-cluster-operator.v0.17.0
    
    
    Red Hat AMQ Streams의 경우 다음을 정의합니다.
    ---
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: amq-streams
      namespace: myproject
    spec:
      channel: stable
      installPlanApproval: Manual
      name: amq-streams
      source: redhat-operators
      sourceNamespace: openshift-marketplace
      startingCSV: amqstreams.v1.4.0
    
    
    두 경우 모두 다음 속성이 중요합니다.
    채널(예를 들어 알파, 베타 또는 stable)은 CatalogSource에서 어떤 조작원 흐름을 설치해야 하는지 확인하는 데 도움이 된다.

  • 채널: 채널의 디렉터리 원본에서 어떤 조작원을 설치해야 하는지 표시합니다.값: alpha, beta 또는 stable.

  • installPlanApproval: 식별installPlan의 승인 모드입니다.Automatic로 정의하면 새 버전을 사용할 수 있을 때 작업자의 업그레이드가 즉시 완료됩니다.

  • startingCSV: 설치할 운영자의 초기 버전을 나타냅니다.
  • 💡 이러한 속성에 필요한 값을 모르는 경우 다음 명령을 사용하여 이러한 정보를 쉽게 표시할 수 있습니다.
    ❯ oc get packagemanifest strimzi-kafka-operator \
        -o jsonpath='{range .status.channels[*]}{"Chanel: "}{.name}{" -- CSV: "}{.currentCSV}{" -- Version: "}{.currentCSVDesc.version}{" -- skipRange: "}{.currentCSVDesc.annotations.olm\.skipRange}{"\n"}'
    Chanel: stable -- CSV: strimzi-cluster-operator.v0.19.0 -- Version: 0.19.0 -- skipRange: 
    Chanel: strimzi-0.19.x -- CSV: strimzi-cluster-operator.v0.19.0 -- Version: 0.19.0 -- skipRange: 
    
    
    AMQ 스트림은 Red Hat의 경우 다음과 비슷해야 합니다.
    ❯ oc get packagemanifest amq-streams \
        -o jsonpath='{range .status.channels[*]}{"Chanel: "}{.name}{" -- CSV: "}{.currentCSV}{" -- Version: "}{.currentCSVDesc.version}{" -- skipRange: "}{.currentCSVDesc.annotations.olm\.skipRange}{"\n"}'
    Chanel: amq-streams-1.5.x -- CSV: amqstreams.v1.5.3 -- Version: 1.5.3 -- skipRange: 
    Chanel: amq-streams-1.x -- CSV: amqstreams.v1.5.3 -- Version: 1.5.3 -- skipRange: 
    Chanel: stable -- CSV: amqstreams.v1.5.3 -- Version: 1.5.3 -- skipRange: 
    
    
    💡 본고는 Strimzi 조작부호를 수동으로 업데이트하는 방법을 중점적으로 소개하기 때문에 우리는 Manual 설치 계획 심사 비준 모델을 사용할 것이다.수동으로 구독을 성명해서 연산자를 언제 업데이트할지 제어하는 것은 좋은 방법일 수 있습니다.
    이 명령은 구독을 설치하여 조작원을 배치합니다.
    ❯ oc apply -f subscription.yml
    
    
    구독을 작성한 후 다음을 확인할 수 있습니다.
    ❯ oc get sub
    NAME PACKAGE SOURCE CHANNEL
    strimzi-kafka-operator strimzi-kafka-operator community-operators stable
    
    
    설치 계획이 작성되었으나 승인되지 않아 운영자가 설치되지 않았습니다.
    ❯ oc get ip
    NAME CSV APPROVAL APPROVED
    install-kt477 strimzi-cluster-operator.v0.17.0 Manual false
    
    
    이 명령은 배포 작업자를 승인합니다.
    ❯ oc patch installplan install-kt477 --type merge --patch '{"spec":{"approved":true}}'
    
    
    설치 계획이 다음과 같이 업데이트됩니다.
    ❯ oc get ip
    NAME CSV APPROVAL APPROVED
    install-kt477 strimzi-cluster-operator.v0.17.0 Manual true
    
    
    몇 분 후에 CSV 상태를 확인할 수 있습니다.
    ❯ oc get csv
    NAME DISPLAY VERSION REPLACES PHASE
    strimzi-cluster-operator.v0.17.0 Strimzi 0.17.0 Succeeded
    
    
    이제 운영자가 제공하는 Kafka CRD를 사용하여 Apache Kafka 클러스터를 배포할 수 있습니다.
    ❯ oc apply -f kafka.yml
    
    

    업그레이드 사업자
    OLM은 새 Operator 버전이 릴리즈되면 이를 검토한 후 새 버전에 대한 새 설치 계획을 작성합니다.
    새 버전을 사용할 수 있는 경우 설치 계획은 다음과 같아야 합니다.
    ❯ oc get ip
    NAME CSV APPROVAL APPROVED
    install-2lxhr strimzi-cluster-operator.v0.18.0 Manual false
    install-kt477 strimzi-cluster-operator.v0.17.0 Manual true
    
    
    여기서 새로운 버전strimzi-cluster-operator.v0.18.0을 사용할 수 있으므로 처음 설치와 동일한 방식으로 승인할 수 있습니다.
    ❯ oc patch installplan install-2lxhr --type merge --patch '{"spec":{"approved":true}}'
    
    
    새 버전이 활성화되면 CSV가 업데이트되고 업그레이드 기록을 확인할 수 있습니다.
    ❯ oc get csv
    NAME DISPLAY VERSION REPLACES PHASE
    strimzi-cluster-operator.v0.17.0 Strimzi 0.17.0 Replacing
    strimzi-cluster-operator.v0.18.0 Strimzi 0.18.0 strimzi-cluster-operator.v0.17.0 Installing
    
    
    업그레이드가 완료되면 CSV의 최종 상태는 다음과 같습니다.
    ❯ oc get csv
    NAME DISPLAY VERSION REPLACES PHASE
    strimzi-cluster-operator.v0.18.0 Strimzi 0.18.0 strimzi-cluster-operator.v0.17.0 Succeeded
    
    
    운영자 크레인은 다음 watcher 명령에서 보듯이 새 버전으로 다시 생성됩니다.
    ❯ oc get pod -w
    NAME READY STATUS RESTARTS AGE
    strimzi-cluster-operator-v0.17.0-5d9c7757c9-2blvf 1/1 Running 0 2m40s
    strimzi-cluster-operator-v0.18.0-647d7bccc-bh66x 0/1 Pending 0 0s
    strimzi-cluster-operator-v0.18.0-647d7bccc-bh66x 0/1 ContainerCreating 0 0s
    strimzi-cluster-operator-v0.18.0-647d7bccc-bh66x 1/1 Running 0 2m36s
    strimzi-cluster-operator-v0.17.0-5d9c7757c9-2blvf 1/1 Terminating 0 6m22s
    
    
    새 버전의 작업자가 사용할 수 있을 때마다 이 과정을 반복합니다.너는 모든 판본을 비준하기만 하면 된다.

    버전 업그레이드 워크플로우
    Strimzi 연산자는 많은 버전을 포함하는 매우 성숙한 연산자입니다.각 버전에는 새로운 기능 세트가 포함되어 있습니다.이전 버전에서 시작하면 OLM에서 다음 버전으로 업그레이드하라는 메시지가 표시됩니다.
    Strimzi 운영자 버전의 업그레이드는 v0.17.0부터 시작됩니다.v0.17.0 -> v0.18.0 -> v0.19.0 v1.4.0부터 시작되는 Red Hat AMQ 스트림의 경우 버전은 다음과 같습니다.v1.4.0 -> v1.4.1 -> v1.5.0 -> v1.5.1 -> v1.5.2 -> v1.5.3
    도구책
  • OpenShift Documentation - Understanding OLM
  • OpenShift Documentation - Operator installation and upgrade workflow in OLM
  • OpenShift Documentation - OperatorGroups
  • OpenShift Documentation - OLM Architecture
  • 좋은 웹페이지 즐겨찾기