ハイブリッド クラウド

Anthos の解説: オンプレミス ワークロード向けの簡単な負荷分散

#anthos

※この投稿は米国時間 2020 年 9 月 25 日に、Google Cloud blog に投稿されたものの抄訳です。

Anthos は、オンプレミスでワークロードを実行する必要がある組織に大きな変革をもたらします。Google Cloud で管理されるハイブリッド マルチクラウド プラットフォームとして、Anthos には Google が Google Kubernetes Engine(GKE)向けに長年にわたり開発してきたものの、お客様のデータセンターで実行されるイノベーションがすべて組み込まれています。そのため、Anthos は既存のオンプレミス ネットワーク スタックと統合できます。

統合の重要な要素の一つは、トラフィックを Anthos クラスタに取り込むことです。これには、外部ロードバランサが使用されることが多いです。Anthos を Google Cloud で実行する場合、Ingress または servicetype のロードバランサでインターネットからアクセスできる Kubernetes サービスを作成すると、Google Cloud によって仮想 IP(VIP)が割り当てられ、世界中で利用できるようになります。一方、Anthos をオンプレミスで実行する場合、サービスの VIP をオンプレミス ネットワークにアドバタイズするには、外部ロードバランサを使用します。

Anthos には外部ロードバランサをデプロイするための各種オプションが用意されています。それは、F5 Container Ingress Services(CIS)コントローラ、静的マッピングを使用した Kubernetes へのロードバランサの手動マッピング、Anthos 独自のバンドル ロードバランサの 3 つです。

この投稿では、この 3 つのオプションを紹介し、Anthos のバンドル ロードバランサについて詳しく解説します。

F5 負荷分散

このモードでは、オンプレミスで実行されている Anthos に F5 Container Ingress Services(CIS)コントローラを含めることで、Anthos と F5 を統合します。このアプローチは、F5 負荷分散に既存の投資があり、Anthos オンプレミス クラスタで利用する場合に最適です。

手動負荷分散

別のサードパーティのロードバランサがある場合は、外部ロードバランサを Kubernetes リソースに手動でマッピングして、選択したロードバランサを使用することができます。ここでは Kubernetes リソースを外部ロードバランサにマッピングするコントローラがないため、ロードバランサ サービスの静的マッピングを実行する必要があります。

Anthos にバンドルされた負荷分散

先に述べた 2 種類のモードの場合、外部ロードバランサの管理に関連する費用(ライセンスとハードウェア)や専門知識が必要です。さらに重要なのは、外部ロードバランサと Anthos クラスタは別々のチームで管理されることが多いため、技術面でも技術以外の面でも組織に摩擦が生じる可能性がある点です。Anthos のバンドル ロードバランサには VIP を動的にプログラムするオプションが用意されており、サードパーティのオプションを構成、サポートする必要がありません。

Anthos にバンドルされたロードバランサは外部ロードバランサ機能を統合し、VIP を外部に通知します。上記のモードとは対照的に、Anthos 自体は Kubernetes ドメインをネットワークの他の部分とブリッジするようになりました。このアプローチにはいくつかのメリットがあります。

  • オンプレミスの Anthos クラスタを管理するチームは VIP の通知も管理します。これにより、さまざまな組織、グループ、管理者間の緊密なコラボレーションや依存関係の要件が緩和されます。

  • 外部負荷分散のニーズに合わせて個別の請求書、経費、ベンダーを管理する必要がないため、費用が合理化されます。

  • Anthos がコントローラも VIP 通知も制御するため、管理が簡略化されます。これには運用管理、サポート、プロビジョニングなどの面でメリットがあり、よりシームレスなエクスペリエンスを実現します。

Anthos のバンドル ロードバランサを利用している多国籍投資銀行の HSBC からは、インストールと構成が簡単でシステム要件が最小限で済むという評価をいただいています。

「オンプレミスで実行されている Anthos は、自社のデータセンターで Google のマネージド Kubernetes の機能を最大限に発揮しています。とりわけ、バンドル ロードバランサは、高可用性と高パフォーマンスを備えたレイヤ 4 ロードバランサを最小限のシステム要件で HSBC に提供してくれます。構成とインストールはシンプルで、新しいオンプレミス クラスタごとにデプロイを自動化します。これにより、製品化までの時間、インストールの複雑さ、デプロイする各クラスタの費用が削減されます。」 - HSBC オペレーション、サービスおよびテクノロジー部門グローバル コンテナ エンジニアリング リード Scott Surovich 氏

Anthos のバンドル ロードバランサを使用する

Anthos のバンドル ロードバランサは比較的簡単にオンプレミスで使用できます。

bundle load balancer.jpg

バンドル ロードバランサは、Google が作成してオープンソース化した Seesaw ロードバランサを使用します。高可用性モードでは、2 つのインスタンスがアクティブとパッシブのペアで実行され、標準の Virtual Router Redundancy Protocol(VRRP)と通信します。パッシブ インスタンスは、アクティブ インスタンスからの通知を 2 秒間受信しない場合に、現行のデフォルト構成に基づいてアクティブになります。

ロードバランサ タイプの Kubernetes サービスを作成し、バンドル ロードバランサを使用してアプリケーションを公開できます。例:

  apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  type: LoadBalancer
  loadBalancerIP: SVIP
  selector:
    app: MyApp
  ports:
    - port: 80
      targetPort: 8080

この例では、バンドル ロードバランサがポート 80 でクライアントにサービスを公開します。サービス構成がロードバランサに自動的に送信され、ロードバランサは ARP(アドレス解決プロトコル)リクエストに応答して SVIP の通知を開始します。ロードバランサは IPVS ゲートウェイ モード(「ダイレクト ルーティング」モード)で実行され、パケットの IP レイヤにアクセスせずに、宛先 MAC アドレスを変更してパケットを Kubernetes ノードに配信します。このモードで実行するメリットは、トラフィックに IP ヘッダーが追加されないため、パフォーマンスに影響が出ないことです。次に、ノード上の Kubernetes データプレーン(この場合は iptables)が SVIP:80 宛てのパケットを取得し、バックエンド ポッドにルーティングします。ゲートウェイ モードにより、ロードバランサは「ダイレクト サーバー リターン(DSR)」を実現し、応答がロードバランサをバイパスします。このため、ロードバランサに必要な容量が削減されます。また DSR により、サービスで「externalTrafficPolicy」を「Local」に設定することで、クライアント IP をポッドに表示できます。

外部ロードバランサがなくても大丈夫

お客様のネットワークに適した外部ロードバランサがない場合や、設定の専門知識が社内にない場合は、Anthos のバンドル ロードバランサがお役に立ちます。しかも、簡単な設定ですぐに使い始めることができます。Anthos のネットワーク機能について詳しくは、こちらをクリックしてください。また、GKE プライベート クラスタを使用してセキュリティとコンプライアンスを強化する方法については、今後の投稿でご紹介しますのでご期待ください。


-GKE プロダクト マネージャー Mahesh Narayanan

-GKE ソフトウェア エンジニア Yuan Liu