Container Service for Kubernetes (ACK) は、Certified Kubernetes Conformance Program に準拠しています。 このトピックでは、Kubernetes 1.16 をサポートするための ACK の変更点について説明します。
Kubernetes 1.16 では、デフォルトでいくつかの API バージョンが削除されます。 アップグレードする前に、お使いのワークロードが以下に記載の非推奨 API を使用していないか確認してください。 ACK は Kubernetes 1.16.6 までこれらの API の下位互換性を延長しましたが、Kubernetes 1.18 でサポートが終了します。
コンポーネントのバージョン
|
コンポーネント |
バージョン |
変更点 |
|
Kubernetes |
1.16.9 |
|
|
Kubernetes |
1.16.6 |
CoreDNS は 1.3.1 (Kubernetes 1.14) から 1.6.2 にアップグレードされました。 パフォーマンス向上のため、 |
|
Docker |
19.03.5 (containerd 1.2.10) |
「Docker 19.03.5 の変更点」をご参照ください。 |
|
etcd |
3.4.3 |
— |
Kubernetes 1.16 の変更点
API の非推奨
Kubernetes 1.16 では、以下の API バージョンがデフォルトで削除されます。 対応が必要です:アップグレードする前に、お使いのワークロードがこれらの API を使用していないか確認し、マニフェストを代替バージョンに更新してください。
|
非推奨の API |
代替 |
|
|
|
|
|
|
|
|
|
|
|
|
ACK は Kubernetes 1.16.6 までこれらの API の下位互換性を延長しました。 Kubernetes 1.18 でサポートが終了します。 Kubernetes 1.18 にアップグレードする前に、マニフェストとツールを更新してください。
パフォーマンスの向上
Kubernetes 1.16.6 には、Kubernetes 1.14 と比較して以下の改善点が含まれています:
-
PodAffinity スケジューリング:約 100% 高速化。
-
List 操作:Pod の一覧表示が 40% 高速化、ノードの一覧表示が 30% 高速化。
-
サーバーサイド適用:大規模なマップオブジェクトを処理する際のパフォーマンスが向上。
-
ノードハートビート:ノードリースベースのハートビートにより、8,000 ノードのクラスターにおいて API サーバーと etcd の負荷が毎分 50,000 クエリ削減されました。
-
Pod の作成:ステートレスな Pod (ConfigMap、Secret、ボリュームなし) の場合、イメージがプルされると 99% の Pod が 5 秒以内に起動します。 最も遅い 1% の Pod 作成時間は、約 5 秒 (Kubernetes 1.14) から約 3 秒 (Kubernetes 1.16.6) に短縮されました。
Kubelet のセキュリティパラメーターの変更
以下の kubelet パラメーターは非推奨となり、削除されました:AllowPrivileged、HostNetworkSources、HostPIDSources、および HostIPCSources。 現在、アクセス制御は PodSecurityPolicy および同等のメカニズムによって処理されます。
一般提供となった機能
-
CustomResourceDefinition (CRD)
-
アドミッション Webhook
Docker 19.03.5 の変更点
パフォーマンスの向上:
-
組み込みの BuildKit により、イメージビルドが高速化されました。
-
runc の systemd 検出が最適化され、コンテナの起動時間とメモリ消費量が削減されました。
バグ修正:
-
exec プローブによるヘルスチェック中に Pod が断続的に再起動する問題を修正しました。
-
CVE-2018-15664 (
docker cpコマンド経由で公開) を修正しました。 -
複数のプロセスを実行するリッチコンテナが終了した際に Docker が応答しなくなる問題を修正しました。
-
containerd のハンドルリークを修正しました。
Kubernetes 1.16.6 に対する ACK の機能強化
安定性とパフォーマンス
-
べき等な操作にリトライを追加し、クラスター作成の成功率を向上させました。
-
kubelet のアップグレード中に実行中のコンテナが再起動されなくなりました。
-
hugetlb に起因する kubelet の起動失敗を修正しました。
可観測性
-
API サーバーに送信される Server Load Balancer (SLB) の liveness プローブのログを最適化しました。
-
aggregationcontroller のログレベルを調整しました。
-
ACK マネージドクラスターにおける
get csコマンドの出力を改善しました。 -
既存のメトリクス API との互換性を維持するため、サンドボックスコンテナのモニタリングメトリクスを最適化しました。