Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Spinnakerを使ったk8s自動化

796 views

Published on

6/15 Kubernetes+Spinnaker勉強会@沖縄【沖縄オープンラボ・フォーラム】発表資料です。

Published in: Technology
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ..............ACCESS that WEBSITE Over for All Ebooks ................ ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ..............ACCESS that WEBSITE Over for All Ebooks ................ ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Spinnakerを使ったk8s自動化

  1. 1. Spinnakerを使った Kubernetesの自動化
  2. 2. • 氏名�:�山本�聡 • 所属�:�コムシス情報システム(株) • 職種�:�サーバ寄りのインフラエンジニア • 現在�:�日本仮想化技術株式会社さんにて活動中 自己紹介
  3. 3. 活動紹介 http://tech.virtualtech.jp/
  4. 4. Kubernetes
  5. 5. • n氏「抽象化基盤」 • Kubernetesはコンテナの オーケストレーター • MasterがコンテナをWorker へ動的に配置する Kubernetesおさらい
  6. 6. • デプロイはPod という単位で行 われる • コンテナ及びボ リュームの数は 定義によって変 わる Pod
  7. 7. Services • アプリケーションの公開はサー ビスを使って行う • ノードダウン等によりPodが 再生成された場合、PodのIP は変化するため、代表IPを 通じてアクセスする
  8. 8. Scale • サービス化されたPodは Replica数を変更するだけ でスケールできる • スケールされたPodにはサー ビスが持つロードバランサに よってネットワークトラフィッ クが分散される scale scale
  9. 9. Healing • Nodeダウン等Podが �落ちたら自動回復
  10. 10. Continuous Delivery • 継続的デリバリー • DevOpsソフトウェア開発手法の一つ • 実行基盤がコンテナになることにより、環境差異は吸収され、 アプリケーションのDeployは容易に • Deployが容易になれば頻度を上げることもできる
  11. 11. Continuous Delivery
  12. 12. Continuous Delivery • Blue/Green Deploy • Rolling Deploy • Canary Deploy • Rollback • Integration test • Deploy承認フロー • 複数の異なる環境へのDeployサポート Deploy自動化の実装は色々と大変
  13. 13. K8sのdeploy課題
  14. 14. K8sのdeploy課題 • Podを起動するだけであれば �- kubectl create -f nginx.yaml • Deploymentが作成 • Nodeダウン等Podが �落ちたら自動回復
  15. 15. K8sのdeploy課題 • Podの起動だけではアプリケーションを使えない Serviceを使用して公開する apiVersion: "v1" kind: "Service" metadata: finalizers: [] name: "serve-prod" namespace: "default" ownerReferences: [] spec: clusterIP: "10.152.183.118" externalIPs: [] externalTrafficPolicy: "Cluster" loadBalancerSourceRanges: [] ports: - name: "http" nodePort: 32230 port: 80 protocol: "TCP" targetPort: 8000 selector: load-balancer-serve-prod: "true" sessionAffinity: "None" type: "NodePort" status: loadBalancer: ingress: []
  16. 16. K8sのdeploy課題 • アプリケーションダウン ≠ Podダウン LivenessProbe, ReadnessProbeを使用 spec: containers: - args: [] command: [] env: [] envFrom: [] image: "index.docker.io/yamamotosatoru/ spin-kub-demo:v0.0.11-22" imagePullPolicy: "IfNotPresent" name: "yamamotosatoru-spin-kub-demo" ports: - containerPort: 8000 name: "http" protocol: "TCP" readinessProbe: failureThreshold: 3 httpGet: httpHeaders: [] path: "/" port: 8000 scheme: "HTTP" periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1
  17. 17. K8sのdeploy課題 • 諸々yamlに記述してkubectl (結構書く事は多いぞ) apiVersion: "v1" kind: "Pod" metadata: finalizers: [] generateName: "serve-dev-v043-" labels: app: "serve" cluster: "serve-dev" load-balancer-serve-dev: "true" replication-controller: "serve-dev- v043" serve-dev-v043: "true" stack: "dev" version: "43" name: "serve-dev-v043-kstr8" namespace: "default" ownerReferences: - apiVersion: "extensions/ v1beta1" kind: "ReplicaSet" blockOwnerDeletion: true controller: true name: "serve-dev-v043" uid: "62947e8c-69f1-11e8- afed-e4115b9a4134" spec: containers: - args: [] command: [] env: [] envFrom: [] image: "index.docker.io/ yamamotosatoru/spin-kub- demo:v0.0.11-22" imagePullPolicy: "IfNotPresent" name: "yamamotosatoru-spin- kub-demo" ports: - containerPort: 8000 name: "http" protocol: "TCP" readinessProbe: failureThreshold: 3 httpGet: httpHeaders: [] path: "/" port: 8000 scheme: "HTTP" periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: {} terminationMessagePath: "/dev/ termination-log" terminationMessagePolicy: "File" volumeMounts: …………… yamlの管理? デプロイ毎に コマンド? デプロイの記録とか どうしよう
  18. 18. K8sのDeploy課題 • 基本的にkubectlコマンドを使う • yamlファイルを書いてDeploy Deployを安全に自動化ができると嬉しい
  19. 19. Deployに関する希望 • Deploy自動化の実装を容易に • 安全なDeploy自動化の実現
  20. 20. Spinnaker概要 • スピネーカー� (ヨット全面の丸い帆↓) • 継続的デリバリ(Continous Delivery) �を実現するプラットフォーム • Netflixが開発 (Googleも後にjoin) • パイプラインを使用しdeploy制御
  21. 21. Spinnaker概要 • Pipeline画面
  22. 22. Spinnaker概要 Pod・LB等の情報取得 パイプラインを用いたDeploy
  23. 23. SpinnakerでCI/CD Code Push Image Build Pipeline Deploy
  24. 24. SpinnakerでCI/CD • githubにcodepush
  25. 25. SpinnakerでCI/CD • codepushをトリガにbuild
  26. 26. SpinnakerでCI/CD • Spinnakerパイプラインが作動
  27. 27. SpinnakerでCI/CD • kubernetesへDeploy
  28. 28. SpinnakerでCI/CD ビルド完了までしばらくお待ち下さい その間にスライドの続きを…
  29. 29. Cluster • SpinnakerのCluster �- 同じイメージから生成されたPodの集まり �- K8sのDeployment, Replicaset �- Podを・どこに・どれだけ�配置するか
  30. 30. Cluster • Cluster Loadbalancer Server Group
  31. 31. Cluster • Cluster画面
  32. 32. Cluster Pod・LB等の情報取得
  33. 33. Cluster • SpinnakerのCluster �- Podが・どこに・どれだけ�配置されているかわかる
  34. 34. Cluster Podを消してみると?
  35. 35. • Podはオートヒーリングによって再生成 • SpinnakerでClusterの状態が一覧できる Cluster
  36. 36. • 例えばポッドがたくさんある場合 Cluster
  37. 37. Pipeline • Pipeline �- Clusterを・何を起点に・いつ�動かすか
  38. 38. Pipeline • Pipeline
  39. 39. SpinnakerでDeploy パイプラインを用いたDeploy
  40. 40. Pipeline • Pipeline画面 • ステージを組み合わせて動作させる
  41. 41. ステージ設定 • Pipelineが動作する起点をどうするか
  42. 42. ステージ設定 • Clusterに対してどのようなアプローチを行うか
  43. 43. ステージ設定 • Deploy後の処理を設定
  44. 44. SpinnakerでCI/CD そろそろビルドできたかな? 実際にパイプラインを動かしていきます
  45. 45. Pipeline設定 ① イメージ更新を契機とし、デベロップ環境へDeploy ② ①の完了を契機とし、人間へ次のパイプライン実行可否を問 い合わせる ③ ②のパイプライン承認を契機とし、①で使用したイメージをプ ロダクション環境へDeploy
  46. 46. Pipeline設定 ① イメージ更新を契機とし、デベロップ環境へDeploy ② ①の完了を契機とし、人間へ次のパイプライン実行可否を問 い合わせる ③ ②のパイプライン承認を契機とし、①で使用したイメージをプ ロダクション環境へDeploy
  47. 47. Pipeline設定 ① イメージ更新を契機とし、デベロップ環境へDeploy ② ①の完了を契機とし、人間へ次のパイプライン実行可否を問 い合わせる ③ ②のパイプライン承認を契機とし、①で使用したイメージをプ ロダクション環境へDeploy
  48. 48. Pipeline設定 ① イメージ更新を契機とし、デベロップ環境へDeploy ② ①の完了を契機とし、人間へ次のパイプライン実行可否を問 い合わせる ③ ②のパイプライン承認を契機とし、①で使用したイメージをプ ロダクション環境へDeploy
  49. 49. Rollback Deploy後に不具合!? Rollback
  50. 50. Rollback • 動作実績のあるClusterへRollback
  51. 51. • Before Rollback Rollback Loadbalancer Server Group
  52. 52. • After Rollback Rollback Loadbalancer Server Group
  53. 53. Spinnakerメリット • Deploy自動化を比較的容易に実装できる • Clusterの状態を可視化し、サービスが健全であるかを把握で きる • PipelineによってDeployの安全性を高め、進捗を管理できる • Rollbackも安全に実施できる
  54. 54. Spinnakerの課題 • Pipelineは便利だが、融通がきかない場面も �→Pipelineを正しく動かす為の労力どれくらい許容する? • GUI操作が基本 �→将来的にはyaml等で管理できるようになるらしい �→n氏「yaml書いてkubectlでよくないです?」 • マシンリソース消費が多い
  55. 55. 今後 • Spinnakerを適用するべき環境と、やめておくべき環境の見極 め方法を探る • 他のCDツール検証・比較 • ChaosMonkeyをSpinnakerと連動させて動かす
  56. 56. ご清聴 ありがとうございました

×