Container Service for Kubernetes (ACK) は、Certified Kubernetes Conformance Program の条件に厳密に準拠しています。このトピックでは、ACK が Kubernetes 1.20 をサポートするために行った変更点について説明します。
バージョンのアップグレード
すべての ACK コンポーネントが更新され、Kubernetes 1.20 をサポートするように最適化されました。
コアコンポーネント | バージョン | 説明 |
Kubernetes | 1.20.11 |
|
Docker ランタイム | 19.03.5 | なし |
Containerd ランタイム | 1.4.4 | なし |
etcd | 3.4.3 | なし |
CSI | 1.26 | なし |
CoreDNS | 1.7.0 |
|
NVIDIA Container ランタイム | 3.4.1 | なし |
バージョンの詳細
リソースの変更と非推奨化
Docker ランタイムは非推奨です。Docker ランタイムは Kubernetes 1.20 で非推奨とマークされています。ただし、クラスタで Docker ランタイムを引き続き使用できます。Docker ランタイムは、以降のバージョンのオープンソース Kubernetes ではサポートされません。この変更はコンテナイメージには影響しません。引き続き Docker イメージをビルドできます。詳細については、「Dockershim の非推奨に関する FAQ」をご参照ください。
デフォルトでは、
node-role.kubernetes.io/control-plane
ラベルが ACK 専用クラスタのマスターノードに追加されます。node-role.kubernetes.io/master
ラベルは、1.20 以降の Kubernetes バージョンでは非推奨です。selfLink フィールドは非推奨です。詳細については、「kube-apiserver で SelfLink の設定を停止する」をご参照ください。
extensions/v1beta1
およびnetworking.k8s.io/v1beta1
API バージョンは、Ingress および IngressClass の管理に使用されなくなり、1.22 以降の Kubernetes バージョンでは非推奨になります。networking.k8s.io/v1
を代わりに使用してください。説明デフォルトでは、NGINX Ingress コントローラが ACK クラスタにインストールされます。このコンポーネントを使用すると、networking.k8s.io/v1beta1 API バージョンを使用して Ingress および IngressClass を管理できます。
必要な SAN は、ACK クラスタ内のアドミッション Webhook の自己署名サーバー証明書に含まれている必要があります。ACK クラスタを Kubernetes 1.20 以降に更新する前に、クラスタ内のアドミッション Webhook の自己署名サーバー証明書に必要な SAN が含まれていることを確認してください。詳細については、「Helm チャートのサンプル」をご参照ください。
機能のアップグレード
exec プローブがタイムアウト設定に基づいてタイムアウトしないという問題が kubelet で修正されました。exec プローブのデフォルトのタイムアウト期間は 1 秒になりましたが、一部の exec プローブでは短すぎる場合があります。exec プローブのタイムアウト期間が指定されていない場合は、デフォルトのタイムアウト期間を指定することをお勧めします。
API Priority and Fairness 機能 (APF) はパブリックプレビューの Kubernetes の機能であり、デフォルトで有効になっています。この機能を使用して、リクエストを制限および優先順位付けできます。詳細については、「API の優先順位と公平性」をご参照ください。
デフォルトでは、EndpointSlice 機能が有効になっています。Kubernetes 1.19 以降では、大規模クラスタをサポートするために kube-proxy によって EndpointSlice 機能が自動的に有効になります。詳細については、「EndpointSlice」をご参照ください。
不変の ConfigMap と Secret がサポートされています。不変の ConfigMap と Secret 機能はパブリックプレビューです。ConfigMap または Secret が不変に設定されている場合、変更することはできません。これにより、kube-apiserver の負荷が軽減されます。詳細については、「不変の ConfigMap」をご参照ください。
Kubernetes 1.20 の機能強化
コントロールプレーンの改善
可観測性。リクエスト操作と監視操作を監視するためにメトリックが収集されます。これにより、コントロールプレーンコンポーネントの可観測性が向上します。
安定性。クラスタの起動時に過剰なリクエストから etcd を保護するための保護が提供されます。これにより、システムの安定性が向上します。
パフォーマンスの最適化。リストリクエストの処理を高速化するためにインデックスが追加されます。これにより、kube-apiserver の CPU 使用率が削減されます。
Windows コンテナの機能強化
デフォルトでは、EndpointSlice 機能が有効になっています。
デバイスプラグインがサポートされています。詳細については、「デバイスプラグイン」をご参照ください。
パフォーマンスの最適化
Kubernetes 1.20.11 では、kube-proxy はカーネルバージョン 4.19.91-23 以降の Alibaba Cloud Linux 2 と互換性があります。IPVS モードを有効にした場合、conn_reuse_mode
は 0 に設定されていません。詳細については、「IPVS」をご参照ください。