Kubernetes Blog "Kubernetes 1.11: In-Cluster Load Balancing and CoreDNS Plugin Graduate to General Availability"(2018年6月27日の投稿)に対する日本語での参考訳です。皆さまの理解の手助けとなるようにと公開しました。中盤の技術的な説明までの範囲で、最後は省略市営増す。参考程度にどうぞ。
Kubernetes 1.11: クラスタ内部負荷分散と CoreDNS プラグインが一般利用可能な段階に
2018 年で2回目のリリースにあたる kubernetes 1.11 のお届けに関する発表を嬉しく思います!
今日のリリースは Kubernetes の成熟度、拡張性(scalability:スケーラビリティ)、柔軟性(flexiblity:フレキシビリティ)を改善すべく、チームが1年以上にわたって厳しい仕事に取り組み続けたものであり、機能に対する著しい向上をもたらしました。新しいバージョンでは、主要な機能が次の段階へと移ります。ネットワーク機能(networking)に関しては SIG-API 機構(Machinery:マシーナリー)および SIG-Nodeベータ・テストという2つの主要機能、そしてストレージ機能の継続した拡張です。これらは過去2回のリリースで注力し続けている箇所です。今回のリリースで導入された諸機能により、クラウドでもオンプレミス(物理環境)でも、あらゆる基盤(インフラストラクチャ)に Kubernetes システムを組み込めるようになる可能性が、ますます高まります。
今回のリリースで特筆すべき事項には、非常に期待されていた2つの機能が一般利用可能(general availability)なレベルに進んだことが挙げられます。それは IPVS をベースとしたクラスタ内部負荷分散(IPVS-based In-Cluster Load Balancing)と、クラスタ DNS アドオン・オプションとしての CoreDNS です。どちらも本番向けアプリケーションに対する拡張性と柔軟性を高めるのを意味します。
それでは、今回のリリースにおける重要な機能を深掘りしましょう。
IPVS をベースとしたクラスタ内部負荷分散が一般利用可能な段階に
今回のリリースでは、 IPVSをベースとしたクラスタ内部負荷分散 が安定版(stable)となりました。IPVS(IP 仮想サーバ:IP Virtual Server)は高性能なカーネル内蔵の負荷分散を提供し、iptables よりもシンプルなプログラミング・インターフェースを提供します。この変更が Kubernetes のサービス・モデルの構成にもたらすのは、よりネットワーク処理能力(スループット)を改善し、プログラミング待ち時間(レイテンシ)を改善し、クラスタ全体にわたる分散負荷分散(ロード・バランサー)向けに拡張性の限界を高めます。IPVS はまだデフォルトではありませんが、クラスタは本番向けのトラフィックも扱い始められます。
CoreDNS が一般利用可能(General Availability)に昇格
CoreDNS がクラスタ DNS アドオン・オプションとして利用可能になりました。また、kubeadm の利用時はこちらがデフォルトになります。CoreDNS は柔軟性があり、拡張性のある信頼できる(権威がある) DNS サーバであり、Kubernetes API と直接統合されています。CoreDNS は従来の DNS サーバよりお少ないパーツで稼働するため、実行ファイルは1つであり、1つのプロセスであり、カスタム DNS エントリの作成など柔軟な利用に対応しています。また、Go 言語で書かれているため、メモリ・セーフです(訳者注:memory-safeは、メモリ上の攻撃や脆弱性に対して守られた状態のこと)。CoreDNS の詳細は こちら から学べます。
動的な Kubelet 設定(Dynamic Kubelet Configuratoin)がベータに移行
これは Kubelet の設定を、稼働しているクラスタ内への展開(ロールアウト:roll out)を可能にする機能です。Kubelet はコマンドラインのフラグを通して設定されるものです。しかし、稼働しているクラスタ内で Kubelet の設定を更新するのは大変でした。近いうちに、複数の自動転換(automatic conversions)をサポートするように拡張するつもりです。これはカスタム・リソースの作成者が「v1beta1 から v1 へ安全に変更する」ようなプロモートを可能とする機能です。そして、リソースに対して変更を加えるために、移行用のパスを作成します。
カスタム・リソース定義(Custom Resource Definition)は、監視と高可用性フレームワークと統合した "status"と"scale"サブリソース もサポートしました。この2つの変更は、カスタム・リソース定義を用いて、クラウド・ネイティブ・アプリケーションを本番環境でも実行可能な状態へと促すものです。
CSI の拡張
コンテナ・ストレージ・インターフェース(CSI:Container Storage Interface)は直近の数リリースにわたり主要なトピックです。 1.10 でベータに 移行後も、1.11 リリースで数々の機能と共に CSI の拡張が続いています。1.11 リリースでは CSI に対する raw ブロック・ボリュームのアルファ・サポートを追加しました。これは CSI と統合し、新しい kuberlet プラグイン登録メカニズムによって、CSI プラグインに対してシークレット(機密情報)を渡すのが簡単になりました。
新しいストレージ機能
Persistent Volume のオンライン容量変更(online resizing:オンライン・リサイジング) のサポートがアルファ機能として導入されました。これによりユーザは PV の容量変更を、Pod の停止やボリュームを真っ先にアンマウントしなくても行えるようにします。ユーザは PVC に対する新しい容量のリクエストを更新でき、kubelet は PVC 用のファイルシステム容量を変更します。
動的な最大ボリューム・マウント(dynamic maximum volume count) のサポートがアルファ機能として導入されました。この新機能は in-tree ボリューム・プラグインでボリューム最大数の指定を可能にします。これにより、ノードに適用できるだけでなく、ノードの種類に応じて様々な制限を設けられるようにします。以前まで、これらの制限はハード・コードするか環境変数を経由して設定しました。
StorageObjectInUseProtection 機能は安定版(stable)となり、 永続的ボリューム(Persistent Volume) の Persistent Volume Claim と Persistent Volume Claims が Pod で使われていれば、どちらも削除を防止します。この安全装置(セーフガード)は実行中の Pod と密接に結びつく PV や PVC の削除を防ぐのに役立ちます。
コミュニティの各分科会(SIG)では、それぞれの専門領域において、最もリクエストのあった拡張、修正、機能性への対応を継続しています。SIG によって導入されたすべての一覧は リリースノート をご覧ください。
入手するには
Kubernetes 1.11 は GitHub 上でダウンロード できます。Kubernetes を始めるには 双方向チュートリアル をご確認ください。
また、Kubeadm を使って 1.11 をインストールできます。Deb と RPM パッケージがバージョン 1.11.0 で間もなく利用可能になりますし、 [Kubeadm cluster installer] を使ったインストールも7月28日までに利用可能となります。
4日にわたる機能ブログ・シリーズ
もしもこれら機能の詳細な調査に興味があれば、2週間後に 4 Days of Kubernetes シリーズを再確認してください。ここでは各機能のハイライト(目玉)を見渡すための詳細を扱います:
- Day 1: IPVS をベースとするクラスタ内の負荷分散が一般利用可能に昇格
- Day 2: CoreDNS が一般利用可能に昇格
- Day 3: 動的な Kubelet 設定がベータに移行
- Day 4: Kubernetes が使う一貫性ボリュームの容量変更
リリース・チーム
今回のリリースに至ったのは、技術的および技術的な文脈の両方における、一千人もの個人の努力によってなし得ました。特に Red Hat の Kubernetes コミュニティ・マネージャである Josh Berkus 率いる リリース・チーム に深く感謝します。リリースチームの 20 人は、ドキュメント化からテスト、確認、機能の完全性チェックに至るまで、リリースに関する様々な面で調整を行いました。
Kubernetes コミュニティは成長しています。私たちのリリース過程は、オープンソースのソフトウェア開発における、驚くべき共同作業を証明するものです。Kubernetes は新しいユーザを急速に取り込み続けています。この成長がもたらすのは、貢献者によるコードへのコミットが、より活力を生むエコシステムになるという、ポジティブなフィードバック・サイクルです。Kubernetes は今日まで 20,000 を越える個人の貢献者がいますし、アクティブなコミュニティの人々は 40,000 人を超えます。
プロジェクトの勢い
CNCF は DevStats という意欲的なプロジェクトの洗練を継続しています。これをプロジェクトに導入し、無数の貢献を可視化するものです。 K8s DevStats が図示するのは、主要な会社による貢献を深掘りします。
(以下省略)
原文
- Kubernetes 1.11: In-Cluster Load Balancing and CoreDNS Plugin Graduate to General Availability - Kubernetes