Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kubernetesへのデプロイメント 〜進化の過程と展望〜 後半パート

Kubernetesへのデプロイメント 〜進化の過程と展望〜 後半パート

「Kubernetes Meetup Tokyo #12 」(https://k8sjp.connpass.com/event/90631/) のトーク「Kubernetesへのデプロイメント〜進化の過程と展望〜 」の後半パートです。

前半はこちら: https://speakerdeck.com/atk/kuberneteshefalsedepuroimento-jin-hua-falseguo-cheng-tozhan-wang-qian-ban-pato

#k8sjp

KUOKA Yusuke

July 11, 2018
Tweet

More Decks by KUOKA Yusuke

Other Decks in Technology

Transcript

  1. 7 デプロイパターン毎に一つ汎用Chartをつくっておく - Deployment用に一つ汎用Chart helm upgrade --install ./mycharts/app --set image=myimage

    --set iam-role=myrole --set secret.env.FOO=BAR --set secret.file."/path/to/file"="myfile" 汎用Chartパターン
  2. 9 - 他のツール・テンプレートを使う - kustomize話題ですね - helm pluginsやrelease履歴などの便利機能はなくなりますが、 使ってないならいいでしょう -

    それでもあくまでHelmにこだわりたい場合 - Helm v3以後に代替テンプレートエンジン実装(!) 対応できない場合は…
  3. 12 - kubectl (apply, apply --prune, etc) - helm -

    kapitan - keel - skaffold - deis(fork→hephy) - kustomize(new!) - ※それぞれスコープとスイートスポットが異なる Helm以外のツール
  4. 20 - プラットフォームチーム&サービスチーム - Control: Platform team controls Service team

    that controls app deployments プラットフォームチームがデプロイメントを制御する - Inversion of Control: Platform team builds a framework that controls deployments. Service team injects anything necessary サービスチームがデプロイメントを制御する - これを可能にするフレームワーク What to Control?
  5. 23 インターフェース例: appctl - appctlというcliアプリが必ずプロジェクトルートにあること - ./appctl plan --env stagingで変更チェック

    - 変更あればexit status 2を返すこと - ./appctl apply --env stagingでDesired Stateを変更 実装例
  6. 25 #!/usr/bin/env var parameters: - name: env default: "staging" tasks:

    - name: plan script: | kustomize build overlays/{{ get "env" }} > compiled.yaml ./kubediff compiled.yaml - name: apply script: | kustomize build overlays/{{ get "env" }} | kubectl apply -f - 実装例
  7. 29 - Spinnaker - CircleCI, ConcurseCI, Jenkins(Blue Ocean)のようなパイプライ ンが一級市民のCIシステム -

    CorefreshのようなKubernetesデプロイパイプライン専門の SaaS - など 予想される展開
  8. 31 • 始まり:Kubernetesとkubectl、helmという定番ツールで知見・実績を貯める(freeeはい まここ) ◦ SREヨットがリード • 移行期:LinuxやKubernetesより上のレイヤーで、サービスチームが自由にツールを 選び始めても運用がまわる ◦

    サービスヨットがリード、SREヨットはフレームワーク開発(Hiring! • 成熟期:組織の成長、OSSへのお返し ◦ ヨットの枠をこえ、Kubernetesやサービスのオーナーシップよりもっと高次の課題解 決へ 今後の展望