このブログは、Microservices March 2022のKubernetesネットワーキングに関する全5回シリーズの第2回です。
- プログラム概要:Microservices March 2022:Kubernetesネットワーキング
- ユニット1:高トラフィックWebサイト向けKubernetesクラスターの設計(本記事)
- ユニット2:KubernetesでAPIを公開する
- ユニット3:Kubernetesにおけるマイクロサービスのセキュリティパターン
- ユニット4:高度なKubernetesデプロイ戦略
また、NGINXを使用したKubernetesネットワーキングの実装に関する詳しいガイダンスをまとめた無料eBook『Managing Kubernetes Traffic with NGINX: A Practical Guide』もぜひダウンロードしてください。

Kubernetesネットワーキングは、Kubernetesのコンポーネント、サービス、トラフィックを接続するためのフレームワークです。しかし、単にパケットをAからBへ転送するだけではありません。ユニット1では、次の基本的な疑問に答えます。Kubernetesでマイクロサービスにトラフィックをルーティングするにはどうすればよいですか?
3つのアクティビティを通じて、概要から実践的な応用へと段階的に学べます。最大限に活用するため、3つすべてを完了することをお勧めします。
ステップ1:ライブ配信を視聴する(1時間)
Microservices Marchの各ライブストリームでは、learnk8sとNGINXの各分野の専門家が、トピックの概要をわかりやすく解説します。3月7日のライブ配信を見逃しても、ご心配はいりません。オンデマンドで視聴できます。
このエピソードでは、次のトピックについて解説しながら、「Kubernetesでマイクロサービスにトラフィックをルーティングするにはどうすればよいですか?」という疑問にお答えします。
- Kubernetesインフラストラクチャとトラフィック管理の基礎
- ノードプールとノードインスタンス
- NodePort、LoadBalancer、Ingressの比較
- Ingressコントローラーの全体像
- Kubernetes Gateway APIについて知っておくべきこと
 
ステップ2:知識を深める(1~2時間)
ライブストリームの視聴後には、さらに疑問が生じることでしょう。そこで、関連する記事や動画を厳選しました。このユニットでは、Kubernetesサービスを外部に公開する方法と、要件に最適なIngressコントローラーの選び方という2つのトピックを詳しく解説します。
このブログでは、次の疑問に答えます。「Kubernetes環境でトラフィックを受け入れるには、Ingressコントローラーが必要ですか?」内容は次のとおりです。
- 外部トラフィックをクラスターに取り込むためのその他のサービス(kube‑proxy、Cluster IP、NodePort、LoadBalancer)の基礎
- Ingressコントローラーに期待できること
- Ingressコントローラーの前段にロードバランサーを配置する理由
続いて、全4回のブログシリーズ「Ingress Controller選定ガイド」をご覧ください。

Ingress Controllerは、Kubernetesスタックで特に強力なツールの1つとなり得ます。最適な選択肢を選べるよう、Ingressの要件を明確にする方法をご紹介します。

誤ったIngress Controllerを選択することで生じ得るリスクと、将来を見据えた選択を行うための主なポイントをご紹介します。

Ingress Controllerは、オープンソース、デフォルト、商用の3つのカテゴリーに分類されます。それぞれのメリットとデメリットをご紹介します。

開発元、開発方針、本番環境への対応状況、セキュリティ、サポートを基に、どのNGINX Ingress Controllerが最適かを判断する方法をご紹介します。
最後に、2021年に導入された新しいKubernetes Gateway APIについてご紹介します。これは非常に新しいテクノロジーであり、すぐに使用する可能性は低いものの、今後数年のうちに、多くのオープンソースプロジェクトや商用製品でこのAPIが活用されるようになると考えられます。
追加調査
マイクロサービスとKubernetesについてさらに理解を深めるために1~2時間以上かけられる方には、学習を始める際に役立つ3つの追加リソースをおすすめします。
ウェビナー | マイクロサービスの基礎
このウェビナーでは、マイクロサービスの主要な概念を紹介し、ハイブリッドアーキテクチャ、コンテナ、Kubernetes、Ingressコントローラーなどについて解説します。eBook | KubernetesによるクラウドネイティブDevOps
このO’Reillyの書籍では、業界標準のDevOpsプラクティスをクラウドネイティブ環境のKubernetesに適用する方法を紹介します。クラウドで最新のアプリケーションを構築、デプロイ、スケーリングする方法を学べます。

GoogleのプロダクトマネージャーであるMark Church氏は、コンテナネットワーキングを定義する標準の策定に携わっています。この基調講演では、Kubernetesがサービスメッシュのエコシステムに与えた影響を考察し、アプリケーションネットワーキングの未来を予測します。
ステップ3:実際に操作する(1時間)
どれほど優れたウェビナーや調査資料があっても、テクノロジーを実際に操作する体験に勝るものはありません。Microservices Marchのラボでは、一般的なシナリオを実践しながら、学んだ内容を定着させることができます。
最初のセルフペース型ラボ「自動スケーリングによるKubernetesのレイテンシ削減」では、NGINX Ingress Controllerを使用してアプリを公開し、トラフィックの急増に応じてIngress Controllerを自動スケーリングします。この20分間のラボ解説動画で、実際の動作と各手順の理由をご確認ください。
ラボにアクセスするには、Microservices March 2022への登録が必要です。すでに登録済みの場合は、Unit 1 Learning Guideとともに届いたメールにアクセス手順が記載されています。または、NGINXチュートリアル:自動スケーリングによるKubernetesのレイテンシ短縮を参考に、ご自身の環境でラボを試すこともできます。
 
Microservices Marchに登録する理由
一部のコンテンツ(ライブ配信とブログ)は自由にご利用いただけますが、すべてのコンテンツをお楽しみいただくために、少量の個人情報をご提供いただく必要があります。登録すると、以下をご利用いただけます。
- 一般的なシナリオを通じてテクノロジーを実際に操作できる、4つのセルフペースラボへのアクセス
- 専門家への質問や参加者同士の交流に利用できるMicroservices March Slackチャンネルへの参加
- 予定どおりに学習を進めるための週次学習ガイド
- ライブ配信のカレンダー招待
次のステップ
ユニット2:KubernetesでのAPI公開は3月14日に始まります。認可と認証、OIDC、レート制限など、Kubernetesにおける一般的なAPIゲートウェイのユースケースについて学びます。

NGINXを使用したKubernetesネットワーキングの実装に関する詳しいガイダンスについては、eBook「Managing Kubernetes Traffic with NGINX: 実践ガイド」をダウンロードしてください。
著者について

関連するブログ記事
チュートリアル:NGINXを使用してアプリケーション向けにOpenTelemetryを構成する
OpenTelemetryを使用してNGINXサーバーの状態と健全性をより明確に把握することで、問題のトラブルシューティングを行い、Webアプリケーションのパフォーマンスを向上できます。
AkitaのNGINX Plus認定モジュールでAPIエンドポイントの問題を特定・修正
Akita SoftwareのAPIオブザーバビリティ向け新しいNGINX Plus Certified Moduleを活用して、APIエンドポイントの問題をより迅速に特定し、修正できます。
JavaプロジェクトをスキャフォールディングしてKubernetesネイティブアプリを構築する方法
Red HatのシニアプリンシパルデベロッパーアドボケイトであるDaniel Oh氏が、Javaプロジェクトをゼロから構築するためのひな形を作成し、Kubernetesネイティブアプリケーションとしてビルドする方法を解説します。
F5 NGINXaaS for Azureのご紹介:Microsoft Azureでネイティブに利用できるSaaS型ロードバランシング
NGINXaaS for Azureは、NGINX PlusをAzureネイティブのSaaSとして利用できるサービスです。NGINXの設定を容易にリフト&シフトできるため、クラウド導入とモダンアプリの展開を加速できます。

SELinuxでNGINXおよびNGINX Plusを使用する
Red Hat Enterprise Linux(RHEL)および関連ディストリビューションでSecurity-Enhanced Linux(SELinux)を有効にすると、デフォルト設定によりNGINXとNGINX Plusの一部の操作が制限されます。この記事では、すべての機能を利用できるようにSELinuxの設定を変更する方法について説明します。
NGINX PlusによるAWS Auto Scalingグループの負荷分散
新しいnginx-asg-sync統合ソフトウェアにより、NGINX PlusはAWS Auto Scalingグループの負荷を直接分散できるため、クラウドでの負荷分散がさらに柔軟になります