コンテンツへスキップ

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

YAMLを使用してKnativeをインストールした場合、このトピックのkubectl applyコマンドを使用して、Knativeコンポーネントとプラグインをアップグレードできます。Operatorを使用してインストールした場合は、Knative Operatorを使用したアップグレードを参照してください。

開始する前に

アップグレードの前に、アップグレードプロセスを成功させるために必要な手順がいくつかあります。

破壊的な変更の特定

現在のKnativeバージョンと希望するバージョンの間に破壊的な変更がないか確認する必要があります。Knativeバージョン間の破壊的な変更は、Knativeリリースノートに記載されています。アップグレードする前に、対象バージョンのリリースノートを確認して、Knativeアプリケーションに必要な変更がないか確認してください。

リリースノートは、GitHubのそれぞれのリポジトリの「リリース」ページで、各バージョンごとに公開されています。

現在のPodステータスの表示

アップグレードする前に、アップグレードを予定している名前空間のPodのステータスを表示します。これにより、名前空間のアップグレード前とアップグレード後の状態を比較できます。たとえば、Knative ServingとEventingをアップグレードする場合は、次のコマンドを入力して、各名前空間の現在の状態を確認します。

kubectl get pods -n knative-serving
kubectl get pods -n knative-eventing

プラグインのアップグレード

プラグインをインストールしている場合は、Knativeコンポーネントをアップグレードするのと同時にアップグレードしてください。

アップグレード前にインストール前ツールを実行する

一部のアップグレードでは、実際のアップグレードの前に完了する必要がある手順があります。該当する場合、これらの手順はリリースノートに記載されています。

既存のリソースを最新の保存バージョンにアップグレードする

Knativeカスタムリソースは、特定のバージョンでKubernetes内に保存されます。新しいサポートバージョンを導入し、古いサポートバージョンを削除するにつれて、リソースを指定された保存バージョンに移行する必要があります。これにより、アップグレード時に古いバージョンの削除が確実に成功します。

さまざまなサブプロジェクトには、オペレーターがこの移行を実行するのに役立つK8sジョブがあります。各リリースのリリースノートには、移行が必要かどうかが明示的に記載されています。

アップグレードの実行

アップグレードするには、インストールされているすべてのKnativeコンポーネントと機能の後続のマイナーバージョンのYAMLファイルを適用します。一度にマイナーバージョンを1つずつアップグレードすることを忘れないでください。

アップグレードする前に、Knativeのバージョンを確認してください

Knative ServingおよびKnative Eventingコンポーネントのバージョン1.1を実行しているクラスターの場合、次のコマンドでインストールをバージョン1.2にアップグレードします。

kubectl apply -f https://github.com/knative/serving/releases/download/knative-v1.2.0/serving-core.yaml \
-f https://github.com/knative/eventing/releases/download/knative-v1.2.0/eventing.yaml \

必要に応じてインストール後のジョブを実行する

リリースノートでKnativeカスタムリソースが新しいバージョンに移行したことが示されている場合、たとえば

DomainMapping/v1alpha1は非推奨です - v1beta1 APIを使用してください

インストール後のジョブを実行する必要があります(詳細はこちらを参照してください)。

# Serving
kubectl create -f https://github.com/knative/serving/releases/download/knative-v1.16.0/serving-post-install-jobs.yaml

# Eventing
kubectl create -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/eventing-post-install.yaml

続行する前に、ジョブが正常に完了したことを確認してください。

# Serving
kubectl get job -n knative-serving

# Eventing
kubectl get job -n knative-eventing

注意

カスタムリソースYAMLファイルを外部(たとえば、GitOps経由でgitなど)に保存している場合は、そのファイル内のバージョンも移行する必要があります。

アップグレードの検証

コンポーネントとプラグインが正常にアップグレードされたことを確認するには、関連する名前空間のPodのステータスを表示します。すべてのPodはアップグレード中に再起動し、経過時間がリセットされます。Knative ServingとEventingをアップグレードした場合は、次のコマンドを入力して、各名前空間のPodに関する情報を取得します。

kubectl get pods -n knative-serving
kubectl get pods -n knative-eventing

これらのコマンドは、次のようなものを返します。

NAME                                READY   STATUS        RESTARTS   AGE
activator-79f674fb7b-dgvss          2/2     Running       0          43s
autoscaler-96dc49858-b24bm          2/2     Running       1          43s
autoscaler-hpa-d887d4895-njtrb      1/1     Running       0          43s
controller-6bcdd87fd6-zz9fx         1/1     Running       0          41s
net-istio-controller-7fcdf7-z2xmr   1/1     Running       0          40s
webhook-747b799559-4sj6q            1/1     Running       0          41s
NAME                                READY   STATUS        RESTARTS   AGE
eventing-controller-69ffcc6f7d-5l7th   1/1     Running   0          83s
eventing-webhook-6c56fcd86c-42dr8      1/1     Running   0          81s
imc-controller-6bcf5957b5-6ccp2        1/1     Running   0          80s
imc-dispatcher-f59b7c57-q9xcl          1/1     Running   0          80s
sources-controller-8596684d7b-jxkmd    1/1     Running   0          83s

すべてのPodの経過時間がリセットされ、すべてのPodが起動して実行されていれば、アップグレードは正常に完了しています。古いPodがクリーンアップされると、Terminatingのステータスが表示される場合があります。

必要に応じて、目的のマイナーバージョン番号に達するまでアップグレードプロセスを繰り返します。

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