株式会社ユーザベースの技術チームブログです。kubernetesTweetこんにちは、SPEEDAのSREチームの阿南です。最近Kubernetes界隈が盛り上がっていますね。ここ一年で、各企業での利用事例やKubernetesを解説している書籍等もかなり増え、活用の仕方も徐々に確立されて来ているのではないでしょうか。Istioについては、色々できそうということはわかったんだけど、利用事例も少ないためどう使えばいいかわからない、本番運用しているという企業もまだあまり聞かないし導入に踏み切れない、という方も多いかと思います。弊社ではまだ2つのnamespaceのみですが、Istioで運用を開始しております。今回は、Istioで実現できることはなんとなく知っているが、内部の通信の仕組みやどのようなコンポーネントがあるのかを追っていきたいと思います。Deploymentを実現するための設定方法についても次回記事で触れていきます。この記事で扱うことIstioを構成するコンポーネントについてIstioの通信の流れIstioを構成するコンポーネントIstioのコンポーネントについては、IstioのDocumentationに下記の図が紹介されています。起動し、Podへのリクエストを中継しています。check(アクセスコントロールや流量の制御等)を担います。Citadelは証明書の管理を担当します。実際にIstioをデプロイしてみて確認してみます。デプロイの方法については省略しますが、コマンド一つで大量のPodが起動してきますので、一見面食らいますが、順に整理していきます。Injectする上記のコンポーネントでIstioの外からどのようにサービスのPodまでリクエストが到達しているのかを図で表現してみました。上図の番号順に処理内容を解説します。リクエストが来る前にEnvoyをサイドカーコンテナとしてInjectしておく。(0)ingress-gatewayへリクエストが到達。ここで、hostやpathベースで、どのサービスPodにリクエストをforwardするか決める。(1)istio-proxyへリクエストが到達。実際には、サービスPodへのリクエストをPreroutingしている。サービスコンテナが80番で稼働していた場合、80番に来たリクエストを15001(Envoyポート)に流す。(2)istio-proxyからistio-policyにアクセスし、Policyのチェックを実施。流量の制御(最大同時アクセス数100等)で条件にひっかかった場合は、サービスのコンテナに到達する前にその時点でリクエストが返される。(3)Policyでチェックを通ったリクエストがサービスコンテナに到達。(4)この辺りは、実際に通信の流れを理解するまでに時間がかかりました(今も勉強中です)。netstat等を取ってみると理解が進むと思います。istio-proxyにはデフォルトでこの辺りのコマンドがインストールされているので、スムーズに調査ができます。今回、実際に通信をみていった結果、想像以上に色々なことをしてるなという印象でした。PolicyチェックのためにMixerにアクセスしている点は結構重要で、istio-policyのPodがダウンするとサービスの通信もダウンしてしまいます。本番運用する際は、この辺りのConfigurationも注意して見ていきましょう。ちなみに、Istioは必要なコンポーネントに絞ってインストールが可能なので、最初はistio-policyなしで運用するのも十分ありだと思います。Meshに必要な概念や機能を勉強するには良いソフトウェアだと思いますので、皆さんもぜひ一度触れてみてください。Deploymentの方法をみていきます。掲げて業務に取り組んでいます。実現に向けて、日々邁進しています。11:03Istioを使いこなすために知っておくことTweet関連記事2019-08-05Istioでマイクロサービスのテスタビリティを向上させるSPEEDAの開発チームの石橋です。deploymentを実現するこんにちは、SPEEDAのSREチームの阿南です。「SRE大全:ユーザベース編」で話をしてきました。»プロフィール『経済情報で、世界を変える』をミッションに、企業・業界情報プラットフォーム「SPEEDA」やソーシャル経済ニュース「NewsPicks」、ABMを強力にサポートする「FORCAS」、スタートアップの情報収集を圧倒的効率化「entrepedia」などを提供する株式会社ユーザベースの技術チームブログです。多国通貨」をハンズオンしたら快適で楽しかったGo言語でオブジェクト指向プログラミングの基本(型編)月別アーカイブ検索@Uzabase_Techさんのツイートスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。