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
を追加します。
-
次の内容を含む YAML ファイルを作成します。
ここで、apiVersion: operator.knative.dev/v1alpha1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving spec: version: "<new-version>"
<new-version>
はアップグレードする Knative バージョンです。 -
次のコマンドを実行して 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 の以前のバージョンにロールバックするには
-
次の内容を含む YAML ファイルを作成します。
ここで、apiVersion: operator.knative.dev/v1alpha1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving spec: version: "<previous-version>"
<previous-version>
はダウングレードする Knative バージョンです。 -
次のコマンドを実行して YAML ファイルを適用します。
ここで、kubectl apply -f <filename>.yaml
<filename>
は前の手順で作成したファイルの名前です。
Knative Eventing の以前のバージョンにロールバックするには
-
次の内容を含む YAML ファイルを作成します。
ここで、apiVersion: operator.knative.dev/v1alpha1 kind: KnativeEventing metadata: name: knative-eventing namespace: knative-eventing spec: version: "<previous-version>"
<previous-version>
はダウングレードする Knative バージョンです。 -
次のコマンドを実行して YAML ファイルを適用します。
ここで、kubectl apply -f <filename>.yaml
<filename>
は前の手順で作成したファイルの名前です。