istiodのご紹介:コントロールプレーンの簡素化

Istiodは、Istioコントロールプレーンのコンポーネントを単一のバイナリに統合します。

2020年3月19日 | Craig Box - Google

マイクロサービスは、サービスを異なるチームにマッピングする場合、または独立したロールアウトとスケーリングの価値がオーケストレーションのコストを上回る場合に最適なパターンです。私たちはIstioを現実世界で運用している顧客やチームと定期的に話し合っていますが、Istioコントロールプレーンではこれらのいずれも当てはまらないことがわかりました。そのため、Istio 1.5ではIstioのパッケージング方法を変更し、コントロールプレーンの機能をistiodという単一のバイナリに統合しました。

Istioコントロールプレーンの歴史

Istioは、GoogleとIBMの両方で長年使用されてきたパターンを実装しており、後に「サービスメッシュ」として知られるようになりました。クライアントプロセスとサーバープロセスをプロキシサーバーとペアリングすることにより、単にホスト間のパケットを移動したり、ワイヤ上のパルスを送信するだけでなく、アプリケーションを認識するデータプレーンとして機能します。

このパターンは、マイクロサービス(粒度の細かい、疎結合のサービスで、軽量プロトコルを介して接続)を理解するのに役立ちます。独自のトランスポートに代わるHTTPやgRPCのような共通のクロスプラットフォームおよびクロス言語標準、および必要なライブラリの広範な存在により、異なるチームが全体アーキテクチャの異なる部分を、最も意味のある言語で記述できます。さらに、各サービスは必要に応じて個別にスケーリングできます。このようなネットワークに対するセキュリティ、可観測性、トラフィック制御を実装したいという願望が、Istioの人気を高めています。

Istioのコントロールプレーンは、それ自体が最新のクラウドネイティブアプリケーションです。そのため、最初からマイクロサービスのセットとして構築されました。サービスディスカバリ(Pilot)、コンフィグレーション(Galley)、証明書生成(Citadel)、拡張性(Mixer)などの個々のIstioコンポーネントはすべて、個別のマイクロサービスとして記述およびデプロイされました。これらのコンポーネントが安全に通信し、可観測性を持つ必要があるため、Istioは自らの成果を活用する機会(比喩的に言えば、「自分のシャンパンを飲む」)を得ました。

複雑さのコスト

優秀なチームは、自身の選択を振り返り、事後的にそれを見直します。一般的に、チームがマイクロサービスとその固有の複雑さを採用すると、トレードオフを正当化するために他の領域の改善を探します。そのレンズを通してIstioコントロールプレーンを見てみましょう。

統合のメリット:istiodのご紹介

マイクロサービスの一般的なメリットの多くがIstioコントロールプレーンに適用されないことを確立したので、それらを単一のバイナリ:istiod('d'はデーモンを表します)に統合することにしました。

新しいパッケージングのメリットを見てみましょう

istiodは、Pilot、Galley、Citadel、およびサイドカーインジェクターが以前実行していた機能を単一のバイナリに統合します。

個別のコンポーネントであるistio-agentは、構成とシークレットをEnvoyプロキシに安全に渡すことで、各サイドカーがメッシュに接続するのに役立ちます。厳密に言えばエージェントはコントロールプレーンの一部ですが、Podごとに実行されます。DaemonSetとして実行されていたノードごとの機能を、そのPodごとのエージェントに統合することで、さらに簡素化しました。

上級者向け情報

Istioコンポーネントを個別に実行したり、特定のコンポーネントを置き換えたい場合もあります。

メッシュ外部の認証局(CA)を使用したいユーザーもいるため、その方法に関するドキュメントを用意しています。別のツールを使用して証明書の調達を行う場合、組み込みのCAの代わりにそれを使用できます。

今後の展望

本質的に、istiodはパッケージングと最適化の変更に過ぎません。これは、個別のコンポーネントと同じコードとAPI契約に基づいて構築されており、包括的なテストスイートによってカバーされています。これにより、Istio 1.5でデフォルトにすることに自信を持っています。サービスは現在istiodと呼ばれています。アップグレードプロセスが完了すると、既存のプロキシにはistio-pilotが表示されます。

istiodへの移行は大きな変更のように見えるかもしれませんが、メッシュを管理および維持する人々にとって大きな改善であり、Istioを使用する際の日常生活には影響を与えません。istiodは、メッシュを構成するために使用されるAPIを一切変更していないため、既存のプロセスはすべてそのままです。

この変更は、すべてのワークロードとアーキテクチャにおいてマイクロサービスが間違いであることを意味するのでしょうか?もちろん違います。マイクロサービスはツールベルト内のツールであり、組織の現実を反映している場合に最も効果を発揮します。代わりに、この変更は、ユーザーからのフィードバックに基づいて変更する意思を示しており、すべてのユーザーにとっての簡素化に継続的に焦点を当てています。マイクロサービスは適切なサイズでなければならず、Istioにとって適切なサイズを見つけたと考えています。

この記事を共有する