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

Kubernetes導入に備えたGitOpsなCI/CDを構築する/rakus_meetup_...

txkxyx
June 02, 2022
1k

 Kubernetes導入に備えたGitOpsなCI/CDを構築する/rakus_meetup_202206

2022/6/1(水)19:00〜 【ラクスMeetup】技術刷新の課題取り組み - 共通基盤/k8s/技術ロードマップ -での発表資料です。

txkxyx

June 02, 2022
Tweet

Transcript

  1. #RAKUSMeetup 自己紹介 • Job ◦ 技術推進PJのリーダーやメンバー (先行技術検証) ◦ 横断機能開発 (要件定義〜開発)

    • Career ◦ Java、Python、AWS、Vue.js ◦ Java研修講師、資格対策本の執筆 ◦ 2020年〜株式会社ラクスに所属 2
  2. #RAKUSMeetup Kubernetesを導入後のCI/CD • IaCの特徴を生かしたCI/CDを構築し直す必要がある ◦ 現状はJenkinsやGitLabを利用したCI Ops(CI + CD)に近い状態 ◦

    候補となるのがGitOps 9 開発者 Code Repository CI/CD code push run CI/CD deploy deploy 宣言通りの状態になっているか把握しにくい
  3. #RAKUSMeetup ラクスでのツールの選定案 • Code Repository : GitLab • CI : GitLab(GitLab Runner) • Container

    Registry : GitLab Container Registry • Config Updater : なし(CI上で実行) • Manifest Repository : GitLab • Deploy Operator : ArgoCD 16
  4. #RAKUSMeetup 17 開発者 Code Repository CI Pipeline Container Registry Config

    Repository 運用者 Deploy Service ①コミット ②Pipelineを実行 ③コンテナイメージを push ④イメージの変更を更新 ⑤更新を承認 ⑥リポジトリの更新を検知 ⑦デプロイ Service Deployment Kubernetes Cluster
  5. #RAKUSMeetup CI Pipeline • GitLab CIを選定 ◦ 社内標準ツールであり既にノウハウがあるため ◦ GitLab

    Container Registryと組み合わせることで、 コードリポジトリ・コンテナレジストリ・CI環境をまとめて管理できる • その他候補ツール ◦ Tekton ▪ GoogleのKnativeからCI/CDを切り離したツール 18
  6. #RAKUSMeetup CD Pipeline • ArgoCDを選定 ◦ GitOpsの原則を実現するk8s環境のCDツール ◦ Gitリポジトリの状態に合わせて差分検出により自動デプロイを行う ◦

    GUIが整備されており、クラスターの可視化や画面からのデプロイが可能 • その他候補ツール ◦ Flux ▪ GitOpsを提唱したWeaveworksのCDツール ◦ JenkinsX 19