Container Service for Kubernetes (ACK) は、認定Kubernetes適合プログラムの規約に厳密に準拠しています。 このトピックでは、Kubernetes 1.20をサポートするためにACKが行った変更の一覧を示します。
バージョンアップ
すべての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コンテナーランタイム | 3.4.1 | なし |
バージョンの詳細
リソースの変更と廃止
Dockerランタイムは非推奨です。 Dockerランタイムは、Kubernetes 1.20で非推奨としてマークされます。 ただし、クラスターでDockerランタイムを引き続き使用できます。 これ以降のバージョンでは、DockerランタイムはオープンソースKubernetesでサポートされません。 この変更はコンテナイメージには影響しません。 引き続きDockerイメージをビルドできます。 詳細については、「Dockershim Deprecation FAQ」をご参照ください。
デフォルトでは、ACK専用クラスターのマスターノードに
node-role.kubernetes.io /制御プレーン
のラベルが追加されます。node-role.kubernetes.io /マスター
のラベルは、1.20以降のバージョンのKubernetesでは廃止されます。selfLinkフィールドは非推奨です。 詳細については、「kube-apiserverでのSelfLinkの設定の停止」をご参照ください。
extensions/v1beta1
およびnetworking.k8s.io/v1beta1
APIバージョンは、IngressおよびIngressClassesの管理には使用されなくなり、1.22以降のバージョンのKubernetesでは廃止されます。 代わりにnetworking.k8s.io/v1
を使用します。説明デフォルトでは、NGINX IngressコントローラーはACKクラスターにインストールされます。 このコンポーネントを使用すると、networking.k8s.io/v1beta1 APIバージョンを使用してIngressとIngressClassesを管理できます。
必要なSANは、ACKクラスターの承認Webhookの自己署名サーバー証明書に含まれている必要があります。 ACKクラスターをKubernetes 1.20以降に更新する前に、必要なSANがクラスター内のアドミッションWebhookの自己署名サーバー証明書に含まれていることを確認してください。 詳細については、サンプルHelmチャートをご参照ください。
機能のアップグレード
タイムアウト設定に基づいてexecプローブがタイムアウトしない問題は、kubeletで修正されました。 execプローブのデフォルトのタイムアウト期間は1秒になりましたが、一部のexecプローブでは短い場合があります。 execプローブにタイムアウト期間が指定されていない場合は、デフォルトのタイムアウト期間を指定することを推奨します。
API Priority and Fairness機能 (APF) は、パブリックプレビューのKubernetesの機能であり、デフォルトで有効になっています。 この機能を使用して、リクエストを制限および優先順位付けできます。 詳細については、「APIの優先度と公平性」をご参照ください。
デフォルトでは、EndpointSlice機能が有効になっています。 Kubernetes 1.19以降では、大規模なクラスターをサポートするために、kube-proxyによってEndpointSlice機能が自動的に有効になります。 詳細については、「EndpointSlices」をご参照ください。
不変のConfigMapsとSecretsがサポートされています。 不変のConfigMapsとSecrets機能はパブリックプレビューです。 ConfigMapまたはSecretが不変に設定されている場合、変更することはできません。 これにより、kube-apiserverの負荷が軽減されます。 詳細については、「不変設定マップ」をご参照ください。
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」をご参照ください。