はじめに
このエントリは、Kubernetes 1.11 の CHANGELOG から 主な変更点 (Major Themes) の Part.1 で触れられていなかった部分についてまとめています。翻訳に合わせて補足を追記しています。その他の内容は次のリンク先を参照してください。
- Kubernetes 1.11: 主な変更点 (Major Themes) Part.1
- Kubernetes 1.11: 主な変更点 (Major Themes) Part.2
- Kubernetes 1.11: Urgent Upgrade Notes と 既知の問題 (Known Issues)
- Kubernetes 1.11: Before Upgrading
- Kubernetes 1.11: 廃止予定の機能 (Deprecations) と 新機能 (New alpha features)
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)
- パブリックインターネットへの接続が無いユーザのための使いやすさが改善されました。
**Note**
- Docker 以外の CRI ランタイムを利用しているユーザのための使いやすさが改善されました。(#64836, @chuckha)
**Note**
-
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)、本リリースでベータとなりました。
Note
コンテナが出力する Kubernetes のノードにおけるログをどう取り扱うかについては、Evaluation of container logging solutions にてドキュメント化 (注1) されており、それによるとログのローテションは kubelet がその責務を負うこととなっているようです。
コンテナランタイムに依存しない、運用者のための、プロダクション環境でのノードのデバッグや調査に利用できる一貫したツールを提供するための cri-tools
プロジェクトが GA となりました。
プラットフォームに依存するものとしては、SIG Windows によって Windows サポートの改善とリソースマネージメントの改善がなされました。また、特に、Linux における sysctl
のサポートがベータになりました。
Note
sysctl
サポートについては公式ドキュメントの 「Using sysctls in a Kubernetes Cluster」にあります。これまでは、カーネルパラメータを変更しなければならないアプリケーションなどでは initContainers で初期化処理を行ったりする必要 がありましたが、これからはsecurityContext
の設定で済むようになります。initContainers
で設定したカーネルパラメータなどはノードの再起動時に再度実行されなかったりして設定が消えてしまうなど問題があったのですが、これで解消されると嬉しい。
SIG OpenStack
SIG OpenStack は広範囲なシナリオとユースケースをカバーする11の受け入れテストなど、テスト環境を構築中です。1.11 リリースサイクルでは、この環境からの テストグリッド へのレポートは、OpenStack Cloud Provider を Kubernetes リリースの gating job へと認定しました。
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)
Note #64154
詳しい説明は公式ドキュメントの 「Dynamic volume limits」に書かれているが、簡単にいうと、今まで固定値しか取ることのできなかった、ボリュームのノードへの接続数を、ノードタイプやストレージタイプごとに設定可能とする機能。より詳しい仕様は、現在レビュー中のドキュメントを参照のこと。
Note #49388
Downward API による環境変数が Subpath volume のディレクトリ名として使えるようになったため、例えば以下のような指定ができるようになりました。
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 ごとにディレクトリを分けたい、などのユースケースで利用できます。
-
ドキュメントにアクセスするためには、Google Groups の kubernetes-dev に参加する必要があります。 ↩