LoginSignup
17
10

More than 5 years have passed since last update.

Kubernetes1.9 Major Themes

Last updated at Posted at 2018-01-16

このエントリは、Kubernetes v1.9 CHANGELOG からMajor Themes をまとめています。その他の項目は下記リンク先を参照してください。

Major Themes

Kubernetsの開発はSIG(Special Interest Groups)の単位で組織化されて行われており、それぞれのテーマのもとに取り組んでいます。

API Machinery

「拡張性」SIG API Machineryでは、admission control webhookに新しくMutatingAdmissionWebhookを追加しました。そして、admission controll webhookはベータになりました。

メモ:MutatingAdmissionWebhook

必要に応じてリクエストを変更するようなadmission control。この機能はベータで、デフォルトで有効化されています。この機能を無効にするには、apiserver --runtime-configで admissionregistration/v1beta1MutatingWebhookConfiguration を無効に設定してください。

Apps

"core workloads API"である DaemonSet,Deployment,ReplicaSet,StatefulSetがGAになりapps/v1となりました。apps/v1beta2は廃止予定になるので、apps/v1を使うようにしてください。

Auth

認証機能の拡張周り改善
cluster role aggrigationを使ってビルトインのRBACである admin/edit/viewの権限を追加することができます。
Webhook authorizerを使うことで、短絡評価の認可を実現できます。ベータ版のPodSecurityPolicyのパフォーマンス、使い勝手を向上させました。

メモ PodSecurityPolicy周りの変更

  • 利用可能なFlexVolumeの指定ができるようになった https://github.com/kubernetes/kubernetes/pull/53179
  • 利用可能なPolicyを探してからValideateするのをやめ、Valideteを先に実施し、通ったものの中からそのユーザが利用可能なPolicyを絞り込む方式に変更。これによりパフォーマンスが向上した。 https://github.com/kubernetes/kubernetes/pull/55643
    • 利用可能なPSPを探すためには全てのRoleBindings -> Roleをたどる必要があり遅い
  • PSPが複数適合する場合にはデフォルティングによる変更が発生しないものを優先するようにした。デフォルティングが発生するものが複数ある場合は名前順となる。 https://github.com/kubernetes/kubernetes/pull/52849

AWS

EBSの安定性を向上させました。ボリュームのアタッチ状態が長く続いたら、unschedulableのtaintがnodeに適用され、管理者が手動でこの問題に対応できます。利用者はtaintを監視し、そのような状況のインスタンスを自動的に停止することを検討すべきです。
加えて、NVMeディスクのサポートを追加、type=LoadBalancerのバックエンドがELB(alpha)に替わりNLBとなりました。

memo:ELBはL7のロードバランサのようで、type=LoadBalancerの目的としてはNLBの方が良いということなのだろう。

Azure

Azule Load Balancerの実装など、cloud providerの改善に取り組みました。

Cluster Lifecycle

来たるべくGAのためにkubeadmを改善し、Cluster APIの開発にも取り組みました。
kubeadmに関しては、CoreDNSのサポート、IPv6、動的なKubeletの設定などの機能をalpha版として実装しました。これらの機能は次のリリースでbetaにしたいと考えています。
Cluster APIに関してはGCE向けのサンプル実装を行い、2018年中には安定化させ、本番運用で使えるようにしたいです。

メモ Cluster API

KubernetesのようなAPIでクラスタの作成、変更、管理ができるようにすることを目的としている。GCPで動作するプロトタイプが提供されている。

メモ 動的なKubeletの設定

Kubeletの設定をConfigMapで起動中に変更できるようにする。変更することによりクラスタが壊れる危険性があることに注意して操作する必要がある。
この機能はアルファ版でfeature gate "DynamicKubeletConfig"を有効にし、kubelet --dynamic-config-dirを設定することにより利用できる。

Instrumentation

Heapster, PrometheusとStackdriverのためのCustom Metrics APIアダプタなどの安定性向上に注力しました。

メモ:もう少し詳しい変更内容

Network

IPv6のアルファサポート、kube-dnsの代替としてCoreDNSのアルファサポートを実装しました。
加えて、 NetworkPolicy APIをnetworking.k8s.io/v1 とし、 extensions/v1beta1は廃止予定としました。

Node

良いパフォーマンス、より高い信頼性で、より多くのワークロードをサポートするために尽力しました。ハードウェアアクセラレータ、デバイスプラグインの有効化、CPUのピニングポリシーなどののアルファ版の機能を改善し、将来のリリースでこれらの機能をベータ版にしようとしています。加えてnode全体での信頼性とパフォーマンスの強化を行いました。

OpenStack

より良いデフォルト値の設定や、自動判別の仕組みを用いた設定の簡略化を行いました。
加えて、下記のバージョンに対応しました。

  • BlockStorage(Cinder) V3 をサポートしました。
  • Load Balancer(Octavia) V2 をサポートしました。(Neutron LBaaS V2に加えて)
  • Neutron LBaas V1 はサポート終了

これにより、OpenStackのI/Fを持つクラウド環境を最大限、活用することができます。

Storage

Container Storage Interface(CSI)のアルファ版を実装し、Kubernetesをよりプラガブルにしました。CSIを使うとpodをデプロイするくらい簡単に新しいボリュームプラグインを導入することができ、サードパーティのストレージ提供者はKubernetesのコードベースに触れることなくプラグインを開発することができるようになります。

また、コンテナにブロックデバイスとしてボリュームを晒す機能や、アルファ機能であるボリュームのリサイズをサポートするプラグインを増やしたり、トポロジを意識したボリュームのスケジューリングの機能を追加しました。

Windows

KubernetesとWindows platformの機能の改善を続けつつ、Windows ServerとWindows Server Containers のベータサポートを進めています。
これによりWindows特有のアプリケーションやワークロードをKubernetesで実行することができます。

17
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
10