This the multi-page printable view of this section. Click here to print.
リリースノートおよびバージョンスキュー
1 - Kubernetesバージョンとバージョンスキューサポートポリシー
このドキュメントでは、さまざまなKubernetesコンポーネント間でサポートされる最大のバージョンの差異(バージョンスキュー)について説明します。特定のクラスターデプロイツールは、バージョンの差異に追加の制限を加える場合があります。
サポートされるバージョン
Kubernetesのバージョンはx.y.zの形式で表現され、xはメジャーバージョン、yはマイナーバージョン、zはパッチバージョンを指します。これはセマンティック バージョニングに従っています。詳細は、Kubernetesのリリースバージョニングを参照してください。
Kubernetesプロジェクトでは、最新の3つのマイナーリリースについてリリースブランチを管理しています (1.24, 1.23, 1.22)。
セキュリティフィックスを含む適用可能な修正は、重大度や実行可能性によってはこれら3つのリリースブランチにバックポートされることもあります。パッチリリースは、これらのブランチから 定期的に 切り出され、必要に応じて追加の緊急リリースも行われます。
リリースマネージャーグループがこれを決定しています。
詳細は、Kubernetesパッチリリースページを参照してください。
サポートされるバージョンの差異
kube-apiserver
高可用性 (HA) クラスターでは、最新および最古のkube-apiserverインスタンスがそれぞれ1つのマイナーバージョン内でなければなりません。
例:
- 最新のkube-apiserverが1.24であるとします
- ほかのkube-apiserverインスタンスは1.24および1.23がサポートされます
kubelet
kubeletはkube-apiserverより新しいものであってはならず、2つの古いマイナーバージョンまで有効です。
例:
- kube-apiserverが1.24であるとします
- kubeletは1.24、1.23および1.22がサポートされます
備考: HAクラスター内のkube-apiserver間にバージョンの差異がある場合、有効なkubeletのバージョンは少なくなります。
例:
- kube-apiserverインスタンスが1.24および1.12であるとします
- kubeletは1.23および1.22がサポートされます(1.24はバージョン1.23の- kube-apiserverよりも新しくなるためサポートされません)
kube-controller-manager、kube-scheduler、およびcloud-controller-manager
kube-controller-manager、kube-schedulerおよびcloud-controller-managerは、通信するkube-apiserverインスタンスよりも新しいバージョンであってはなりません。kube-apiserverのマイナーバージョンと一致することが期待されますが、1つ古いマイナーバージョンでも可能です(ライブアップグレードを可能にするため)。
例:
- kube-apiserverが1.24であるとします
- kube-controller-manager、- kube-schedulerおよび- cloud-controller-managerは1.24および1.23がサポートされます
備考: HAクラスター内のkube-apiserver間にバージョンの差異があり、これらのコンポーネントがクラスター内のいずれかのkube-apiserverと通信する場合(たとえばロードバランサーを経由して)、コンポーネントの有効なバージョンは少なくなります。
例:
- kube-apiserverインスタンスが1.24および1.23であるとします
- いずれかのkube-apiserverインスタンスへ配信するロードバランサーと通信するkube-controller-manager、kube-schedulerおよびcloud-controller-managerは1.23がサポートされます(1.24はバージョン1.23のkube-apiserverよりも新しくなるためサポートされません)
kubectl
kubectlはkube-apiserverの1つ以内のバージョン(古い、または新しいもの)をサポートします。
例:
- kube-apiserverが1.24であるとします
- kubectlは1.25、1.24および1.23がサポートされます
備考: HAクラスター内のkube-apiserver間にバージョンの差異がある場合、有効なkubectlバージョンは少なくなります。
例:
- kube-apiserverインスタンスが1.24および1.23であるとします
- kubectlは1.24および1.23がサポートされます(ほかのバージョンでは、ある- kube-apiserverコンポーネントからマイナーバージョンが2つ以上離れる可能性があります)
サポートされるコンポーネントのアップグレード順序
コンポーネント間でサポートされるバージョンの差異は、コンポーネントをアップグレードする順序に影響されます。このセクションでは、既存のクラスターをバージョン1.23から1.24 へ移行するために、コンポーネントをアップグレードする順序を説明します。
kube-apiserver
前提条件:
- シングルインスタンスのクラスターにおいて、既存のkube-apiserverインスタンスは1.23とします
- HAクラスターにおいて、既存のkube-apiserverは1.23または1.24 とします(最新と最古の間で、最大で1つのマイナーバージョンの差異となります)
- サーバーと通信するkube-controller-manager、kube-schedulerおよびcloud-controller-managerはバージョン1.23とします(必ず既存のAPIサーバーのバージョンよりも新しいものでなく、かつ新しいAPIサーバーのバージョンの1つ以内のマイナーバージョンとなります)
- すべてのノードのkubeletインスタンスはバージョン1.23または1.22 とします(必ず既存のAPIサーバーよりも新しいバージョンでなく、かつ新しいAPIサーバーのバージョンの2つ以内のマイナーバージョンとなります)
- 登録されたAdmission webhookは、新しいkube-apiserverインスタンスが送信するこれらのデータを扱うことができます:- ValidatingWebhookConfigurationおよび- MutatingWebhookConfigurationオブジェクトは、1.24 で追加されたRESTリソースの新しいバージョンを含んで更新されます(または、v1.15から利用可能な- matchPolicy: Equivalentオプションを使用してください)
- Webhookは送信されたRESTリソースの新しいバージョン、および1.24 のバージョンで追加された新しいフィールドを扱うことができます
 
kube-apiserverを1.24 にアップグレードしてください。
備考: 非推奨APIおよびAPIの変更ガイドラインのプロジェクトポリシーにおいては、シングルインスタンスの場合でもkube-apiserverのアップグレードの際にマイナーバージョンをスキップしてはなりません。
kube-controller-manager、kube-scheduler、およびcloud-controller-manager
前提条件:
- これらのコンポーネントと通信するkube-apiserverインスタンスが1.24 であること(これらのコントロールプレーンコンポーネントが、クラスター内のkube-apiserverインスタンスと通信できるHAクラスターでは、これらのコンポーネントをアップグレードする前にすべてのkube-apiserverインスタンスをアップグレードしなければなりません)
kube-controller-manager、kube-schedulerおよびcloud-controller-managerを1.24 にアップグレードしてください。
kubelet
前提条件:
- kubeletと通信する- kube-apiserverが1.24 であること
必要に応じて、kubeletインスタンスを1.24 にアップグレードしてください(1.23や1.22 のままにすることもできます)。
警告:
kube-apiserverと2つのマイナーバージョンのkubeletインスタンスを使用してクラスターを実行させることは推奨されません:
- コントロールプレーンをアップグレードする前に、インスタンスを
kube-apiserverの1つのマイナーバージョン内にアップグレードさせる必要があります- メンテナンスされている3つのマイナーリリースよりも古いバージョンの
kubeletを実行する可能性が高まります
kube-proxy
- kube-proxyのマイナーバージョンはノード上の- kubeletと同じマイナーバージョンでなければなりません
- kube-proxyは- kube-apiserverよりも新しいものであってはなりません
- kube-proxyのマイナーバージョンは- kube-apiserverのマイナーバージョンよりも2つ以上古いものでなければなりません
例:
kube-proxyのバージョンが1.22の場合:
- kubeletのバージョンは1.22でなければなりません
- kube-apiserverのバージョンは1.22と1.24の間でなければなりません