はじめに
このエントリは、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, @feiskyer) [SIG Azure] - kubectl create job コマンドが追加されました(#60316, @soltysh) [SIG CLI]
以下のようにコマンドから Job を作成することができます
kubectl create job my-job --image=busybox
- 証明書のブートストラップとローテーションを提供する Feature Gate の RotateKubeletServerCertificate がアルファからベータに移行しました(#66726, @liggitt) [SIG Auth、SIG Node]
- アベイラブルゾーンを持つ Azure ノードには、
failure-domain.beta.kubernetes.io/zone=<region>-<zoneID>
のラベルが付与されるようになりました(#66242, @feiskyer) [SIG Azure] -
kubeadm config print-default
コマンドで デフォルトのコンポーネント設定が確認できるようになりました(#66074, @rosti) [SIG Cluster Lifecycle] - MountPropagation 機能が GA に昇格しました。これにより Featue Gate の MountPropagation は 非推奨となり、 v1.13 で削除される予定です。(#67255, @bertinatto) [SIG Apps、SIG Architecture、SIG Node、SIG Storage]
- Juju charms にUbuntu 18.04 (Bionic) シリーズが追加されました(#65644, @tvansteenburgh)
- kubeadm 設定に独自の API Endpoint を持つ複数のコントロールプレーンインスタンスを定義できるようになりました。ブートストラップのコントロールプレーンインスタンスの API Endpoint は、
InitConfiguration.APIEndpoint
で定義し、追加するコントロールプレーンインスタンスの API Endpoint は、JoinConfiguration.APIEndpoint
を使用して定義します。(#67832, @fabriziopandini) -
kubectl apply
コマンドに--server-dry-run
フラグが追加されました。このフラグを使用すると、データ変更なしで結果を確認できます(#68069, @apelisse) - CSI Plugin discovery のメカニズムを改善し、CSI Driver と Kubernetes が相互にカスタマイズできるようになる CSI Cluster Registration を導入しました(#67803, @saad-ali)
- Pod 内で PID の名前空間の共有する PodShareProcessNamespace 機能がベータに昇格しました(#66507, @verb)