サイドカープロキシは、Envoyなどの専用の透過ネットワークプロキシであり、関連付けられたアプリケーションコンテナのインバウンドトラフィックとアウトバウンドトラフィックをインターセプトして処理します。負荷分散、サービスディスカバリ、トラフィック制御、再試行、タイムアウト処理などの基盤となるネットワーク機能を抽象化および管理します。サイドカープロキシは、コントロールプレーンコンポーネントと通信します。コントロールプレーンは、ポリシーとルールを一元的に管理し、それらをサイドカープロキシに発行する役割を担います。サイドカープロキシは、コントロールプレーンによって動的に発行された構成に基づいて、ルーティング動作とサービスガバナンスポリシーを調整します。このトピックでは、サイドカープロキシをインストールする方法について説明します。
背景情報
アプリケーションのPodにサイドカープロキシをインストールすると、Podに独立したコンテナが作成され、サイドカープロキシの機能が提供されます。これらの機能を最大限に活用するには、アプリケーションの各サービスで、サービスのPodでサイドカープロキシを実行する必要があります。サイドカープロキシは、サービスのすべてのインバウンド HTTP トラフィックとアウトバウンド HTTP トラフィックをインターセプトし、対応する Service Mesh (ASM) インスタンスのIstioコントロールプレーンのPilotコンポーネントと通信します。
手順 1:サイドカープロキシインジェクションを有効にする
デフォルトでは、すべての名前空間でサイドカープロキシの自動インジェクションは無効になっています。対応するPodのKubernetes構成を更新することで、サイドカープロキシを手動で挿入できます。または、webhookに基づくIstioのサイドカープロキシ自動インジェクション機能を使用することもできます。次のコマンドを実行して、サイドカープロキシの自動インジェクションを有効にします:
kubectl label namespace {namespace} istio-injection=enabled --overwrite
上記のコマンドでは、namespace
パラメーターはアプリケーションの名前空間を指定します。このパラメーターを指定しない場合、defaultという名前空間が使用されます。
手順 2:対応するPodを再起動する
サイドカープロキシは、Podの作成時に挿入されます。したがって、サイドカープロキシインジェクションを有効にするには、Podを再起動する必要があります。
トラフィックの中断によるサービスへの影響がないことを確認するために、テスト環境でPodを複数回再起動することをお勧めします。
特定のPodを再起動するには、次のコマンドを実行します:
kubectl get pod {podname} -n {namespace} -o yaml | kubectl replace --force -f -
名前空間内のすべてのPodにサイドカープロキシが挿入されているかどうかを確認します。
サイドカープロキシがPodに挿入されると、各ワークロードはメインコンテナとサイドカープロキシコンテナによってサポートされます。
kubectl get pod -n {namespace} --all
参照
ASMコンソールで名前空間にサイドカープロキシを挿入できます。詳細については、「グローバル名前空間の管理」をご参照ください。
ASMは、新しいPodにサイドカープロキシを自動的に挿入できるサイドカーインジェクターを提供します。特定の要件を満たすようにサイドカーインジェクターのポリシーを構成し、ラベルを使用してサイドカープロキシを挿入する必要があるPodを選択できます。これにより、リソースをより効率的に使用し、管理を簡素化できます。クラスターのサイズと負荷に基づいて、サイドカーインジェクターのリソース構成を調整して、サイドカーインジェクターを実行するために十分なリソースが提供されるようにすることもできます。詳細については、「」をご参照ください。サイドカープロキシ挿入ポリシーの構成
ASMコンソールを使用すると、ビジネス要件に基づいて、リソース、ライフサイクル、トラフィックインターセプトモード、サイドカープロキシの可観測性などに関連するパラメーターを柔軟に構成できます。詳細については、「サイドカープロキシの構成」をご参照ください。
アノテーションを使用して、サイドカープロキシのリソースと構成を変更できます。たとえば、終了ドレイン期間とistio-proxyコンテナの開始シーケンスを変更できます。詳細については、「リソースアノテーションを追加してサイドカープロキシを構成する」をご参照ください。
トラフィックがサイドカープロキシを通過する必要がないシナリオでは、さまざまな方法を使用して設定を構成し、トラフィックがサイドカープロキシをバイパスできるようにすることができます。詳細については、「トラフィックがサイドカープロキシをバイパスできるように設定を構成する」をご参照ください。