クベルネッツサービスメッシュ


Kubernetesでは、アプリケーションは互いに通信する必要があります.これはバックエンドのアプリからの情報を送信する必要がありますバックエンドのアプリやウェブサイトのようなフロントエンドのアプリを要求するようにバックエンドAPIに情報を送信する必要があります.
また、アプリケーションコミュニケーションはKubernetesの外で重要です.これは、セルのないアーキテクチャやクラウド仮想マシンアーキテクチャで実行しているプリムアプリケーションや雲のネイティブアプリケーションのためにすることができます.サービスメッシュは何も新しいものではないが、それはKubernetes内の重要な統合です.
このブログ記事では、サービスメッシュがどのようなものか、なぜ重要なのかを学びます.

サービスメッシュ破壊


Kubernetesの内外のサービスメッシュは、1つの主な目的を持っていますアプリケーションの異なる部分がどのように通信するかを制御します.サービスメッシュは特にアプリケーションのためですが、それは技術的にインフラストラクチャ層の一部と考えられます.理由は、サービスメッシュが何をしているかの多くがサービスの間のトラフィックを送信しているためです.
サービスメッシュを2つに分割します.
  • コントロールプレーン-これは“本部”のようです.プロキシの設定(プロキシはデータプレーンの大部分)、暗号化、CERTS、およびサービスが互いに話をするために必要な構成を処理します
  • データプレーン-分散プロキシを構成するsidecars . サイドカーは単に「ヘルパー」コンテナです.サービスにサービスを伝えるプロキシ情報が含まれています(これはサービスメッシュのコアが何であるか).
  • 要するに;制御プレーンは、プロキシのための構成を保持するものであり、データプレーンはそれらの構成を分配する.

    多くの組織のためのサービスメッシュの主要な機能性がサービス通信であるけれども、それは以下を含むいくつかの他の仕事を実行することができます:
  • 負荷分散
  • 可観測性
  • 認証ポリシー、TLS暗号化、およびアクセス制御を含むセキュリティ
  • Why a Service Mesh Is Important


    あなたは自分自身をマイクロサービスやKubernetesは私のためにこれをやっていないと思うかもしれない?そして、答えは一種です.Kubernetesは、Kubeプロキシで箱からトラフィックを扱います.KubeプロキシはすべてのKubernetes Workerノードにインストールされ、ローカルクラスタネットワークを扱います.これはiptablesとipvsルールを実装し、ルーティングネットワークとロードのバランスを処理するためのポッドネットワークです.
    サービス通信はサービスメッシュなしで動作するが、以下のような機能を備えている.
  • ネットワーク待ち時間をトラブルシューティングするのはより簡単でしょう
  • あなたはサービス間の箱のセキュリティを持っているでしょう.サービスメッシュがなければ、サービス間のセキュリティはありません.TLS Certでこれを扱うことができますが、あなたは本当にその展望からより多くの仕事を加えたいですか?
  • タイムアウト、リトライ、レート制限を心配する必要がないようにサービス間の通信の回復性
  • 追跡と警告のための可観測性
  • 実際には、Kubernetesとボックスのサービス通信があります.サービスメッシュを実装する最大の理由は、サービス間のセキュリティ、簡単なサービス発見、およびサービスレイテンシの問題の追跡です.

    istioから始める


    なぜあなたがサービスメッシュを実装したいのかを知っているので、その方法を学びましょう!インストールプロセスはかなり速く、いくつかのコマンドが必要です.
    まず、istioをダウンロードします.以下のコマンドは最新版をインストールします.
    curl -L https://istio.io/downloadIstio | sh -
    
    次に、ディレクトリを変更cd ISIOフォルダに.このブログの記事と一緒に従ったときにバージョンが依存しますが、ディレクトリは常にistio
    cd istio-version_number
    
    インストールはいくつかのサンプルとマニフェストをインストールしますinstioctl バイナリ.使用するには、次のコマンドを実行してパスにバイナリを入れます.
    export PATH=$PWD/bin:$PATH
    
    次のコマンドを実行してistioをインストールします.
    istioctl install
    
    最後のステップは、あなたが後であなたのアプリを展開するときのために自動的に使節サイドカープロキシを注入するために名前空間ラベルを設定することです.名前空間ラベルを設定しない場合は、サイドカープロキシコンテナが自動的にpodにインストールされません.デフォルトでは、istioはこの設定を有効にしません.
    kubectl label namespace default istio-injection=enabled
    
    おめでとう!正常にistioをインストールしました.