はじめに
このエントリは、Kubernetes 1.15 の CHANGELOG からWhat's new!と、各変更点についてまとめたページをまとめています。
詳細については各まとめページを参照してください。
変更点の詳細
- Known Issues, Urgent Upgrade Notes @shmurata
- Deprecations and Removals, API Changes @tkusumi
- SIG API Machinery @Ladicle
- SIG Apps @inajob
- SIG CLI @superbrothers
- SIG Instrumentation @watawuwu
- SIG Network @summerwind
- SIG Node @uesyn
- SIG Scheduling @kkohtaka
- SIG Storage @ysakashita
- SIG Auth @hiyosi
- SIG Cluster Lifecycle @yuanying
- SIG Cloud Provider @hatotaka
What's new!
Kubernetes 1.15は25の機能向上を含みます
- 2の機能がstableへ
- 13の機能がbetaへ
- 10の機能がalphaとなりました。
このリリースの主なテーマは以下の通りです。
継続的改善(Continuous Improvement)
- プロジェクトの持続可能性は機能だけではありません。多くのSIGがテストカバレッジの向上、基本の信頼性の維持、コア機能セットの安定性の確保、既存機能の成熟化およびバックログの整理に取り組んでいます。
拡張性
- コミュニティは拡張性の継続的なサポートを求めているので、v1.15ではCRDとAPI Machinery周辺の作業にフォーカスしています。このリリースの機能追加の大部分は、SIG API Machineryおよび関連分野のものです。
Extensibility around core Kubernetes APIs
CustomResourceDefinitions Pruning
Pruningとはデータの一貫性とセキュリティを強制するために、kubernetesはAPIに対して送られてきたオブジェクトのフィールドの"unknown"なフィールドを自動的に削除する機能です。この仕組みはすでにネイティブリソースは対応しています。これはv1.15ではalphaからbetaに昇格しました。"unknown"かどうかは、OpenAPI validation schemaによって判定されます(トップレベル or バージョンごとの設定が必須)
PruningはCustomResourceDefinitionへ設定することで有効化されます。GA時にはデフォルトで有効化されます。
CustomResourceDefinition Defaulting
CustomResourceDefinitionsは、デフォルティングをサポートしました。OpenAPI validation schemaの default
キーワードを使って指定できます。
CustomResourceDefinition OpenAPI Publishing
kubernetesのネイティブリソースのOpenAPI Specは/openapi/v2
で長い間提供されており、kubectlのclient-side validationやkubectl explain、client generatorによって利用されます。
Kubernetes 1.15を使うとbeta機能として、CRDのOpenAPI shemeも公開されます(CRDが構造的である限り)。
Cluster Lifecycle Stability and Usability Improvements
Kubernetesのインストール、アップグレードと設定を、より安定したものにすることが、この 1.15 リリースサイクルにおける SIG Cluster Lifecycle における一番の目標でした。(2019/05/06 のコミュニティアップデートをみてください。) ベアメタルにおけるツールの提供とプロダクションレディなユーザストーリーにおけるバグの修正、例えば高可用性といったユースケースは 1.15 において優先度が与えられました。
Cluster Lifecycle のビルディングブロックの一つである kubeadm はプロダクションクラスタのブートストラップを効率化する機能や安定性に必要となるコミュニティからの働きを受け続けています。kubeadm は 高可用性 (HA) のサポートをベータに昇格しました。これらはユーザが親しんでいる kubeadm init
や kubeadm join
を使って HA コントロールプレーンを設定してデプロイすることを可能にします。新しくテストスイートはこれらの機能が長期に渡って安定することを保証するために作られました。
証明書の管理は 1.15 でより安定しました。kubeadm はシームレスに証明書を期限前にローテートします。kubeadmのドキュメントで、どのように証明書を管理しているのかチェックしてください。
1.15 では kubeadm の設定 API が v1beta1 から v1beta2 になりました。
これらの変更は以下の Kubernetes の改良を反映したものです。
Continued improvement of CSI
Kubernetes v1.15において、SIG Storageは in-tree volume pluginsをContainer Storage Interface(CSI)への移行作業を継続しました。
SIG Storageはリサイジング、inline volumeなどの機能をCSIへ取り込みました。さらに、Kubernetesのstorage機能で存在していないvolume cloningのような新しいaplha機能をCSIに導入しました。
Volume cloningでは新しいボリュームのプロビジョニングを行うときに、別のPVCを"DataSource"として指定することができます。これにより、ストレージ装置が、ボリュームのクローニングをサポートし、CSIドライバで"CLONE_VOLUME"機能を実装している場合、新しいボリュームはソースボリュームのクローンになります。
これらの変更は、以下のKubernetesの機能に関連しています。
(#625)
Additional Notable Feature Updates
- kubernetes coreでgo moduleをサポートしました
- Cloud Providerの抽出とコード編成のための継続的な準備。後で簡単に削除、外部からの利用をしやすくするためにCloud Provicerのコードは
kubernetes/legacy-cloud-providers
へ移動しました。 - kubectl get and describe はextensionで動作するようになった
- ノードは third party monitoring pluginsをサポートするようになった
- スケジュールプラグインの新しいScheduling FrameworkはAlphaになりました
- ExecutionHook APIがAlphaになりました
- 引き続きextensions/v1beta1, apps/v1beta1, apps/v1beta2の非推奨であり、これらはv1.16で削除されます