Linkerd

Linkerdによるクラスタ間通信ガイド

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

Linkerdによるクラスタ間通信の概要

複数Kubernetesクラスターを管理する際、サービス間の通信はネットワーク設計の最大の課題です。LinkerdはService Meshとして、mTLS認証やグローバルなサービス発見機能でこの課題を解決します。特にv2.xでは「クラスターリング(Cluster Mesh)」機能により、複数クラスター間のネットワーク抽象化が可能に。公式ドキュメントでは「Multi-Cluster Services」や「ServiceEntry」といったキーワードで検索可能です。


Linkerdのインストールと基本構成

Kubernetesクラスタ間での通信を実現するには、まずLinkerdを各クラスターに導入する必要があります。Control Plane(管理コンポーネント)とData Plane(プロキシコンテナ)の配置ルールを理解し、クラスターリングを有効化する手順を確認しましょう。

各クラスターへのLinkerdデプロイ手順

  1. Linkerdのバージョン確認: linkerd versionを実行してv2.xがインストールされているか確認
  2. クラスタースコープでのインストール: linkerd install --skip-namespace --set profile=ambientでControl Planeを配置
  3. Data Planeの自動注入: kubectl label ns <namespace> linkerd.io/inject=enabledでNamespaceにプロキシを注入

クラスターリング構成の検証方法

  • 各クラスターでlinkerd checkコマンドを実行し、ネットワーク接続性を確認(注意: Multi-Cluster環境では非推奨
  • kubectl get svc -n linkerdでControl Planeコンポーネントのステータスを確認

mTLS認証とサービスメッシュスコープ

LinkerdはデフォルトでmTLSによる暗号化通信を実現します。複数クラスター間での信頼関係を構築するには、Identityコンポーネントの設定が不可欠です。

自動生成されたIdentityとTrust Anchorの設定

  • IdentityはKubernetes ServiceAccountに自動生成されるため、linkerd-identityのロールベース制御が重要
  • 信頼できるルート証明書(Trust Anchor)を/etc/linkerd2/tls/root-ca.crtに配置

Cross-Cluster通信時の認証フロー

  1. クライアントクラスターのServiceAccountから証明書取得
  2. 証明書がServerクラスターのTrust Anchorと照合される
  3. 両方のプロキシがTLS接続を確立

Scopeの境界管理方法

  • Namespaceレベル: linkerd.io/scopeラベルで通信範囲を指定
  • Clusterレベル: クラスターアクセス制限にNetworkPolicyを併用

DNS設定とServiceEntryの活用

複数クラスター間でのサービス発見には、DNS設定とServiceEntryリソースが不可欠です。特にグローバルなサービスディスカバリー構成は、通信遅延を削減する鍵となります。

クラスターアクセス向けのDNSレコード設計

  • クラスター固有ドメイン: svc.cluster.localを各クラスターで個別に設定
  • グローバルDNS: DNSレゾルバに/etc/resolv.confを共通化(例: 全クラスターで同じDNSサーバーを使用する設定を追加

ServiceEntryによる外部サービス連携

タイプ 説明 使用ケース
ClusterIP 内部クラスターのサービスのみ参照 同一クラスター内通信
ExternalName 外部DNS名へのマッピング 異なるクラスター間通信

グローバルなサービスディスカバリー構成

  • linkerd-identityコンポーネントと連携し、/etc/linkerd2/service-entries.jsonにリソースを登録

通信ポリシーのカスタマイズ

LinkerdではTrafficPolicyやRouteリソースでQoS設定やルーティング制御が可能です。特にラベルセレクタによる条件分岐は、動的なトラフィック制御に適しています。

TrafficPolicyによるQoS設定

Routeリソースを使ったルーティング制御

  • ラベルセレクタでトラフィックを分割する例: match: { labels: { app: "payment" } }

グローバルなメトリクス収集構成

  • linkerd-vizをインストールし、Prometheus経由でメトリクスを可視化

トラブルシューティングと監視

通信エラーが発生した際は、ログ確認とCLIツールの活用が重要です。メッシュ内トラフィックの可視化も維持管理に必須です。

通信エラー時のログ確認手順

  1. linkerd -n <namespace> logsでプロキシロガーを確認
  2. kubectl logs -l linkerd.io/identityでIdentityコンポーネントのエラーをチェック

Linkerd CLIによる状態診断

  • linkerd checkでインストール状況の検証(注意: Multi-Cluster環境では非推奨
  • linkerd viz metricsでメトリクスデータの可視化

公式ドキュメント参照ガイド

Linkerd v2.xの設定やクラスターリングに関する詳細な手順は、公式ドキュメントを参照してください。サポートチケットが必要な場合は、公式サポートページから申請可能です。

CTA: 公式ドキュメントを参照しつつ、本ガイドに従ってLinkerdによるクラスタ間通信を構築してみましょう。

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Linkerd