Edited at

Kubernetes 1.11: 主な変更点 (Major Themes) Part.2

More than 1 year has passed since last update.


はじめに

このエントリは、Kubernetes 1.11 の CHANGELOG から 主な変更点 (Major Themes) の Part.1 で触れられていなかった部分についてまとめています。翻訳に合わせて補足を追記しています。その他の内容は次のリンク先を参照してください。


Kubernetes 1.11 Major Themes


SIG Cluster Lifecycle

SIG Cluster Lifecycle は kubeadm の設定ファイルのメンテナンスに関連した新しいコマンドを含む kubeadm の使いやすさの改善にフォーカスしました。それに伴い API バージョンは v1alpha2 となりました。これらのコマンドは新しいバージョンの設定への移行や設定のデフォルト値の表示 (#63969, @luxas)、クラスターのブートストラップ時に必要なコンテナイメージの一覧と取得を取り扱います (#63833, @chuckha)(#63450, @chuckha)。

その他の注目すべき変更は以下の通りです。


  • CoreDNS が kube-dns に代わりデフォルトの DNS プロバイダとなりました。(#63509, @detiber)

  • パブリックインターネットへの接続が無いユーザのための使いやすさが改善されました。


    :pencil: Note
    ブートストラップ時に必要なコンテナイメージの一覧を kubeadm config images list で知ることができます。


  • Docker 以外の CRI ランタイムを利用しているユーザのための使いやすさが改善されました。(#64836, @chuckha)


    :pencil: Note
    kubeadmrpmdeb パッケージに cri-tools が含まれるようになりました。


  • kubeadm による systemd の drop-in ファイルの修正を避けるために、kubelet の structured configuration をサポートしました。

  • アップグレード時のプロセスに関するたくさんの改善とバグフィックス。


SIG Network

SIG Network の今リリースにおける主なマイルストーンは、IPVS-based ロードバランシングと CoreDNS が GA になったことです。

IPVS は in-cluster ロードバランシングにおける iptables を利用した以前の方法とは異なる、カーネル内のハッシュテーブルを利用した方法です。また、CoreDNS はサービスディスカバリにおける kube-dns の後任です。


SIG Node

SIG Node はいくつかの機能とキートピックにおける段階的な改善を行いました。

ノードオブジェクトの管理を簡易化する Dynamic kubelet config がベータになり、デフォルトで有効化されます。また CRI で動くように設定されている Kubelet はログローテーション機能が利用できるようになり(#58823, @yujuhong)、本リリースでベータとなりました。


:pencil: Note

コンテナが出力する Kubernetes のノードにおけるログをどう取り扱うかについては、Evaluation of container logging solutions にてドキュメント化 (注1) されており、それによるとログのローテションは kubelet がその責務を負うこととなっているようです。


コンテナランタイムに依存しない、運用者のための、プロダクション環境でのノードのデバッグや調査に利用できる一貫したツールを提供するための cri-tools プロジェクトが GA となりました。

プラットフォームに依存するものとしては、SIG Windows によって Windows サポートの改善とリソースマネージメントの改善がなされました。また、特に、Linux における sysctl のサポートがベータになりました。


:pencil: Note

sysctl サポートについては公式ドキュメントの 「Using sysctls in a Kubernetes Cluster」にあります。これまでは、カーネルパラメータを変更しなければならないアプリケーションなどでは initContainers で初期化処理を行ったりする必要 がありましたが、これからは securityContext の設定で済むようになります。initContainers で設定したカーネルパラメータなどはノードの再起動時に再度実行されなかったりして設定が消えてしまうなど問題があったのですが、これで解消されると嬉しい。



SIG OpenStack

SIG OpenStack は広範囲なシナリオとユースケースをカバーする11の受け入れテストなど、テスト環境を構築中です。1.11 リリースサイクルでは、この環境からの テストグリッド へのレポートは、OpenStack Cloud Provider を Kubernetes リリースの gating job へと認定しました。


:pencil: Note

sig-release-1.11-blocking に Conformance OpenStack テストが含まれたことを指すと思われるが、なぜか 1.10 時点で既に含まれているように見える…。


新しい機能としては、Keystone と Kubernetes RBAC の改善された統合および、OpenStack Cloud Provider 全体のコードベースにまたがる安定性や互換性の改善が含まれます。


SIG Storage

SIG Storage は前のバージョンにおいて導入した二つの機能をそれぞれ GA/ベータ に昇格させました。また、新しく三つの機能をアルファとして導入しました。

Pod が PV をまだ利用している際の PVC の削除や、PVC にまだ結びついている PV の削除を防ぐための StorageProtection 機能が GA となりました。そして Pod の再起動後にボリュームサイズを増やすことを可能にする volume resizing がベータとなりデフォルトで有効化されます。

アルファ機能として導入された三つの機能は以下の通りです。


  • Pod の再起動を伴わないボリュームのオンラインリサイズ機能。

  • AWS EBS と GCE PD ボリュームがノードにおける接続されたボリュームの最大数の上限を増やすことが可能になりました。(#64154, @gnufied)

  • Subpath volume のディレクトリが Downward API による環境変数で作成することが可能になりました。(#49388, @kevtaylor)


:pencil: Note #64154

詳しい説明は公式ドキュメントの 「Dynamic volume limits」に書かれているが、簡単にいうと、今まで固定値しか取ることのできなかった、ボリュームのノードへの接続数を、ノードタイプやストレージタイプごとに設定可能とする機能。より詳しい仕様は、現在レビュー中のドキュメントを参照のこと。

:pencil: Note #49388

Downward API による環境変数が Subpath volume のディレクトリ名として使えるようになったため、例えば以下のような指定ができるようになりました。



subpath-volume.yaml

        env:

- name: NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
volumeMounts:
- mountPath: /var/log/mysql
name: logs
subPath: $(NAME)
volumes:
- name: logs
hostPath:
path: /mnt/log-repo


例えば NFS などの共有ファイルシステムを利用している際に Pod ごとにディレクトリを分けたい、などのユースケースで利用できます。






  1. ドキュメントにアクセスするためには、Google Groups の kubernetes-dev に参加する必要があります。