# modoki-k8s ### PaaS on Kubernetes Tsuzu(@Wp120_3238/@tsuzu_misw) --- <div id="left"> <img src="https://i.imgur.com/OozSWw9.jpg"> </div> <div id="right"> - Handle: Tsuzu - Name: TSUCHIYA Tsuzuki - Twitter: [@Wp120_3238](https://twitter.com/Wp120_3238), [@tsuzu_misw](https://twitter.com/tsuzu_misw) - GitHub: [cs3238-tsuzu](https://github.com/cs3238-tsuzu) - Interests: Continuous Delivery, Service Mesh, Monitoring - Roles in MIS.W: SysAd, Web </div> --- ## Agenda - PaaSとは - modoki-k8sとは - デモ - modoki-k8sの仕組み - TODO - まとめ --- ## What is PaaS? - Platform as a Service - アプリケーションの公開、運用、監視などを行ってくれるサービス - ドメイン割当、証明書割当、データベースのセットアップ、など - コードを書く→PaaSに投げる - Popular PaaS: Heroku/GAE --- ## modoki-k8s ![](https://i.imgur.com/TjwXeJM.png) - https://github.com/modoki-paas/modoki-k8s - Kubernetesクラスタ上で動くPaaS - modokiのKubernetes版 - Written in Go - WIP(まだDockerイメージ単位でのデプロイのみ) ---- ## WHY - サークルのk8sクラスタを有効活用したい - YAMLを書くハードルを下げたい - Kubernetesを意識させたくない --- ## デモ --- ## 構成図 ---- ![](https://i.imgur.com/upiyCGQ.png) Note: 黄色い矢印はリクエストの流れ 通信は全てgRPC ingress-nginxで外部からのリクエストを受ける Auth Serverでトークンを検証し各ユーザの持つ権限をメタデータに付与する APIServerがリソースの管理を担当していて、アプリケーション関連はAppで処理される。 デプロイの際、YAMLerに対してパラメータを渡してデプロイするためのYAMLを生成してもらう KubernetesのAPI serverに対してそのYAMLを適用するとアプリケーションが公開 ---- ## 使った技術一覧 - Kubernetes - ingress-nginx, cert-manager - gRPC - client-go - RBAC --- ## TODO - User/Org周りのAPI実装 - OpenID Connectによる認証の実装 - DBやその他ミドルウェアのプラグイン - MySQL/PostgreSQL/Redis/oauth2_proxyなど - Webコントロールパネル実装 - Envoy導入 - Cloud Native Buildpack対応 ---- ### 一般的なKubernetesへのデプロイの流れ ![](https://i.imgur.com/Os7RexX.png) ---- ### Cloud Native Buildpack - CNCF Sandboxプロジェクト - 勝手に言語を識別してDockerイメージを作ってくれる - まとめて設定を適用しやすい --- ## まとめ - Kubernetesで動くPaaSを開発中 - 内部的にはYAMLを自動生成してApplyしてるだけ - 欲しい機能、PR、Issue、共同開発者募集中です <style> .reveal section img { background:none; border:none; box-shadow:none; } #left { left:-8.33%; text-align: left; float: left; width:30%; z-index:-10; } #right { left:31.25%; top: 75px; float: right; text-align: left; z-index:-10; width:70%; } </style>
{"metaMigratedAt":"2023-06-15T03:13:02.460Z","metaMigratedFrom":"YAML","title":"modoki-k8s","breaks":true,"slideOptions":"{\"showNotes\":false}","contributors":"[{\"id\":\"4e745644-ba64-4a37-b331-3743a1f87824\",\"add\":2352,\"del\":199}]"}
    719 views