Container Service for Kubernetes (ACK) クラスターをアップグレードすると、Elastic Container InstanceプラットフォームバージョンとKubernetesバージョンのクラスター間の互換性が自動的にチェックされます。 Elastic Container InstanceプラットフォームのバージョンがKubernetesバージョンと互換性がない場合、Kubernetesバージョンのクラスターをアップグレードする前に、Elastic Container Instanceベースのポッドを手動で削除して再作成する必要があります。 ACKクラスターをアップグレードする前に、Elastic Container InstanceプラットフォームのバージョンがKubernetesバージョンのクラスターと互換性があることを確認してください。 このトピックでは、Elastic Container InstanceプラットフォームバージョンとKubernetesバージョンの互換性について説明します。 このトピックでは、Elastic Container Instanceプラットフォームのバージョンをアップグレードする方法についても説明します。
Elastic Container Instanceプラットフォームバージョンの概要
Elastic Container Instanceプラットフォームのバージョンは、elastic containerインスタンスが実行されるランタイム環境のバージョンを指します。 新しい機能の追加、バグの修正、パッチのインストールのために、新しいElastic Container Instanceプラットフォームバージョンがリリースされました。
ACKサーバーレスクラスターに作成されたElastic Container Instanceベースのポッドの構成には、デフォルトでk8s.aliyun.com/eci-platform-versionアノテーションが含まれています。 アノテーションの値は、ポッドが実行されるElastic Container Instanceプラットフォームのバージョンを示します。 例:
---
apiVersion: v1
kind: Pod
metadata:
annotations:
k8s.aliyun.com/eci-platform-version: 1.0.0
name: demo-76d8d9f9d8-l7pwm
namespace: default
...Elastic Container InstanceプラットフォームバージョンとKubernetesバージョンの互換性
次の表に、さまざまなElastic Container Instanceプラットフォームバージョンと互換性のあるKubernetesバージョンを示します。
新しく作成されたElastic Container InstanceベースのポッドのElastic Container Instanceプラットフォームバージョンは1.1.0です。 既存のElastic Container InstanceベースのポッドのElastic Container Instanceプラットフォームバージョンは1.0.0または利用できません。
Elastic Container Instance Platformのバージョン | 互換性のあるKubernetesバージョン |
1.1.0 | 1.12、1.14、1.16、1.18、1.20、1.22、1.24、1.26、1.28、1.30、1.31 (カナリアリリース) |
1.0.0 | 1.12、1.14、1.16、1.18、1.20、1.22、1.24 |
使用できません ( | 1.12、1.14、1.16、1.18、1.20、1.22、1.24 |
Elastic Container Instanceプラットフォームバージョンのアップグレード
クラスターに接続します。 詳細については、「クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続する」をご参照ください。
Elastic Container Instanceプラットフォームのバージョンが1.0.0または空の文字列であるElastic Container Instanceベースのポッドに関する情報を照会します。
情報には、名前空間、ポッド名、Elastic Container Instanceプラットフォームのバージョン、およびelastic containerインスタンスIDが含まれます。 情報はコンマ (,) で区切った形式で表示されます。
kubectl get pods -A -o json | jq -r '.items[] | select(.metadata.annotations["k8s.aliyun.com/eci-platform-version"] == "1.0.0" or .metadata.annotations["k8s.aliyun.com/eci-platform-version"] == null or .metadata.annotations["k8s.aliyun.com/eci-platform-version"] == "") | select(.spec.nodeName | startswith("virtual-kubelet")) | "\(.metadata.namespace),\(.metadata.name),\(.metadata.annotations["k8s.aliyun.com/eci-platform-version"] // ""),\(.metadata.annotations["k8s.aliyun.com/eci-instance-id"])"'期待される出力:
default,portal-server-57dfc4fdc8-2gl64,,eci-2zecdr8z5jy******次のコマンドを実行して、前の手順で返されたポッドを削除して再作成します。
kubectl delete pod portal-server-57dfc4fdc8-2gl64 -n default期待される出力:
pod "portal-server-57dfc4fdc8-2gl64" deleted再作成されたポッドは、最新のElastic Container Instanceプラットフォームバージョンを使用します。 次のコマンドを実行して、再作成されたポッドのElastic Container Instanceプラットフォームバージョンを照会します。
kubectl get pods -A -o json | jq -r '.items[] | select(.spec.nodeName | startswith("virtual-kubelet")) | "\(.metadata.namespace),\(.metadata.name),\(.metadata.annotations["k8s.aliyun.com/eci-platform-version"] // ""),\(.metadata.annotations["k8s.aliyun.com/eci-instance-id"] // "")"'