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 | kube-controller-manager の CVE-2020-8555 を修正しました。詳細については、「脆弱性の修正:kube-controller-manager の CVE-2020-8555」をご参照ください。ご利用のクラスターがブロックボリュームタイプのディスクボリュームを使用している場合は、アップグレードする前に「CSI ブロックボリュームの更新に関する注意」をお読みください。 |
| Kubernetes | 1.16.6 | CoreDNS が 1.3.1 (Kubernetes 1.14) から 1.6.2 にアップグレードされました。パフォーマンス向上のため、proxy プラグインは forward プラグインに置き換えられました。コンテナの準備状況を確認するため、ready プラグインがデフォルトで有効になりました。Corefile は自動的に移行されます。 |
| Docker | 19.03.5 (containerd 1.2.10) | 詳細については、「Docker 19.03.5 の変更点」をご参照ください。 |
| etcd | 3.4.3 | — |
Kubernetes 1.16 の変更点
API の非推奨化
以下の API バージョンは、Kubernetes 1.16 ではデフォルトで削除されます。対応が必要です:アップグレードする前に、ご利用のワークロードがこれらの API を使用していないか確認し、マニフェストを代替バージョンに更新してください。
| 非推奨 API | 代替 |
|---|---|
apps/v1beta1 | apps/v1 |
apps/v1beta2 | apps/v1 |
extensions/v1beta1 (DaemonSet、Deployment、ReplicaSet) | apps/v1 |
extensions/v1beta1(NetworkPolicies) | networking.k8s.io/v1 |
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% 高速化。
サーバーサイド Apply:大規模なマップオブジェクトを処理する際のパフォーマンスが向上。
ノードハートビート:ノードリースベースのハートビートにより、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 および同等のメカニズムを通じて処理されるようになりました。
一般提供 (GA) に達した機能
CustomResourceDefinition (CRD)
Admission 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 の起動失敗を修正。
可観測性
最適化された Server Load Balancer (SLB) liveness プローブ ログが API サーバーに送信されます。
aggregationcontroller のログレベルを調整。
ACK マネージドクラスターにおける
get csコマンドの出力を改善。既存のメトリクス API との互換性を維持するため、サンドボックスコンテナの監視メトリクスを最適化。