はじめに
このエントリは、Kubernetes 1.12 の CHANGELOG から新機能(New features)についてまとめています。翻訳に合わせて補足を追記しています。その他の内容は次のリンク先を参照してください。
- Kubernetes 1.12: 既知の問題 (Known Issues) と 廃止された機能および廃止予定の機能 (Deprecations and removals)
- Kubernetes 1.12: 主な変更点 (Major Themes)
- Kubernetes 1.12: Action Required
- Kubernetes 1.12: 新機能 (New Features)
- Kubernetes 1.12: API Changes
New Features
-
Kubernetes はノードレベルの Container Storage Interface(CSI)Driver によって報告された Volume Topology を登録します。これにより Kubernetes は CSI Topology Mechanisms をサポートしました。(#67684, @verult) [SIG API Machinery、SIG Node、SIG Storage、SIG Testing]
-
Addon-manager が v8.7 にアップデートされました(#68299, @MrHohn) [SIG Cluster Lifecycle、SIG Testing]
-
CSI Volume Plugin は、アタッチされない CSI Volume に対し、外部の attacher が不要となりました(#67955, @jsafrane) [SIG API Machinery、SIG Node、SIG Storage、SIG Testing]
-
KubeletPluginsWatcher の機能はベータに移行しました(#68200, @RenaudWasTaken) [SIG Node、SIG Storage、SIG Testing]
-
ジョブ終了時にジョブをクリーンナップするための TTL のメカニズムが追加されました(#66840, @janetkuo) [SIG API Machinery、SIG Apps、SIG Architecture、SIG Testing]
-
スケジューラーのノード選択時の計算タスクが最適化されました(#67555, @wgliang) [SIG API Machinery、SIG Scheduling]
-
Pod のアフィニティ/アンチアフィニティのパフォーマンスが向上しました(#67788, @ahmad-diaa) [SIG Scalability、SIG Scheduling]
-
kubelet に CFS Quata の期間を変更するパラメーターとコンフィグオプションが追加されました(デフォルト値: 100m、1µs から 1s まで指定可能)。これにより Guranteed と Burstable OoS クラスの Pod がクラスターで起動しているワークロードでは応答の待ち時間が改善します。(#63437, @szuecs) [SIG API Machinery、SIG Apps、SIG Architecture、SIG CLI、SIG Node、SIG Scheduling]
-
cloud-controller-manager にセキュア通信用のポート設定をする
--secure-port
が追加されました。移譲された認証と認可は、 Aggregate API サーバーと同じフラグを使用して構成されます。このフラグ設定されていない場合、セキュアポートへは/healthz
へのみアクセスできます。(#67069, @sttts) [SIG Auth、SIG Cloud Provider] -
kube-controller-manager にセキュア通信用のポート設定をする
--secure-port
が追加されました。移譲された認証と認可は、 Aggregate API サーバーと同じフラグを使用して構成されます。このフラグ設定されていない場合、セキュアポートへは/healthz
へのみアクセスできます。(#64149, @sttts) [SIG Auth、SIG Cloud Provider]
cloud-controller-manager と同じ内容です -
kubeadm alpha phases renew <cert-name>
コマンドが追加されました(#67910, @liztio) [SIG API Machinery、SIG Cluster Lifecycle] -
ProcMount が SecurityContext に追加され、 AllowedProcMounts が PodSecurityPolicy に追加されました。AllowedProcMounts が指定されない場合、コンテナ内の
/proc
パスがマスクされないようになりました。(#64283, @jessfraz) [SIG API Machinery、SIG Apps、SIG Architecture、SIG Node] -
Azure Cloud Provider は
kubernetes.azure.com/managed=false
とalpha.service-controller.kubernetes.io/exclude-balancer=true
のラベルがついたアンマネジメントノード(オンプレ用途など)をサポートしました(#67984, @feiskyer) [SIG Azure、SIG Cloud Provider] -
SCTP は Pod、Service、Endpoint および NetworkPolicy で使われる TCP/UDP と共に追加プロトコル(アルファ)としてサポートされました(#64973, @janosi) [SIG API Machinery、SIG Apps、SIG Architecture、SIG CLI、SIG Cloud Provider、SIG Cluster Lifecycle、SIG Network、SIG Node、SIG Scheduling]
-
autoscaling/v2beta2 と custom_metrics/v1beta2 が導入され、Ojbect と Pod のメトリクスセレクターや、ターゲットとして AverageValue が指定できるようになりました(#64097, @damemi) [SIG API Machinery、SIG Architecture、SIG Autoscaling、SIG CLI、SIG Testing]
実際の指定方法はドキュメントの Horizontal Pod Autoscaler Walkthroughを参照 -
Feature Gate のアルファ機能で NodeLease が使用できるようになりました。kubelet は kube-node-lease ネームスペース上に Lease オブジェクトを作成し、定期的に更新します。リース期間はデフォルトは 40s で、kubelet.config.k8s.io/v1beta1.KubeletConfiguration の NodeLeaseDurationSeconds フィールドで変更できます。(#66257, @mtaufen) [SIG API Machinery、SIG Apps、SIG Architecture、 SIG Cluster Lifecycle、SIG Node、SIG Testing]
Lease とはノードのハートビートの表現するために作成されたリソースです。
最終的にハートビートは Lease が使用される予定です -
PodReadinessGate がデフォルトで有効になりました(#67406, @freehan) [SIG Node]
この機能が有効な場合、Pod の Readiness 条件をカスタマイズできるようになります -
Azure Cloud Provider は
kubernetes.azure.com/resource-group= <rg-name>
とalpha.service-controller.kubernetes.io/exclude-balancer=true
というラベルの付いたクロスリソースグループノードをサポートしました(#67604, @feiskyer) [SIG Azure、SIG Cloud Provider、SIG Storage] -
Admission Webhooks のアノテーションがサポートされました(#58679, @CaoShuFeng) [SIG API Machinery、SIG Auth]
-
スケジューラーは全てのノードをスコアリングせずに Pod をスケジュールできるようになりました。これにより大きなクラスターでスケジューラーのパフォーマンスが向上します。(#66733, @bsalamat) [SIG Scheduling]
デフォルトのスコアリングするノード数は 50% になっています。
ただし ソースコードに最低台数の設定値が 100 と定義されているため、100 未満のノード数の場合は今まで通り全てのノードをスコアリングします。 -
Azure のゾーンに分けられていない Managed Disks のノードアフィニティが追加されました(#67229, @feiskyer) [SIG Azure]
-
ローカルストレージのための Attacher/Detacher インタフェースをリファクタリングしました(#66884, @NickrenREN) [SIG Storage]
-
Azure Managed Disks の DynamicProvisioningScheduling と VolumeScheduling がサポートされました。この機能を使う場合は、Feature Gates の DynamicProvisioningScheduling と VolumeScheduling を有効にすべきです。(#67121, @feiskyer) [SIG Azure、SIG Storage]
-
audit.k8s.io API グループは v1beta1 から v1 に移行しました(#65891, @CaoShuFeng) [SIG API Machinery]
-
Quota Admission Configuration API は v1alpha1 から v1beta1 に移行しました(#66156, @vikaschoudhary16) [SIG Node、SIG Scheduling]
-
kube-apiserver --help フラグのヘルプがセクションで表示されるようになりました(#64517, @sttts)
出力例
Usage:
kube-apiserver [flags]
Generic flags:
--advertise-address ip
The IP address on which to advertise the apiserver to members of the cluster. This address must be reachable by the rest of the cluster. If blank, the --bind-address will be used. If --bind-address is unspecified, the host's default interface will be used.
--cors-allowed-origins strings
List of allowed origins for CORS, comma separated. An allowed origin can be a regular expression to support subdomain matching. If this list is empty CORS will not be enabled.
--external-hostname string
The hostname to use when generating externalized URLs for this master (e.g. Swagger API Docs).
...
Etcd flags:
--default-watch-cache-size int
Default watch cache size. If zero, watch cache will be disabled for resources that do not have a default watch size set. (default 100)
--delete-collection-workers int
Number of workers spawned for DeleteCollection call. These are used to speed up namespace cleanup. (default 1)
--deserialization-cache-size int
Number of deserialized json objects to cache in memory.
--enable-garbage-collector
Enables the generic garbage collector. MUST be synced with the corresponding flag of the kube-controller-manager. (default true)
...
- AzureDisk のストレージクラスのために Azure Managed Disk がアベイラブルゾーンをサポートし、新しいパラメータ `zoned`、 ` zone` および `zones` が追加されました([#66553](https://github.com/kubernetes/kubernetes/pull/66553), [@￰feiskyer](https://github.com/feiskyer)) [SIG Azure]
- kubectl create job コマンドが追加されました([#60316](https://github.com/kubernetes/kubernetes/pull/60316), [@￰soltysh](https://github.com/soltysh)) [SIG CLI]
:memo:
以下のようにコマンドから Job を作成することができます
`kubectl create job my-job --image=busybox`
- 証明書のブートストラップとローテーションを提供する Feature Gate の RotateKubeletServerCertificate がアルファからベータに移行しました([#66726](https://github.com/kubernetes/kubernetes/pull/66726), [@￰liggitt](https://github.com/liggitt)) [SIG Auth、SIG Node]
- アベイラブルゾーンを持つ Azure ノードには、`failure-domain.beta.kubernetes.io/zone=<region>-<zoneID>` のラベルが付与されるようになりました([#66242](https://github.com/kubernetes/kubernetes/pull/66242), [@￰feiskyer](https://github.com/feiskyer)) [SIG Azure]
- `kubeadm config print-default` コマンドで デフォルトのコンポーネント設定が確認できるようになりました([#66074](https://github.com/kubernetes/kubernetes/pull/66074), [@￰rosti](https://github.com/rosti)) [SIG Cluster Lifecycle]
- MountPropagation 機能が GA に昇格しました。これにより Featue Gate の MountPropagation は 非推奨となり、 v1.13 で削除される予定です。([#67255](https://github.com/kubernetes/kubernetes/pull/67255), [@￰bertinatto](https://github.com/bertinatto)) [SIG Apps、SIG Architecture、SIG Node、SIG Storage]
- Juju charms にUbuntu 18.04 (Bionic) シリーズが追加されました([#65644](https://github.com/kubernetes/kubernetes/pull/65644), [@￰tvansteenburgh](https://github.com/tvansteenburgh))
- kubeadm 設定に独自の API Endpoint を持つ複数のコントロールプレーンインスタンスを定義できるようになりました。ブートストラップのコントロールプレーンインスタンスの API Endpoint は、 `InitConfiguration.APIEndpoint` で定義し、追加するコントロールプレーンインスタンスの API Endpoint は、`JoinConfiguration.APIEndpoint` を使用して定義します。([#67832](https://github.com/kubernetes/kubernetes/pull/67832), [@￰fabriziopandini](https://github.com/fabriziopandini))
- `kubectl apply` コマンドに `--server-dry-run` フラグが追加されました。このフラグを使用すると、データ変更なしで結果を確認できます([#68069](https://github.com/kubernetes/kubernetes/pull/68069), [@￰apelisse](https://github.com/apelisse))
- CSI Plugin discovery のメカニズムを改善し、CSI Driver と Kubernetes が相互にカスタマイズできるようになる CSI Cluster Registration を導入しました([#67803](https://github.com/kubernetes/kubernetes/pull/67803), [@￰saad-ali](https://github.com/saad-ali))
- Pod 内で PID の名前空間の共有する PodShareProcessNamespace 機能がベータに昇格しました([#66507](https://github.com/kubernetes/kubernetes/pull/66507), [@￰verb](https://github.com/verb))