編集者– この投稿は10 部構成のシリーズの一部です。
また、ブログの完全セットを無料の電子書籍「 Taking Kubernetes from Test to Production」としてダウンロードすることもできます。
2020年は、私たちにとって忘れられない年となりました。 学校、企業、公共サービスの突然の閉鎖により、私たちは突然コミュニティから孤立し、安全と経済的安定について不安に陥りました。 さて、これが 2000 年、あるいは 2010 年に起こったと想像してみてください。 何が違うのでしょうか? テクノロジー。 私たちが当たり前だと思っている高品質のデジタルサービス(医療、ストリーミングビデオ、リモートコラボレーションツールなど)がなければ、パンデミックはまったく異なる経験になっていたでしょう。 2020 年のテクノロジーは過去数十年と比べて何が大きく変わったのでしょうか? コンテナとマイクロサービス。
一般的にコンテナとKubernetesを使用するマイクロサービスアーキテクチャは、デジタル エクスペリエンスの市場投入までの時間を短縮することで、ビジネスの成長とイノベーションを促進します。 従来のアーキテクチャと併用する場合でも、スタンドアロンとして使用する場合でも、これらの最新のアプリ テクノロジーにより、優れたスケーラビリティと柔軟性、より迅速な展開、さらにはコスト削減も実現できます。
2020 年以前、ほとんどのお客様がすでにデジタル変革戦略の一環としてマイクロサービスの導入を開始していましたが、パンデミックによりアプリのモダナイゼーションが真に加速しました。 2020 年に NGINX ユーザーを対象に実施した調査では、回答者の 60% が本番環境でマイクロサービスを使用しており、2019 年の 40% から増加していること、また、コンテナーは他の最新のアプリ テクノロジーの 2 倍以上人気があることがわかりました。
Kubernetes は、コンテナ化されたアプリを管理するための事実上の標準です。これは、 Cloud Native Computing Foundation (CNCF) の 2020 年の調査によって証明されており、回答者の 91% が Kubernetes を使用しており、そのうち 83% が本番環境で使用していることがわかりました。 多くの組織は、Kubernetes を導入する際に大幅なアーキテクチャの変更に備えていますが、最新のアプリ テクノロジーを大規模に実行することによる組織への影響に驚いています。 Kubernetes を実行している場合、おそらく次の 3 つのビジネスクリティカルな障壁すべてに遭遇したことがあるでしょう。
CNCF クラウド ネイティブ インタラクティブ ランドスケープは、マイクロサービス ベースのアプリケーションをサポートするために必要なインフラストラクチャの複雑さを示す良い例です。 組織はさまざまな異なるテクノロジーに習熟する必要があり、その結果、インフラストラクチャのロックイン、シャドー IT、ツールの無秩序な拡散、インフラストラクチャの保守を担当する人々の急激な学習曲線などが生じます。
ほとんどの組織の問題と同様に、Kubernetes の課題を克服するための答えは、テクノロジーとプロセスの組み合わせです。 この投稿の残りの部分ではテクノロジーの要素に焦点を当てますが、プロセスやその他のトピックに関する今後のブログにも注目してください。
Kubernetes はオープンソース テクノロジーであるため、実装方法は数多くあります。 独自のバニラ Kubernetes を展開することを好む組織もありますが、多くの組織は、Amazon Elastic Kubernetes Service (EKS)、 Google Kubernetes Engine (GKE)、Microsoft Azure Kubernetes Service (AKS)、 Red Hat OpenShift Container Platform 、 Rancherなどのサービスによって提供される柔軟性、規範性、サポートの組み合わせに価値を見出しています。
Kubernetes プラットフォームは簡単に起動して実行できますが、深さよりもサービスの幅広さに重点を置いています。 したがって、必要なサービスはすべて 1 か所で入手できるかもしれませんが、大規模な本番環境への本格的な対応に必要な機能セットが提供されることはほとんどありません。 つまり、Kubernetes は高度なネットワークとセキュリティに重点を置いておらず、この点で多くの顧客を失望させています。
Kubernetes を本番環境にするには、次の順序でさらに 3 つのコンポーネントを追加する必要があります。
クラスタへのトラフィックの入出力を可能にするスケーラブルなイングレス・エグレス層
これは、Kubernetes ネットワークの複雑さを抽象化し、Kubernetes クラスター内のサービスと外部のサービス間の橋渡しをする特殊なロードバランサーであるIngress コントローラーによって実現されます。 このコンポーネントは、回復力を高める機能 (高度なヘルスチェックや Prometheus メトリックなど)、迅速なスケーラビリティを実現する機能 (動的再構成)、セルフサービスをサポートする機能 (ロールベースのアクセス制御 [RBAC]) が含まれている場合に、本番環境グレードになります。
クラスター全体の脅威から保護するための組み込みセキュリティ
クラスターの外部では「粗い」セキュリティで十分かもしれませんが、クラスターの内部では「細かい」セキュリティが必要です。 クラスターの複雑さに応じて、柔軟なWeb アプリケーション ファイアウォール(WAF) を Ingress コントローラー上、サービスごとのプロキシとして、およびポッドごとのプロキシとしてデプロイする必要がある場所が 3 つあります。 この柔軟性により、請求などの機密性の高いアプリにはより厳格な制御を適用し、リスクが低いアプリにはより緩い制御を適用できます。
クラスタ内のトラフィックを最適化するためのスケーラブルな東西トラフィック層
この 3 番目のコンポーネントは、Kubernetes アプリケーションが基本的なツールで処理できる複雑さと規模のレベルを超えたときに必要になります。 この段階では、クラスター内のアプリケーション サービスに対してさらにきめ細かいトラフィック管理とセキュリティを提供するオーケストレーション ツールであるサービス メッシュが必要です。 サービス メッシュは通常、コンテナ化されたアプリケーション間のアプリケーション ルーティングの管理、自律的なサービス間相互 TLS (mTLS) ポリシーの提供と適用、アプリケーションの可用性とセキュリティの可視性の提供を担当します。
これらのコンポーネントを選択するときは、移植性と可視性を優先してください。 プラットフォームに依存しないコンポーネントにより、複雑さが軽減され、セキュリティが向上します。チームが学習して保護する必要があるツールが少なくなり、ビジネス ニーズに基づいてワークロードを簡単に移行できるようになります。 可視性と監視の重要性は、いくら強調してもし過ぎることはありません。 Grafana や Prometheus などの一般的なツールとの統合により、インフラストラクチャの統一された「単一のペイン」ビューが作成され、顧客が問題を発見する前にチームが問題を検出できるようになります。 さらに、本番環境レベルの Kubernetes には必ずしも必要ではありませんが、最新のアプリ開発に不可欠なその他の補完的なテクノロジーも存在します。 たとえば、組織が従来のアプリを最新化する準備ができたとき、最初のステップの 1 つは、 API ゲートウェイを使用してマイクロサービスを構築することです。
当社の Kubernetes ソリューションはプラットフォームに依存せず、本番環境レベルの Kubernetes を有効にするために必要な 3 つのコンポーネントが含まれています。 NGINX Ingress Controller をイングレス-エグレス層として、 NGINX App Protect をWAF として、 NGINX Service Mesh をイースト-ウェスト層として使用します。
これらのソリューションは、次の 4 つの主要領域を実現することで、Kubernetes をあなたの最高のパートナーにします。
NGINX Ingress Controller は30 日間の無料トライアルとして提供されており、コンテナ化されたアプリを保護するための NGINX App Protect が含まれています。 トライアルを最大限に活用するには、常時無料の NGINX Service Mesh ( f5.comからダウンロード可能) を追加することをお勧めします。 現在、任意のクラウドに独自のライセンス (BYOL) を持ち込むことができます。
「このブログ投稿には、入手できなくなった製品やサポートされなくなった製品が参照されている場合があります。 利用可能な F5 NGINX 製品およびソリューションに関する最新情報については、 NGINX 製品ファミリーをご覧ください。 NGINX は現在 F5 の一部です。 以前の NGINX.com リンクはすべて、F5.com の同様の NGINX コンテンツにリダイレクトされます。"