狠狠撸
Submit Search
骋颈迟翱辫蝉で碍耻产别谤苍别迟别蝉の惭补苍颈蹿别蝉迟管理
?
12 likes
?
6,025 views
S
Shinya Sasaki
Follow
Cloud Native Kansai #01
Read less
Read more
1 of 32
Download now
Downloaded 16 times
More Related Content
骋颈迟翱辫蝉で碍耻产别谤苍别迟别蝉の惭补苍颈蹿别蝉迟管理
1.
2019.2.1 Alpaca Japan Shinya Sasaki Cloud
Native Kansai #01 骋颈迟翱辫蝉で碍耻产别谤苍别迟别蝉の惭补苍颈蹿别蝉迟管理
2.
Who? ? 名前 ○ 佐々木
真也 ? 所属 ○ AlpacaJapan 株式会社 ■ Head of Infrastructure Engineering 2
3.
Alpaca Japan 3 3 3 金融
機械学習 がテーマのスタートアップ 主な提供サービス プロダクト ? 銀行?証券会社?信託銀行を中心に金融機関向けのトレーディングAI技術で多くの実績を保持 「相場予測モデルの構築」のプロジェクト で協業 「AlpacaSearch for kabu.com」 相互に類似している銘柄のチャートパ ターンを表示 「AI外貨予測」「AI外貨積立」 指定した外貨の為替の変動を予測し、予 測した日に一定金額を積立可能 主要マーケットの短期予 測をリアルタイムで表示 弊社の大規模データ処 理の技術やディープラー ニング技術を活用したア プリケーション
4.
4
5.
5
6.
6 kubectl get nodes kubectl
apply -f sample-pod.yaml kubectl describe pods ...
7.
7 P.424 実際に運用を行う際には手動での kubectlコマンドの実行は、可能な限 り避けるべきです。
8.
8 CI/CD Pipeline
9.
現在のCI/CD Pipeline 9 ステージング 本番 git flow
release PR マージ イメージ作成 同じイメージを使うECR 反映 反映 タグ付与 release.20181103 ステージング クラスタ 本番 クラスタ
10.
現状の課題 ? k8s Manifestの軽微な変更でもビルドが走る ?
Gitの権限 ? マージ権限がないと都度レビュー、マージ依頼 ? 外部(CircleCI)にk8sの強い権限が必要 ? リポジトリのManifest = 現在の設定 を保証できない ? Rollbackしにくい 10
11.
GitOps? ? WeaveWorks社が提唱しているk8sの継続的デリバリ (Continuous Delivery)手法 ?
Gitでバージョン管理されたManifestを Single Source of Truth とする 11
12.
GitOpsをやるために ? ManifestのGit管理 ? ManifestをGitでバージョン管理する ?
オペレーションもGitで行う ? Pull Requestベース ? CIとCDの分離 ? アプリケーションコードのリポジトリとManifestのリポジトリを分ける ? 差分の検知、コンバージェンス ? Git上のManifestと稼働環境の差を検知 12
13.
CIOps と GitOps ?
CIツールがKubernetes APIにアクセスできるようにしないといけない ? セキュリティリスクになる ? クレデンシャルを管理しないといけない ? 境界がない 13 Kubernetes anti-patterns: Let's do GitOps, not CIOps! https://www.weave.works/blog/kubernetes-anti-patterns-let-s-do-gitops-not-ciops CIOps
14.
CIOps と GitOps ?
k8sクラスタ内外で境界ができる ? configとcodeのリポジトリを分けることで、お互いの変更に影響を受けない 14 Kubernetes anti-patterns: Let's do GitOps, not CIOps! https://www.weave.works/blog/kubernetes-anti-patterns-let-s-do-gitops-not-ciops GitOps
15.
GitOpsの動作 15 https://www.weave.works/blog/gitops-high-velocity-cicd-for-kubernetes 1.アプリケーションの コード変更
16.
GitOpsの動作 16 https://www.weave.works/blog/gitops-high-velocity-cicd-for-kubernetes 2.コンテナのビルド、レジストリ へのプッシュ
17.
GitOpsの動作 17 https://www.weave.works/blog/gitops-high-velocity-cicd-for-kubernetes 3.イメージの 情 報
を 修 正 して、 Manifest用リポジトリへPR
18.
GitOpsの動作 18 https://www.weave.works/blog/gitops-high-velocity-cicd-for-kubernetes 4.PRをマージ
19.
GitOpsの動作 19 https://www.weave.works/blog/gitops-high-velocity-cicd-for-kubernetes 5.差分を検知してデプロイ
20.
GitOps Tools ? Weave
Flux ? Argo CD ? JenkinsX 20
21.
Argo CD 21
22.
Argo CDの選定理由 ? WebUIがある ?
複数人での運用を考えると結構大事 ? CLIもある ? 簡単にできた ? https://github.com/argoproj/argo-cd/blob/master/docs/getting_st arted.md 22
23.
Argo CDのよさそうなところ ? 複数フォーマットに対応 ?
ksonnet applications ? kustomize applications ? helm charts ? Plain directory of YAML/json/jsonnet manifests ? 削除に対応 ? 自動同期にも対応 23 ※ 他が対応していないということではないです
24.
Argo CD 差分検知 24
25.
Argo CD 差分の表示 25
26.
Argo CD 同期実行 26
27.
Argo CD 同期状態 27
28.
現状の課題(再掲) ? k8s Manifestの軽微な変更でもビルドが走る ?
Gitの権限 ? マージ権限がないと都度レビュー、マージ依頼 ? 外部(CircleCI)にk8sの強い権限が必要 ? リポジトリのManifest = 現在の設定 を保証できない ? Rollbackしにくい 28
29.
現状の課題(再掲) ? k8s Manifestの軽微な変更でもビルドが走る →
CIとCDは分離されている ? Gitの権限 ? マージ権限がないと都度レビュー、マージ依頼 → 別レポジトリなので、権限も別管理 ? 外部(CircleCI)にk8sの強い権限が必要 → k8sにアクセスするのはクラスタ内なので不要 ? リポジトリのManifest = 現在の設定 を保証できない → 差分を検知 ? Rollbackしにくい → 前のバージョンに戻せばいい 29
30.
GitOps導入後の課題 ? Secretの扱い ? GitHubにはあげれない ?
デプロイするのがArgo CDになるので、別インストールが必要なソリュー ションは使えない ? kubesecとか ? CRD使うSealed-Secretsならできる? ? AWS Secret Managerに保存して、手動で作成することにした ? Branch運用 ? 複雑になりそう??? 30 kubectl create -n stg secret generic myapp-prod-secret --from-literal=DB_PASSWORD=$(aws secretsmanager get-secret-value --secret-id prod/myapp/db --region ap-northeast-1 | jq --raw-output '.SecretString' | jq -r .password)
31.
まとめ ? 運用環境にkubectlするのは中学生まで ? CI/CD
Pipelineをつくりましょう ? k8s ManifestもGitで管理しましょう ? GitOpsはCIとCDを分ける考え方 ? GitOpsで運用課題が解決されるかも??? 31
32.
32 We're hiring!! https://www.wantedly.com/companies/alpacadb ● Web
Engineer ● Infrastructure Engineer ● ML/AI Engineer ● Fintech Engineer
Download