Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

DockerからKubernetesへのシフト

Cloud Native Kansai #2 でのLT登壇資料です

  • Sé el primero en comentar

DockerからKubernetesへのシフト

  1. 1. Dockerから Kubernetesへのシフト Masaki Nakayama #2
  2. 2. KAGOYA JAPAN Twitter: @nakayamam2 Community: RancherJP, CNCF Kansai Masaki Nakayama
  3. 3. コンテナ使ってますか?
  4. 4. コンテナ使ってますか? ● Docker/docker-compose ● Kubernetes ● 実はSwarm
  5. 5. サービス規模や用途と コンテナ・ホストサーバー構成
  6. 6. 1 Service on 1 Host ● DockerfileによるIaC ● 冪等性・ポータビリティ web db 80, 443 port
  7. 7. Multi Services on 1 Host ● DockerfileによるIaC ● 冪等性・ポータビリティ + ホストの収容効率UP web db web db service-a.com service-b.com nginx-proxy
  8. 8. Multi Services on Multi Host ● DockerfileによるIaC ● 冪等性・ポータビリティ ● ホスト収容効率UP + リソースがスケーラブル + サービスの自動復旧 + あらゆるリソース要件のIaC + 充実したエコシステム …and more
  9. 9. Multi Services on Multi k8s Cluster
  10. 10. ● 今の所はDocker/docker-composeで 大方やりたいことは適っている ● サービスが育ってきた時に柔軟にスケー ルしていきたい ● 現状、開発者はdocker使いが多い 状況に応じた構成
  11. 11. DockerからKubernetes へシフトするための手段が あってもいいんじゃない の?
  12. 12. Docker ⬇ Kubernetes? ? ● Kubernetesのアーキテクチャやコン ポーネントの理解 ● docker-compose.yamlをKubernetesの 各Kubernetesリソースへの落とし込み
  13. 13. Compose on Kubernetes
  14. 14. Compose on Kubernetes ● https://github.com/docker/compose- on-kubernetes ● Docker社製のOSSの一つ ● 2018年12月のDockerCon EUで発表 ● Docker Swarmのdocker stack deploy でdocker-compose.ymlをもとにk8sへ デプロイ(k8sリソースの自動作成)を 行ってくれるツール ● 類似のOSSとしてkomposeというのもあ るが、Docker社製のため、こちらの方が よりDockerネイティブな使い心地(という かdocker swarmまんま)
  15. 15. 結構活発に動いています
  16. 16. どこで使えるのか 最初からインストール済(Engine 18.09以降) ● Docker for Mac/Windows ● Docker EE 要インストール作業 ● Azure AKS ● GKE ● Microk8s ● Minikube    EKS...
  17. 17. ほら、 あなたの端末でも
  18. 18. https://github.com/docker/compose-on-kubernetes/blob/master/docs/architecture.md
  19. 19. ● stack情報管理用のetcdをデプロイ(要 helm) ● cluster-admin ロールの取得 ● Compose on Kubernetesをデプロイ 各k8sクラスターへの構築方法は下記参照 https://github.com/docker/compose-on-kub ernetes#deploying-compose-on-kubernetes 任意の k8sクラスターで 使うためには
  20. 20. 実際にWebアプリケーションを デプロイしてみる
  21. 21. ● GKEにcompose on kubernetesとetcdはデプロイ済 ● サンプルアプリとして、knowledgeというOSSをデプロイする 前提
  22. 22. knowledge ● https://information-knowledge.support-project. org/ja/ ● チーム内でナレッジ共有できる(Qiita:Team的なも の) ● 弊社チーム内では新規投稿をRocket.Chatに webhook通知で飛ばして社内Qiita的に使っていま す(どちらもdocker-composeで動かしています)
  23. 23. docker-compose.yml version: '3.6' services: kw-app: image: koda/docker-knowledge:latest volumes: - type: volume source: app-data target: /root/.knowledge ports: - 8080:8080 kw-db: image: postgres:9.6.5 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: password POSTGRES_DB: knowledge_production PGDATA: /var/lib/postgresql/data/db volumes: - type: volume source: db-data target: /var/lib/postgresql/data volumes: app-data: db-data:
  24. 24. deploy
  25. 25. Pod, Service
  26. 26. Statefulset, PV, PVC
  27. 27. 注意点 ● スライド作成時点ではDocker CLIはカスタムビルドしないとgcp対応できてなかった ● kubectlコマンドでリソース削除を試みても、stack情報が専用のetcdに残されているため、それに合わせ た数で自動復旧してくる。つまり、お掃除の時はあくまでもdocker stack rm ● Docker-composeファイルの文法はdocker swarmに依存しており、depends_onやrestartなどは無視さ れる
  28. 28. まとめ ● 状況に応じてdockerとKubernetsを使い分ける・シフトする選択肢があっても良い ● 一つの手段としてCompose on Kubernetes便利ですよ! ● ただし、Kubernetesを知らなくていいということではない ● 逆にdockerでこう書いていたものがそうなるのか、といったKubernetes勉強の題材にもいかがでしょう
  29. 29. Thanks! #2

×