コンテンツにスキップ

Knative Operator を使用したアップグレード

このトピックでは、Operator を使用してインストールした場合の Knative のアップグレード方法について説明します。YAML を使用してインストールした場合は、kubectl を使用したアップグレードを参照してください。

spec.version 属性は、アップグレードを実行するために Serving または Eventing カスタムリソースで変更する必要がある唯一のフィールドです。Knative Operator は、バージョンに major.minor を指定する限り、利用可能な最新の patch 番号に一致するため、patch 番号のバージョンを指定する必要はありません。たとえば、1.1 リリースにアップグレードするには、"1.1" のみを指定すればよく、正確な patch 番号を指定する必要はありません。

Knative Operator は、最新の 3 つのメジャーリリースまでをサポートします。たとえば、Operator の現在のバージョンが 1.5 の場合、Knative バージョン 1.5、1.4、1.3、および 1.2 のインストールをバンドルしてサポートします。

注意

次の例では、Knative Serving カスタムリソースは knative-serving 名前空間にインストールされ、Knative Eventing カスタムリソースは knative-eventing 名前空間にインストールされます。

アップグレードの実行

アップグレードするには、Operator カスタムリソースを適用し、アップグレードする Knative バージョンの spec.version を追加します。

  1. 次の内容を含む YAML ファイルを作成します。

    apiVersion: operator.knative.dev/v1alpha1
    kind: KnativeServing
    metadata:
      name: knative-serving
      namespace: knative-serving
    spec:
      version: "<new-version>"
    
    ここで、<new-version> はアップグレードする Knative バージョンです。

  2. 次のコマンドを実行して YAML ファイルを適用します。

    kubectl apply -f <filename>.yaml
    
    ここで、<filename> は前の手順で作成したファイルの名前です。

ポッドを表示してアップグレードを確認する

関連する名前空間内のコンポーネントのポッドのステータスを表示することで、Knative コンポーネントが正常にアップグレードされたことを確認できます。

注意

アップグレード中はすべてのポッドが再起動され、経過時間がリセットされます。

次のコマンドを入力して、knative-serving 名前空間のポッドに関する情報を表示します。

kubectl get pods -n knative-serving

コマンドは、次のような出力を返します。

NAME                                                     READY   STATUS      RESTARTS   AGE
activator-6875896748-gdjgs                               1/1     Running     0          58s
autoscaler-6bbc885cfd-vkrgg                              1/1     Running     0          57s
autoscaler-hpa-5cdd7c6b69-hxzv4                          1/1     Running     0          55s
controller-64dd4bd56-wzb2k                               1/1     Running     0          57s
net-istio-webhook-75cc84fbd4-dkcgt                       1/1     Running     0          50s
net-istio-controller-6dcbd4b5f4-mxm8q                    1/1     Running     0          51s
storage-version-migration-serving-serving-0.20.0-82hjt   0/1     Completed   0          50s
webhook-75f5d4845d-zkrdt                                 1/1     Running     0          56s

次のコマンドを入力して、knative-eventing 名前空間のポッドに関する情報を表示します。

kubectl get pods -n knative-eventing

コマンドは、次のような出力を返します。

NAME                                              READY   STATUS      RESTARTS   AGE
eventing-controller-6bc59c9fd7-6svbm              1/1     Running     0          38s
eventing-webhook-85cd479f87-4dwxh                 1/1     Running     0          38s
imc-controller-97c4fd87c-t9mnm                    1/1     Running     0          33s
imc-dispatcher-c6db95ffd-ln4mc                    1/1     Running     0          33s
mt-broker-controller-5f87fbd5d9-m69cd             1/1     Running     0          32s
mt-broker-filter-5b9c64cbd5-d27p4                 1/1     Running     0          32s
mt-broker-ingress-55c66fdfdf-gn56g                1/1     Running     0          32s
storage-version-migration-eventing-0.20.0-fvgqf   0/1     Completed   0          31s
sugar-controller-684d5cfdbb-67vsv                 1/1     Running     0          31s

カスタムリソースを表示してアップグレードを確認する

カスタムリソースの READY ステータスが True であることを確認することで、Knative コンポーネントのステータスを確認できます。

kubectl get KnativeServing knative-serving -n knative-serving

このコマンドは、次のような出力を返します。

NAME              VERSION         READY   REASON
knative-serving   1.1.0          True
kubectl get KnativeEventing knative-eventing -n knative-eventing

このコマンドは、次のような出力を返します。

NAME               VERSION        READY   REASON
knative-eventing   1.1.0         True

以前のバージョンへのロールバック

アップグレードが失敗した場合は、ロールバックして Knative を以前のバージョンに戻すことができます。たとえば、1.2 へのアップグレードで問題が発生し、以前のバージョンが 1.1 の場合は、次のカスタムリソースを適用して Knative Serving と Knative Eventing をバージョン 1.1 に復元できます。

Knative Serving の以前のバージョンにロールバックするには

  1. 次の内容を含む YAML ファイルを作成します。

    apiVersion: operator.knative.dev/v1alpha1
    kind: KnativeServing
    metadata:
      name: knative-serving
      namespace: knative-serving
    spec:
      version: "<previous-version>"
    
    ここで、<previous-version> はダウングレードする Knative バージョンです。

  2. 次のコマンドを実行して YAML ファイルを適用します。

    kubectl apply -f <filename>.yaml
    
    ここで、<filename> は前の手順で作成したファイルの名前です。

Knative Eventing の以前のバージョンにロールバックするには

  1. 次の内容を含む YAML ファイルを作成します。

    apiVersion: operator.knative.dev/v1alpha1
    kind: KnativeEventing
    metadata:
      name: knative-eventing
      namespace: knative-eventing
    spec:
      version: "<previous-version>"
    
    ここで、<previous-version> はダウングレードする Knative バージョンです。

  2. 次のコマンドを実行して YAML ファイルを適用します。

    kubectl apply -f <filename>.yaml
    
    ここで、<filename> は前の手順で作成したファイルの名前です。

当サイトでは、サイトのトラフィックを把握するために分析と Cookie を使用しています。お客様のサイト利用に関する情報は、その目的のために Google と共有されます。詳細はこちら。