Slide 1

Slide 1 text

Digital Oceanで始める お手軽Cloud Provider生活 inductor

Slide 2

Slide 2 text

じこしょうかい apiVersion: inductor.apps/v1 kind: Person metadata: name: “Kohei Ota” Twitter: “@_inductor_” GitHub: “@inductor” org: “HPE” role: “Solutions Architect” community: “CNCF Ambassador, CloudNative Days organizer, Docker Meetup Tokyo organizer” spec: replicas: 1

Slide 3

Slide 3 text

DO上でSelf hosted Kubernetesを作る

Slide 4

Slide 4 text

モチベーション ● CKS落ちた(しんどい ● クラスターのセキュリティ評価用にkube-benchするのに気軽に遊べる環境がほし い ● パラメーター好きにいじれてCKSと同じkubeadmベースでついでにシュッといい感 じにLBとかVolume触れるやつなんかないかな~~~? → それを満たすやつを作った

Slide 5

Slide 5 text

https://github.com/inductor/ terraform-do

Slide 6

Slide 6 text

Digital Oceanについて

Slide 7

Slide 7 text

Digital Oceanについて ● ニューヨークに拠点を構えるクラウドプロバイダー ● IaaSを中心とした「便利なVPS」的な機能を提供するクラウドサービス ○ 日本だとConoHaとかに近い感じの機能が多いかも? ● マネージドKubernetesサービスを提供するほか、KubeConでのスポンサー、技術 ブログでの発信など外部での活躍も多い ● 日本にリージョンはなくフォーラムでは何年も前から希望する声も多いがまだ実現 されていない

Slide 8

Slide 8 text

Digital Ocean & Kubernetes ● マネージドKubernetesサービス ○ DO Droplets(IaaS)をワーカーとしたクラスターが作れる ○ Node poolはある(異種混合なノード構成が作りやすい ) ○ Regional Clusterはない(シングルゾーンのみ ) ○ 新しいバージョンへの追従がはやい! ○ Type: Load BalancerとStorageClassがDOのマネージドサービスと連携して使える シンプルな構成で動かすには便利

Slide 9

Slide 9 text

Cloud Provider(Cloud Controller Manager) ● クラウドとKubernetesの世界をつなげるためのコンポーネント ○ Nodeリソースとクラウドの IaaS ○ Serviceリソースとクラウドのネットワーク、マネージド LB ● in-tree providerとしてAWS、GCPなどが実装済み ○ 現在新しいCloud Providerを使う場合は外部プロバイダとして実装してクラウドコントローラーを動 かせばよい ● Digital OceanのプロバイダはOSSで公開 ○ https://github.com/digitalocean/digitalocean-cloud-controller-manager ○ CSIはCSIプラグインとして別途提供 ● ↑とkubeadmを組み合わせて、LBとPVCが使えるクラスターをSelf Hostedで作る

Slide 10

Slide 10 text

クラスター構成 ● 2Core 4GB master x 1 ● 4Core 8GB worker x 3 ● DO DropletsはパブリックIP、プライベートIPが1つずつ付与されるので、ノード間通 信は内部NW ● Ansibleとか触る時間がなかったのでTerraformとShell scriptで実装 ● Cloud ControllerとCSIを入れたらだいたいマネージドKubernetesと同じような構成 で作れて楽しかった

Slide 11

Slide 11 text

デモ

Slide 12

Slide 12 text

まとめ ● DOはVPCとインフラだけのシンプルな構成なので入門しやすい ● クラウドコントローラーの実装も全部OSSで分割されているので困った時に読みや すい ● Terraformで作って潰すのがかんたんにできるのでkube-benchの検証とかCKSの 勉強のついでに最近遊びはじめました(おうちにラックがないので・・・