このブログは、Microservices March 2022のKubernetesネットワーキングに関する全5回シリーズの第5回です。
- プログラム概要: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を本番環境に導入したら、安定稼働を維持する必要があります。ユニット4では、Kubernetesネットワーキングによって稼働時間を延ばし、顧客体験を向上させる方法を取り上げます。
3つのアクティビティを通じて、概要の把握から実践的な応用へと段階的に進めます。学習効果を最大限に高めるため、3つすべてを完了することをお勧めします。
ステップ1:ライブ配信を視聴(1時間)
Microservices Marchの各ライブストリームでは、learnk8sとNGINXの各分野の専門家を迎え、トピックの概要をご紹介します。3月28日のライブ配信を見逃しても、ご心配はいりません。オンデマンドでご視聴いただけます。
このエピソードでは、以下のような手法を使用して、ダウンタイムなしのデプロイを実現する方法を解説します。
- トラフィック分割
- ブルーグリーンデプロイ
- トレーシング
- フローをリアルタイムでマッピング
 
ステップ2:知識を深める(1~2時間)
ライブ配信後には、さらに疑問が生じることでしょう。そこで、関連する記事や動画を厳選しました。このユニットでは、レジリエンスを高めるためのトラフィック管理と可視性の向上という2つのトピックを掘り下げます。

このブログで紹介するトラフィック制御とトラフィック分割の手法(レート制限、サーキットブレーカー、デバッグルーティング、A/Bテスト、カナリアデプロイ、ブルーグリーンデプロイ)を活用してKubernetesアプリのレジリエンスを向上させる方法と、NGINX製品によってこれらの実装が容易になる仕組みをご紹介します。

旧サービスから新バージョンへ移行する際、新しいサービスに問題が発生する可能性を考慮し、すべてのトラフィックを一度に切り替えることは避ける必要があります。そのため、サーキットブレーカー、カナリアデプロイ、ブルーグリーンデプロイを含むトラフィック分割は、レジリエンスの確保に役立つ重要な手段です。この動画では、ノースサウスおよびイーストウェストのトラフィック分割に関するベストプラクティスとユースケースを解説し、2つのデモをご紹介します。

アプリケーションとKubernetesのパフォーマンスを把握するうえで重要な可視性データには、リアルタイムデータと履歴データの2種類があります。このブログでは、Ingressコントローラーまたはサービスメッシュから得られるこれらのデータを活用して、Kubernetesでよく発生する問題をトラブルシューティングする方法をご紹介します。

この動画では、マイクロサービスのエキスパートが、主要な負荷分散およびパフォーマンス指標のリアルタイム監視、Prometheusへの指標のエクスポート、Grafanaによる累積パフォーマンスの可視化を活用して、Kubernetesの可視性を向上させる方法を実演します。

Zipwhip(Twilioが買収)は新しいSaaSアプリのリリースを計画していましたが、従来のインフラストラクチャでは必要な安定性と俊敏性を確保できませんでした。本ウェビナーでは、同社のプリンシパルアーキテクトを迎え、Kubernetes導入に向けて実施した戦略面および技術面の取り組みと、Amazon EKSおよびNGINX Ingress Controllerの活用によって得られた成果について伺います。
追加調査
セキュリティとサービスメッシュについて理解を深めたい方で、1~2時間以上の時間を確保できる場合は、学習を始めるための追加リソースとして、次の2つをお勧めします。

このO’ReillyのeBookは、サイト信頼性エンジニア(SRE)向けに厳選された知見、ヒント、テクニックをまとめたものです。すべてのSREが理解すべき概念、効果的なSREプラクティスの構築方法、ステークホルダーチームとの連携方法などを紹介しています。

Kubernetesではイングレストラフィックに注目が集まりがちですが、エグレストラフィックの処理も同様に重要であり、ゼロトラストアーキテクチャに不可欠な要素です。このウェビナーでは、イングレスとエグレスを単一の構成で制御し、トラフィック管理を簡素化する方法をご紹介します。
ステップ3:実際に操作する(1時間)
どれほど優れたウェビナーや調査資料があっても、実際にテクノロジーに触れることに勝るものはありません。ラボでは一般的なシナリオを実践し、学んだ内容を定着させます。
4つ目のセルフペース型ラボ「カナリアデプロイによるKubernetesの稼働時間とレジリエンスの向上」では、NGINX Service Meshを使用して、バックエンドサービスの2つのバージョン間でトラフィックを分割し、トラフィックをバージョン1からバージョン2へ段階的に移行します。
ラボにアクセスするには、Microservices March 2022への登録が必要です。すでに登録済みの場合は、Unit 4 Learning Guideとともに届いたメールにアクセス手順が記載されています。または、NGINXチュートリアル:カナリアデプロイメントによる稼働時間とレジリエンスの向上を参考に、ご自身の環境でラボを試すこともできます。
 
Microservices Marchに登録するメリット
一部のコンテンツ(ライブ配信とブログ)は自由にご利用いただけますが、すべてのコンテンツをご利用いただくには、少量の個人情報をご提供いただく必要があります。登録すると、以下をご利用いただけます。
- 一般的なシナリオを通じてテクノロジーを実際に体験できる、4つのセルフペース型ラボへのアクセス
- 専門家への質問や他の参加者との交流に利用できるMicroservices March Slackチャンネルへの参加
- 予定どおりに学習を進めるための週刊学習ガイド
- ライブ配信のカレンダー招待

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グループの負荷を直接分散できるため、クラウドでの負荷分散がさらに柔軟になります