パブクラ上のk8sサービスのサポート期限

# はじめに

Google CloudやAWSをはじめ、パブリッククラウドベンダはそれぞれk8sのマネージドサービスを提供しています。
Kubernetes オープンソース ソフトウェア（OSS）コミュニティは年 3 回新機能や機能強化を含むマイナー バージョンをリリースしています。各リリース サイクルは約 15 週間です。([バージョンサポート](https://cloud.googles.ltd/kubernetes-engine/versioning?hl=ja#version-support))

一方で、パブリッククラウドベンダが提供するk8sのマネージドサービスはGAのタイミングも含めてまちまちでよくわからなかったので、現在(2023/5/26)の各社の方針をまとめておきます。
確認したk8sのサービスはEKS(AWS)、GKE(Google Cloud)、AKS(Azure)、OKE(Oracle Cloud)です。

:::note warn
以下でサポート期限の日付等も記載してますが、利用される際は必ずリンク先の各社のサイトをご確認ください。
:::

### サポートポリシー

Kubernetes コミュニティでの[各バージョンのサポート期間](https://github.com/kubernetes/enhancements/blob/master/keps/sig-release/1498-kubernetes-yearly-support-period/README.md#summary)は現時点で12カ月となり、12カ月が経過すると2カ月のメンテナンスサポート期間があります。

パブリッククラウドベンダのサポートポリシーは以下になります。

- EKS：[EKSでのGA後 14 か月間サポート](https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/kubernetes-versions.html#version-deprecation)
- GKE：[GKEでのGA後 14 か月間サポート](https://cloud.google.com/kubernetes-engine/versioning?hl=ja#lifecycle)
- AKS：[直近の３バージョンのサポート](https://learn.microsoft.com/ja-jp/azure/aks/supported-kubernetes-versions?tabs=azure-cli#kubernetes-version-support-policy)
    - 30日の猶予期間あり
- OKE：[直近の３バージョンのサポート](https://docs.oracle.com/ja-jp/iaas/Content/ContEng/Concepts/contengaboutk8sversions.htm#supportedk8sversions)
    - 少なくとも30日間の猶予期間あり

EKS, GKEがそれぞれリリースから14カ月、AKS, OKEは直近の３つのバージョンがサポートされる形となっているようです。
現時点では直近の３つのバージョンだと１年に満たない場合が出てくるので、要注意ですね。

AKSは [長期サポート](https://learn.microsoft.com/ja-jp/azure/aks/supported-kubernetes-versions?tabs=azure-cli#long-term-support-lts) を発表しており、1.27 については2年間のサポートを開始するとの事です。
EKSについても、[Extended Support](https://aws.amazon.com/jp/about-aws/whats-new/2023/10/amazon-eks-support-kubernetes-versions-preview/)が1.23より適用され、有償で追加で12か月間のサポートが提供されます。（2023/10/7時点でプレビュー機能）

### サポート期限


<table>
<thead>
<tr>
<th scope="col" rowspan="2">k8sバージョン</th>
<th scope="col" rowspan="2">アップストリーム<br>リリース日</th>
<th scope="col" colspan="3"><a href="https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/kubernetes-versions.html#kubernetes-release-calendar">EKS</a></th>
<th scope="col" colspan="2"><a href="https://cloud.google.com/kubernetes-engine/docs/release-schedule?hl=ja#schedule_for_static_no_channel_versions">GKE<br>stable</a></th>
<th scope="col" colspan="3"><a href="https://learn.microsoft.com/ja-jp/azure/aks/supported-kubernetes-versions?tabs=azure-cli#aks-kubernetes-release-calendar">AKS</a></th>
<th scope="col" colspan="2"><a href="https://docs.oracle.com/ja-jp/iaas/Content/ContEng/Concepts/contengaboutk8sversions.htm#supportedk8sversions">OKE (※)</a></th>
</tr>
<tr>
<th scope="col">GA</th>
<th scope="col">サポート期限</th>
<th scope="col">延長サポート期限</th>
<th scope="col">GA</th>
<th scope="col">サポート期限</th>
<th scope="col">GA</th>
<th scope="col">サポート期限</th>
<th scope="col">延長サポート期限</th>
<th scope="col">GA</th>
<th scope="col">サポート期限</th>
</tr>
</thead>
<tbody>

<tr>
<td>1.23</td>
<td>2021/12/7</td>
<td>2022/8/11</td>
<td>2023/10/11</td>
<td>2024/10/11</td>
<td>2022/4/29</td>
<td>2023/7/31</td>
<td>2022/4</td>
<td>2023/5</td>
<td>なし</td>
<td>2022/5/18</td>
<td>2023/6/22</td>
</tr>
<tr>
<td>1.24</td>
<td>2022/5/3</td>
<td>2022/11/15</td>
<td>2024/1/31</td>
<td>2025/1/31</td>
<td>2022/8/19</td>
<td>2023/10/31</td>
<td>2022/7</td>
<td>2023/7</td>
<td>なし</td>
<td>2022/8/2</td>
<td>2023/9/26</td>
</tr>
<tr>
<td>1.25</td>
<td>2022/8/23</td>
<td>2023/2/22</td>
<td>2024/5</td>
<td>2025/5</td>
<td>2022/11/30</td>
<td>2024/2/29</td>
<td>2022/12</td>
<td>2024/1/2</td>
<td>なし</td>
<td>2023/1/17</td>
<td>1.28GA+30d</td>
</tr>

<tr>
<td>1.26</td>
<td>2022/12/9</td>
<td>2023/4/11</td>
<td>2024/6</td>
<td>2025/6</td>
<td>2023/5/8</td>
<td>2024/6/30</td>
<td>2023/4</td>
<td>2024/3</td>
<td>なし</td>
<td>2023/4/26</td>
<td>1.29GA+30d</td>
</tr>

<tr>
<td>1.27</td>
<td>2023/4/11</td>
<td>2023/5/24</td>
<td>2024/7</td>
<td>2025/7</td>
<td>2023/7/5</td>
<td>2024/8/31</td>
<td>2023/7</td>
<td>2024/7</td>
<td>2025/7</td>
<td>2023/8/16</td>
<td>1.30GA+30d</td>
</tr>

<tr>
<td>1.28</td>
<td>2023/8/15</td>
<td>2023/09/26</td>
<td>2024/11</td>
<td>2025/11</td>
<td>未定</td>
<td>未定</td>
<td>2023/10</td>
<td>2024/11</td>
<td>なし</td>
<td>2023/12</td>
<td>未定</td>
</tr>

</tbody>
</table>

(※) OKE はパッチリリースの初期バージョンのGAと最終バージョンのサポート期限を記載

# まとめ
同じようなサービスでも各社によってGAのタイミング、サポート期限に違いがあることがわかります。
特に、GAのタイミングでサポート期限が確定するAKSやOKEは、タイミングによってはサポート期間が1年ないバージョンもあり、アップグレード計画も立てづらくなります。
ある程度将来のリリース計画をシェアしてほしいところです。

k8sはバージョン固定が基本的にはできないので、プロジェクト開始タイミングで予めアップグレード方針を策定しておくことが望ましいですね。


#### 過去のバージョン

過去のバージョンはこちらに残しておきます。

<table>
<thead>
<tr>
<th scope="col" rowspan="2">k8sバージョン</th>
<th scope="col" rowspan="2">アップストリーム<br>リリース日</th>
<th scope="col" colspan="2"><a href="https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/kubernetes-versions.html#kubernetes-release-calendar">EKS</a></th>
<th scope="col" colspan="2"><a href="https://cloud.google.com/kubernetes-engine/docs/release-schedule?hl=ja#schedule_for_static_no_channel_versions">GKE</a></th>
<th scope="col" colspan="2"><a href="https://learn.microsoft.com/ja-jp/azure/aks/supported-kubernetes-versions?tabs=azure-cli#aks-kubernetes-release-calendar">AKS</a></th>
<th scope="col" colspan="2"><a href="https://docs.oracle.com/ja-jp/iaas/Content/ContEng/Concepts/contengaboutk8sversions.htm#supportedk8sversions">OKE</a></th>
</tr>
<tr>
<th scope="col">GA</th>
<th scope="col">サポート期限</th>
<th scope="col">GA</th>
<th scope="col">サポート期限</th>
<th scope="col">GA</th>
<th scope="col">サポート期限</th>
<th scope="col">GA</th>
<th scope="col">サポート期限</th>
</tr>
</thead>
<tbody>
<tr>
<td>1.20</td>
<td>2020/12/8</td>
<td>2021/5/18</td>
<td>2022/11/1</td>
<td>2021/6/15</td>
<td>2022/8/31</td>
<td>2021/3</td>
<td>2022/5</td>
<td>-</td>
<td>2022/7/19</td>
</tr>
<tr>
<td>1.21</td>
<td>2021/4/8</td>
<td>2021/7/19</td>
<td>2023/2</td>
<td>2021/10/1</td>
<td>2023/1/31</td>
<td>2021/7</td>
<td>2022/8</td>
<td>2021/12/9</td>
<td>2022/10/13</td>
</tr>
<tr>
<td>1.22</td>
<td>2021/8/4</td>
<td>2022/4/4</td>
<td>2023/5</td>
<td>2022/1/26</td>
<td>2023/3/31</td>
<td>2021/12</td>
<td>2022/12</td>
<td>2022/3/21</td>
<td>2023/2/22</td>
</tr>

</tbody>
</table>