promethus本記事どうやらKubernetesクラスタへのHTTPリクエストのレスポンスタイムがスパイクするということで引き続き原因を探っています。以前の記事で同じくサービスメッシュを構築できるLinkerdというものを検証してみました。その記事が以下のものとなります。www.1915keke.comしかしながら、いま勢いがあるのはIstioです。今回はLinkerdの良し悪しも評価することを含めてIstioを導入しようと思います。IstioについてIstioとはアーキテクチャ以下のようなアーキテクチャになっています。大まかな機能を説明します。サービスディスカバリと高度なトラフィックマネジメント(A/Bテスト、カナリアデプロイなど)を提供する。Proxyを使ってSidecarとしてデプロイをしている。プラットフォームに依存するもの。アクセスコントロールやサービスメッシュに渡る制御をしたり、それぞれのEnvoyやサービスからテレメトリーを収集する。サービス間とエンドユーザー認証を行う。Planeをデプロイしていきます。以下のようにデプロイします。-fGrafanaでIstio自体を監視したい人は以下のオプションをつけてください。grafana.storageClassName=standard確認すると正しくデプロイができています。Planeを作るには、以下のようにSidecarをデプロイしていきます。-ここでsamples...は例です。特定のnamespaceにできるPodにEnvoyを自動的に挿入することも可能です。その場合は以下のラベルを名前空間につけます。applyをするマニフェストファイルにこれを入れるだけで十分です。確認すると以下のようにContainer数が2になっていました。14s以上でインストールは終わりになります。TaskTraffic管理ここはA/Bテストやカナリアデプロイなど、トラフィックに関することを行う。項目が多いため、別途使うときになれば記事にしようと思います。セキュリティ私はセキュリティには詳しくないため割愛します。Policiesこれはポリシーという制限をかけるものである。Limitsどのくらいのトラフィックがくるかを制御できるものである。ブラック・ホワイトリストNginxやSELinuxを使った人がある人ならわかるかもしれません。ブラックリストとは全アクセスを許容する中で特定のIPアドレスは例外で受け付けない様にするIPのリストです。Telemetrics分散トレーシングCNCFプロジェクトであるJaegerを使っています。tracing.enabled=trueを指定することで設定できます。記事の内容からそれるので、Jaegerそのものについては説明はしません。マイクロサービスは複数のサービスで構成されているのでサービスを跨いで(分散して)処理したリクエストもトレースできるのが分散トレース。以下のようになります。www.jaegertracing.io以下のようにしてポート転送をします。&すると以下の様な画面が出ます。GrafanaでIstioの監視Grafanaを開くと一部だか、以下のようなダッシュボードがある。Dashboard以上のようなものがありIstio自体の監視をすることができます。それ以外にもGrafanaはIstio本体だけではなくて、サービスメッシュも確認することができます。ServiceMeshが出ていません、解決次第、修正します。これはLinkerdのOverviewとよく似ています。サービスグラフによる可視化これによってIstioメッシュのサービスのグラフを作成することができる。以下のようにしてポート転送をします。&ここでhttp://localhost:8088/force/forcegraph.htmlにアクセスしてください。このようにサービス間と元のデプロイメントにpolicyとtelemetryが接続されていることがわかります。クリーンアップIstioのアンインストール以下のようにするとistioをアンインストールすることができます。istioaddons先ほどもgrafanaを追加したように、デフォルトではインストールされないものがあります。これはこのリストから選ぶことができます。[CONDITON]=[BOOL]で渡すことによって有効化や無効化ができます。まとめIstioは圧倒的にできることが多いので、学習コストが高いように感じた。レイテンシなどを調査したいときに使うべきはLinkerdだなと感じた。addonがBeta版になっています。--istio-config=auth=MTLS_STRICTのようにするとaddonを導入することができます。カオスだった平成最後の日に。私は、いくつか家内サービスを運用しています。Kubernetesのいろは。»プロフィール学生エンジニア。忘れてしまうので備忘録です。flaskでServerlessにホストするTelepresence概論スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。