AppRunにおけるKubernetes/Knativeの活用事例

-- Views

November 25, 25

スライド概要

さくらのクラウドの「AppRun」におけるKubernetes関連の技術について紹介

AppRun
https://cloud.sakura.ad.jp/lp/apprun/

Kubernetes Meetup Tokyo #72
https://k8sjp.connpass.com/event/373982/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

AppRunにおける Kubernetes/Knativeの活用事例 2025/11/25 Kubernetes Meetup Tokyo #72 さくらインターネット株式会社 八杉隆斗 1

2.

自己紹介 八杉 隆斗(やすぎ りゅうと) 2025/6月より現職(前職: LINEヤフー株式会社) X: @ryuto86 2

3.

今日お話しする内容 AppRunで活用しているKubernetes関連の技術について紹介します さくらのクラウドとAppRunの紹介 AppRunの技術スタック Kubernetesクラスタの構築方法 Knativeの紹介 カスタムコントローラーの活用 運用の苦労 AppRunの今後の取り組み 3

4.

さくらのクラウド サーバーやデータベースを提供する国産のクラウド https://cloud.sakura.ad.jp ガバメントクラウドの提供事業者に選定されている https://www.digital.go.jp/policies/gov_cloud 一般の企業や個人の方ももちろんご利用いただけます! 4

5.

AppRun コンテナイメージを簡単にデプロイできるアプリケーション実行基盤 https://cloud.sakura.ad.jp/lp/apprun/ 任意の言語やフレームワークで開発可能 リクエストベースによるオートスケール(ゼロスケール対応) インフラの管理などの手間がかからない(サーバーレス) 5

7.

AppRunの技術スタック さくらのクラウド(サーバー, ロードバランサなど) Kubernetes, Kubespray, Knative, kubebuilder Terraform, Ansible GitHub Actions, Argo CD Grafana, OpenTelemetry, Fluent Bit, Mackerel PostgreSQL Go(chi, ent) 7

8.

Kubernetesクラスタの構築方法 さくらのクラウドのサーバーを利用 サーバーの構成管理はTerraformとAnsible Kubernetesクラスタの構築にはKubesprayを利用 8

9.

Terraform for さくらのクラウド さくらのクラウドのリソースはTerraformで管理できます https://registry.terraform.io/providers/sacloud/sakuracloud/latest/docs 9

10.

Kubespray Kubernetesクラスタを構築するツール https://github.com/kubernetes-sigs/kubespray Ansibleとkubeadmを利用 高可用性なクラスタの構築 CNIの選択などカスタマイズが可能 10

11.

Kubespray getting started https://kubespray.io/#/docs/getting_started/getting-started inventory/sample/inventory.ini # Installing the cluster $ ansible-playbook -i inventory.ini cluster.yml -b # Adding nodes $ ansible-playbook -i inventory.ini scale.yml -b # Upgrading the cluster $ ansible-playbook -i inventory.ini upgrade-cluster.yml -e kube_version=1.xx.x -b 11

12.

Knative サーバーレスなアプリケーションをKubernetes上で実行・管理する ためのOSSプロジェクト https://knative.dev/ Googleが開発し、現在はCNCFに寄贈されている Cloud Runの第一世代などで採用されている 12

13.

AppRunで活用しているKnativeの機能 Serving オートスケール リクエスト数に応じてPodが増減する バージョン管理とトラフィック分散 ロールバックやカナリアリリース、A/Bテストが可能 AppRunでは使用していないが、Eventing・Functionsもある イベント駆動アーキテクチャや関数のデプロイをサポート 13

14.

Knative getting started https://knative.dev/docs/getting-started/ $ brew install kind kubectl $ brew install brew install knative/client/kn $ brew install knative-extensions/kn-plugins/quickstart $ kn quickstart kind $ kn service create hello --image ghcr.io/knative/helloworld-go:latest \ --port 8080 --env TARGET=World $ curl http://hello.default.127.0.0.1.sslip.io Hello World! 14

15.

カスタムコントローラーの活用 Podの稼働時間の計測に利用(従量課金対応) メトリクスやログだけでは稼働時間の集計に課題があった metadataやspecなど細かい情報が必要 欠損の対策 Podのcontrollerを実装し、reconcileでstatusを記録 15

16.

Kubebuilder getting started https://book.kubebuilder.io/quick-start $ brew install kubebuilder $ kubebuilder init --domain my.domain --repo my.domain/guestbook $ kubebuilder create api --group webapp --version v1 --kind Guestbook INFO Create Resource [y/n] INFO Create Controller [y/n] $ make manifests $ make install $ make run 16

17.

大変なところ KubernetesやKnativeの運用の苦労 各種バージョンの更新 Kubespray, Kubernetes, Knative, コンテナランタイム, etc.. セキュリティ対策 脆弱性やマルチテナント対応 監視やキャパシティプランニング メトリクスの収集やリソースの見積もり 17

18.

AppRunの今後の取り組み 正式版のリリース シングルテナントのプラン提供 Docker Hubなどのコンテナレジストリに対応 シークレットマネージャ対応 マルチコンテナ対応 マニュアル改善 その他UX改善 などなど.. 18

19.

おわり ご清聴ありがとうございました! 19