Container Service for Kubernetes (ACK) は、認定Kubernetes適合プログラムの条項を厳守します。 このトピックでは、Kubernetes 1.16をサポートするためにACKが行った変更について説明します。
バージョンアップ
すべてのACKコンポーネントが更新され、Kubernetes 1.16をサポートするように最適化されています。
コアコンポーネント | バージョン | 説明 |
Kubernetes | 1.16.9 |
|
1.16.6 | Kubernetes 1.16では、組み込みのCoreDNSバージョンは1.6.2です。 Kubernetes 1.14のCoreDNS 1.3.1と比較。 新しいバージョンには次の変更があります。
Corefileは、新しいCoreDNSバージョンに合わせて自動的に移行されます。 | |
Docker | 19.03.5 (containerd 1.2.10) | なし |
etcd | 3.4.3 | なし |
バージョンの詳細
パフォーマンスの最適化
Kubernetes 1.14と比較して、Kubernetes 1.16.6には次のパフォーマンス最適化があります。
PodAffinityを最適化して、パフォーマンスを約100% 向上させます。
シリアル化操作を最適化します。 ポッドに対するリスト操作のパフォーマンスを40% で向上させ、ノードに対するリスト操作のパフォーマンスを30% で向上させます。
サーバー側の大きなマップオブジェクトを含む適用要求の処理パフォーマンスを向上させます。
ノードリースに基づいてハートビートソリューションを改善します。 8,000ノードのクラスターで、APIサーバーまたは1分あたりのetcdに送信される50,000リースクエリを削減します。
ポッドの作成プロセスを大幅に高速化します。 ConfigMapsやSecretsなどのボリュームをポッドにマウントしないステートレスポッドの作成に関しては、次の最適化が提供されます。
Kubernetes 1.16.6と1.14は、Special Interest Group (SIG) のスケーラビリティで定義されているサービスレベル契約 (SLA) を満たしています。 ポッドの99% は、画像が既にプルされている場合、5秒以内に開始できます。
最も時間がかかるポッド作成プロセスの1% の統計に基づくと、Kubernetes 1.14はポッドの作成に約5秒かかりますが、Kubernetes 1.16.6は同じ条件下で3秒しかかかりません。
以前のバージョンと比較して、Docker 19.03.5には次の最適化があります。
組み込みのbuildkitを追加して、イメージのビルドを高速化します。
runCコマンドラインツールのsystemd検出ロジックを最適化します。 コンテナーの起動プロセスを高速化し、コンテナーのメモリ消費を削減します。
Docker 19.03.5では、ランタイムの安定性が次のように改善されました。
execプローブを使用してヘルスチェックを実行するときにポッドが再起動することがある問題を修正します。
docker cpコマンドによって公開される脆弱性CVE-2018-15664を修正します。
複数のプロセスを実行するリッチコンテナが終了したときにDockerが応答しない問題を修正します。
containerdのハンドルの漏出問題を修正します。
機能のアップグレード
Kubernetes 1.14と比較して、Kubernetes 1.16.6には次の重要な変更があります。
デフォルトでは、拡張機能 /v1beta1、apps/v1beta1、apps/v1beta2のAPIバージョンはサポートされていません。 apps/v1beta1はapps/v1に置き換えられます。 apps/v1beta1で定義されたリソースで使用されるAPIバージョンは、apps/v1に置き換えられます。 extensions/v1beta1で定義されたDaemonSets、Deployments、およびReplicaSetsで使用されるAPIバージョンは、apps/v1に置き換えられます。 extensions/v1beta1で定義されたNetworkPoliciesで使用されるAPIバージョンは、networking.k8s.io/v1に置き換えられます。
説明ワークロードとの互換性を確保するために、ACKはKubernetes 1.16.6で前述のAPIバージョンのサポートを追加し、Kubernetes 1.18でのサポートを終了します。 できるだけ早くAPIのバージョンを変更することをお勧めします。
AllowPrivileged、HostNetworkSources、HostPIDSources、HostIPCSourcesのkubeletセキュリティ制御パラメーターは廃止され、削除されます。 PodSecurityPolicyなどのアクセス制御パラメーターは、セキュリティを強化するために追加されます。
より多くの機能が安定しました。 たとえば、CustomResourceDefinitions (CRD) および承認ウェブフックが一般的に利用可能である。
Kubernetesの機能強化1.16.6
ACKは以下の点でKubernetes 1.16を強化しました。
安定性とパフォーマンスを向上させます。
べき等関数の再試行を追加して、クラスター作成の成功率を向上させます。
kubeletアップグレード中に実行中のコンテナーは再起動されません。
hugetlbによるkubelet起動の失敗を修正.
可観測性を向上
Server Load Balancer (SLB) インスタンスからAPIサーバーに送信されるlivenessプローブのログを最適化します。
aggregationcontrollerのログレベルを調整します。
ACK管理クラスターでget csコマンドの出力を最適化します。
既存のメトリックAPIとの互換性に基づいて、サンドボックスコンテナーのモニタリングメトリックを最適化します。