Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Terraformを使って、Volterra vK8sを構築してみよう!
Search
Tetsuya Tsuji
September 29, 2021
Technology
0
500
Terraformを使って、Volterra vK8sを構築してみよう!
2021/9/30 HashiTalks Japan 2021 講演資料です。
Tetsuya Tsuji
September 29, 2021
Tweet
Share
More Decks by Tetsuya Tsuji
See All by Tetsuya Tsuji
セキュリティもネットワークもVS Codeで!〜 F5 BIG-IP VS Code拡張機能のご紹介
ttsuji777
0
1.3k
Other Decks in Technology
See All in Technology
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
スクラムを一度諦めたチームにアジャイルコーチが入ってどう変化したか / A Team's Second Try at Scrum with an Agile Coach
kaonavi
0
220
AI との良い付き合い方を僕らは誰も知らない (WSS 2026 静岡版)
asei
1
300
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
1.4k
AI に「学ばせ、調べさせ、作らせる」。Auth0 開発を加速させる7つの実践的アプローチ
scova0731
0
240
モノタロウ x クリエーションラインで実現する チームトポロジーにおける プラットフォームチーム・ ストリームアラインドチームの 効果的なコラボレーション
creationline
0
790
複雑さを受け入れるか、拒むか? - 事業成長とともに育ったモノリスを前に私が考えたこと #RSGT2026
murabayashi
1
1.8k
Scrum Guide Expansion Pack が示す現代プロダクト開発への補完的視点
sonjin
0
610
わが10年の叡智をぶつけたカオスなクラウドインフラが、なくなるということ。
sogaoh
PRO
1
510
Eight Engineering Unit 紹介資料
sansan33
PRO
0
6.2k
あの夜、私たちは「人間」に戻った。 ── 災害ユートピア、贈与、そしてアジャイルの再構築 / 20260108 Hiromitsu Akiba
shift_evolve
PRO
0
610
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.4k
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
4.9k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
0
140
YesSQL, Process and Tooling at Scale
rocio
174
15k
Fireside Chat
paigeccino
41
3.8k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
130
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.3k
Are puppies a ranking factor?
jonoalderson
0
2.6k
What the history of the web can teach us about the future of AI
inesmontani
PRO
0
400
Practical Orchestrator
shlominoach
190
11k
Everyday Curiosity
cassininazir
0
120
4 Signs Your Business is Dying
shpigford
187
22k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
Transcript
| ©2021 F5 NETWORKS 1
| ©2021 F5 NETWORKS 2 • [名前] 辻 哲也 (つじ
てつや) • [所属・肩書] F5ネットワークスジャパン合同会社 ソリューションエンジニア • [担当業務] パートナー様向けの提案⽀援、新製品情報のご提供 etc. • [経歴] 国内通信⼤⼿企業から、外資系ネットワーク/セキュリティベンダーを経て、2019年にF5⼊社 • [得意分野] ネットワーク、セキュリティ、サーバ/ストレージ周辺技術 • [SNS (LinkedIn)] www.linkedin.com/in/tetsuyatsuji ⾃⼰紹介
| ©2021 F5 NETWORKS 3 BIG-IP BIG-IQ Silverline F5 Cloud
Services F5ソリューション: ブランド概要 ⽇本で最⼤の導⼊実績を誇る ADC製品ブランド BIG-IPの集中管理、 外部管理ツールとの連携 F5が運⽤する基盤により提供する フルマネージド型クラウドサービス シンプル化されたUIで専⾨知識なく容易に 迅速な導⼊が可能なセルフサービス型クラ ウドサービス 安定・⾼速・低リソースと幅広い機能で 利⽤可能なAll In Oneソフトウェア 豊富な稼働実績による⾼度なAI基盤を活⽤ し、クレデンシャルスタッフィング攻撃や BOTトラフィックに対応する製品 クラウドやHW環境に依存しないオープンで セキュアな新しいEdge2.0環境の基盤技術
| ©2021 F5 NETWORKS 4 https://registry.terraform.io/providers/F5Networks/bigip/latest/docs Terraform BIG-IP Provider
| ©2021 F5 NETWORKS 5 “bigip_as3” resource BIG-IPの設定をJSON形式で 宣⾔的に定義
| ©2021 F5 NETWORKS 6 Consulを使ったService Discovery AS3 JSON定義例 Virtual
Server名 Virtual Address Pool名 Pool Memberの指定 Node (Pool Member)のディスカバリ ⽅法として、Consulを指定 ConsulのURIを指定 BIG-IPのPartition
| ©2021 F5 NETWORKS 7 BIG-IP Application consul-terraform-sync Module •
BIG-IP向けのConsul Terraform Sync (CTS)モジュール • モジュールの詳細は以下URLを参照 https://registry.terraform.io/modules/f5de vcentral/app-consul-sync-nia/bigip/latest • こちらでデモが⾒られます (HashiCorp さんのWebinarより) https://www.hashicorp.com/resources/co nsul-terraform-sync-japan app-consul-sync-nia
| ©2021 F5 NETWORKS 8 ・Volterra 概要
| ©2021 F5 NETWORKS 9 Volterraサービスプラットフォーム概要 Public Cloud Private Cloud
Volterra Console VoltMesh - Distributed Network & Security Services Nomadic Edge Physical Edge VoltStack - Platform Services for Distributed Infra and Apps SaaS Providers • K8Sベースのアーキテクチャを拡張し、さまざまなネットワーク、セキュリティ、アプリケーション基盤サービスを提供 • CEサイトを起動すると、⾃動で近場のREとセキュアなトンネルを張り、Consoleから⼀括コントロール • K8sモダンアプリケーションを各RE、任意のCEに⾃動配信して⼀元管理 VoltStack VoltMesh VoltConsole Volterra Node • VoltMesh • VoltStack • 仮想アプライアンス or HW • 設置、登録するとVPN⾃動形成 • K8sのコンテナアプリケーション⾃動配信 ⾃動で直近のVolterra Regional Edgeと VPNが張られる RE RE VoltConsole • SaaSでコントロールパネルのUIを提供 • 設定、管理、NWとアプリケーションの Visibilityを提供 Volterra Global NW • Worldwideで20カ所以上のPoPをもつ閉域網 • テナント毎のVPN、DDoSやアプリケーション配信基盤サービスを提供
| ©2021 F5 NETWORKS 10 VoltMesh ADC API GW FW
Routing Routing Firewall Loadbalancer e API Gateway WAF Proxy VoltMesh Distributed Network and Security Services • 複雑のアプライアンスで提供されるセキュリティ機能を、単⼀ソフトウェアとして提供 • VoltMeshの基本設定 (VoltConsole) 1. VoltMeshのインストール 2. サービスの登録 3. サービスの拠点への公開 Multi-Cloud 連携 セキュアネットワーキング (IPsec/SSL VPN) APIゲートウェイ ロードバランサー サービスメッシュ アプリケーションセキュリティ
| ©2021 F5 NETWORKS 11 VoltStack • 複雑のアプリケーション配信基盤をシンプルに提供 • VoltStackの基本設定
(VoltConsole) 1. VoltStackのインストール (VoltMeshと同時に動作。別途インストールの必要なし) 2. アプリケーションの登録/配信 3. アプリケーションサービスの公開 4. クラウド連携 VoltStack Platform Service for Distributed infra and Apps Service Control Fleet Cluster Management Compute Platform Platform Cluster Mgmt Svc Discovery Dist App Identity Secrets Mgmt ゼロタッチプロビジョニング ノードクラスタリング スケールアウト ID管理システム 鍵管理システム シークレット情報管理 アプリケーション配信 フリートマネジメント
| ©2021 F5 NETWORKS 12 VoltConsole: WebUIイメージ VoltMeshの設置情報 セキュリティ・インシデント サービス情報
(ネットワーク遅延情報, アプリ ケーションアクセス数 etc.)
| ©2021 F5 NETWORKS 13 Volterra Automation Tools
| ©2021 F5 NETWORKS 14 ・Volterra + TerraformによるvK8sの構築
| ©2021 F5 NETWORKS 15 Volterra vK8s Overview Site-3 vsite-b3:
color(blue) vsite-g2:color(green) Site-2 vsite-r2: color(red) vsite-g1:color(green) Site-4 vsite-b4: color(blue) Site-1 vsite-r1: color(red) vsite-b1: color(blue) NameSpace: ns-red vk8s-red - vsite-r1 - vsite-r2 - vsite-r3 POD POD POD vK8s NS: customer-ns-red Tenant: Customer NameSpace: ns-blue vk8s-blue - vsite-b1 - vsite-b2 - vsite-b3 - vsite-b4 vK8s NS: customer-ns-blue NameSpace: ns-green vk8s-green - vsite-g1 - vsite-g2 - vsite-g3 vK8s NS: customer-ns-green POD POD POD POD POD vsite-r3: color(red) POD POD VM POD VM POD vsite-b2: color(blue) vsite-g3:color(green) APP: Red1 APP: Red2 (VM) APP: blue1 APP: blue2 (VM) APP: green
| ©2021 F5 NETWORKS 16 • Volterra Site • Volterraのノードがデプロイされる、物理もしくはクラウド上のロケーション
• Siteの種類 − パブリック・クラウド: AWS, Azure, GCP, Kubernetes (EKS/AKS/GKE) − プライベート・クラウド: VMware, KVM/Libvirt, Kubernetes (Minikube) − 物理: Bare Metal, Volterra IGW − Volterra Regional Edge (RE): Volterraグローバル・ネットワーク上で提供 • Virtual Site • 1つ以上のSiteをグループ化して、設定オブジェクトとして⼀元化 • “ラベル”によってSiteをグループ化 • Virtual Kubernetes (vK8s) • Kubernetes”互換”のAPIを提供: 全てのKubernetes APIリソースをサポートしているわけではない • Namespace毎にvK8sを構成 • 1つ以上のVirtual Siteから構成 Volterra 基本オブジェクト: Site/vK8s
| ©2021 F5 NETWORKS 17 • Health Check • HTTPおよびTCP
Health Check • (HTTP Healthcheck): Path, Timeout値, Interval値, Threahold値等を設定 • Origin Pool • 複数のEndpointをリソース・プールとしてグループ化 − Endpointの種類: Public/Private IP, DNS名, Kubernetes Service名, Consul Service名 etc. − Kubernetes Service名: <servicename.k8snamespace>形式で指定 • Endpointに対するヘルス・チェックやTLS設定を定義 • LoadBalancer設定で利⽤ • HTTP LoadBalancer • HTTP/HTTPS LoadBalancer • Origin Poolを指定 • DNS名を指定 − Volterraに委任されたDNSドメイン Volterra 基本オブジェクト: App Networking
| ©2021 F5 NETWORKS 18 https://registry.terraform.io/providers/volterraedge/volterra/latest/docs Terraform Volterra Provider
| ©2021 F5 NETWORKS 19 Volterraへのアクセス VoltConsoleで発⾏したAPI Certificate (次⾴参照)を指定 VoltConsoleのAPI
Endpointを指定
| ©2021 F5 NETWORKS 20 • VoltConsoleで”General”タブを選択し て、”Credentials“を選択 • ”Create
credentials”をクリック • 各項⽬を⼊⼒後、”Download”ボタンを 押して.p12ファイルをダウンロード API Certificateの作成 (VoltConsole) クレデンシャル名 “API Certificate”を 選択 クレデンシャルの 有効期限を指定 パスワードを⼊⼒
| ©2021 F5 NETWORKS 21 デモ構成: オブジェクト間の関連付け Virtual Kubernetes (vK8s):
t-tsuji-vk8s Virtual Site: t-tsuji-vsite Site: t-tsuji-udf (既存) Site: t-tsuji-vmware (既存) Site: t-tsuji-demo (新規) Label: ves.io/siteName = t-tsuji Origin Pool: juice-shop HTTP LoadBalancer: juice-shop-lb Service Name: svc-juice-shop.t-tsuji Domains: juice-shop.t-tsuji.apac-ent.f5demos.com Deployment: juice-shop Service: svc-juice-shop Namespace: t-tsuji Healthcheck: juice-shop-healthcheck 1. 1. 1. 2. 3. 3. 3. 1.
| ©2021 F5 NETWORKS 22 デモシナリオ 1. vK8sのデプロイ (terraform) •
Siteへのラベル付与 (volterra_modify_site)/Virtual Siteの作成 (volterra_virtual_site)/Virtual Kubernetes (volterra_virtual_k8s)の作成 2. Kubernetes Deployment/Serviceの設定 (kubectl) • DeploymentおよびServiceの作成 3. サービスの公開 (terraform) • Healthcheckの作成 (volterra_healthcheck)/Origin Poolの作成 (volterra_origin_pool)/HTTP LoadBalancer (volterra_http_loadbalancer)の作成
| ©2021 F5 NETWORKS 23
| ©2021 F5 NETWORKS 24 参考情報 本⽇ご紹介したコードは、こちらで公開しております。 https://github.com/ttsuji777/terraform-volterra-samples