モダンアプリケーション向けの F5 クラウドネイティブ・ネットワーク機能 Part 1

This post is also available in English (英語)

F5 のBIG-IP Next Cloud-Native Functions をご紹介します。 この新製品には、Edge Firewall、CGNAT、DNS、Policy Enforcer CNF などの機能がご利用できます。 詳細は以下のリンクをご参照ください。
https://www.f5.com/products/cloud-native-network-functions
 

Part 1 - F5 Cloud-Native Functions の概要

  • なぜ今Cloud-Nativeなのか?
  • CNFの概要
  • 簡単デプロイメントの例

Part 2 - F5 CNF設定例

  • Cloud-native設定方法
  • F5 CRDsの概要
  • セキュリティとCGNAT のデプロイメント

 

なぜ今Cloud-Nativeなのか?

CNCF は、クラウドネイティブ 技術を使うことで、「パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらす」と言われています。 たとえば、Kubernetes は、最新のアプリを大きなスケールで管理するための自動化と可観測性を提供するために構築されたコンテナー オーケストレーション プラットフォームです。

F5 の新製品である CNF の発表は、企業がそのような旅に乗り出すという重要な時期に行われました。 これらの CNF は、5G ネットワークなどのテクノロジーに必要な機能で Kubernetes を拡張します。以下は、その方法の簡単な説明です。

CNFの概要

コントロール プレーンとデータ プレーンは分割され、独立したスケーリング、回復力、および障害ドメインの最小化を実現します。 コントローラー ポッドは、データ プレーン ポッドの自動検出と、F5 が開発したカスタム リソースによりユーザーが定義した設定を処理します。 他のコンパイラ ポッドは、より高度な設定とテレメトリデータを処理します。トラフィックは、外部インターフェイスを介してデータ プレーン ポッドに流れ、処理された後、クラスターからインターネットまたは外部リソースに送信されます。 

 

簡単デプロイメントの例

多くのクラウドネイティブ アプリで使用されているように、ヘルム チャートを使用して、F5 が開発したテンプレートと顧客定義のオーバーライド値を使用してさまざまなポッドをデプロイします。

 

F5 は、データプレーンのポッドの設定するために使用されるcustom resource definitions (CRDs) も開発します。 以下は、CRD のバンドルをデプロイするコマンドの例です。 CRD はクラスター スコープのリソースであるため、これらにはクラスター内の特別なアクセス許可が必要です。 通常、クラスター管理者がこれらをデプロイします。

helm install --namespace my-cnf cnf-crd-n6lan cnf/f5-cnf-crds-n6lan

以下は、オーバーライド用のYAMLファイル「my-override-values.yaml」を使用し、最後にチャートの場所を指定して、「my-cnf」というネームスペースにポッドをデプロイするコマンドの例です。 カスタム パラメーターを使用して values.yaml ファイルを作成する方法については、リリース ノートに概要が記載されています。

https://clouddocs.f5.com/cnfs/robin/latest/cnf-release-notes.html 

helm install --namespace my-cnf cnf-ingress-ctrl --values ./my-override-values.yaml cnf/f5ingress

以下のような出力が出ます。

NAME: f5ing-demo-spk LAST DEPLOYED: Thu Aug 23 21:14:12 2022 NAMESPACE: my-cnf STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: The F5Ingress Controller has been installed.

 

次に、コントロール プレーンとデータ プレーンのポッドが、指定されたネームスペースで「Running」のステータスで起動されます。

 

# kubectl get po -n my-cnf
NAME                                   READY   STATUS             RESTARTS   AGE
f5-afm-5f7b44bfbc-p7zgj                2/2     Running            0          3m
f5-tmm-6f8d59f986-47gl2                4/4     Running            0          3m
f5ingress-f5ingress-796c595cbf-kblcw   1/1     Running.           0          3m

 

これでコントローラー ポッド「f5ingress」がデプロイされました。これで、デプロイするカスタム リソースを使用してデータ プレーン ポッド「f5-tmm-*」を設定する準備が整いました。

 

次の記事では、IPv4 パスを介してインターネットに送信する前に、クライアント IPv6トラフィックを受け入れ、トラフィックに CGNAT ポリシーとファイアウォール セキュリティを適用するデータ プレーン ポッドを設定する方法の概要を説明します。

Published Dec 16, 2022
Version 1.0
No CommentsBe the first to comment