Save 37% off PRO during our Black Friday Sale! »

Girlab Operatorと夢見るGitlab自動化の旅

928b1395afedebb5ee48d44ab917c5f1?s=47 RyuSA
October 15, 2021

Girlab Operatorと夢見るGitlab自動化の旅

Gitlab OperatorはKubernetes上にGitlabをデプロイし、Day-2 Operationの自動化を行なってくれるKubernetes Operatorです

詳細:https://ryusa.hatenablog.com/entry/2021/10/09/225436

928b1395afedebb5ee48d44ab917c5f1?s=128

RyuSA

October 15, 2021
Tweet

Transcript

  1. - さぁDay2 Operationをはじめよう- RyuSA Gitlab Operatorと夢⾒るGitlab⾃動化の旅

  2. RyuSA Financial Service Engineer Java & SpringBoot / Typescript &

    React Docker / Kubernetes : RyuSA : ryusa_eng
  3. 注意 Gitlab Operatorは2021年9⽉時点でv0.1.0が初リリースされました 本番導⼊は、もうすこーし待った⽅が良いでしょう🤔

  4. Gitlabの Day-2 Operation がつらい😱

  5. • Gitlabに要求される”⾼可⽤性” • 意思決定の場として使われるため、Gitlabが落ちると意思決定が滞る • 継続的開発(CI)を実現するために、Gitlabが落ちると開発が滞る • 継続的デリバリー(CD)を実現するために、Gitlabが落ちるとデリバリーが滞る → いまやGitlabが落ちると、サービス/SLAへの影響が出る可能性がある🤔

    • Gitlabの多様な機能への”拡張” • Gitlabの機能拡充により、開発が効率がさらに良くなっていく • 開発者「Gitlab 14の新機能が素晴らしい︕明⽇にでもGitlab(Gitlab 11系)アップグレードしてくれ」 • 管理者「っ……︕︕開発者の⼈っていつもそうですよね︕管理者のことなんだと思って(ry」 → ますますGitlabを迅速にアップグレードできる体制が必要に🤔 加速するGitlab管理者への要求
  6. Gitlabと愉快な仲間たち

  7. Gitlabと愉快な仲間たち 定期的なデータのバックアップ HA構成 Leader-Follower構成 証明書の更新 などなど。。。

  8. 運⽤負荷、なんとかしたいですよね

  9. Gitlab Operator

  10. Gitlab Operator とは - Kubernetes上にGitlabをインストール/管理するためのツール - KubernetesのOperator Patternsに沿って実装 - The

    Operator offers the benefit of Day 2 operators to the GitLab installation - インストール後の”運⽤フェーズ”で楽するためのツール
  11. よくあるGitlab運⽤ なんか……こう……いい感じにGitlabの運⽤よろしく︕ 定期バックアップ インストール リストア 機能拡張 バージョンアップ

  12. よくあるGitlab運⽤ なんか……こう……いい感じにGitlabの運⽤よろしく︕ 定期バックアップ インストール リストア 機能拡張 バージョンアップ 完全定型作業 ナレッジ化された定型作業

  13. よくあるGitlab運⽤ なんか……こう……いい感じにGitlabの運⽤よろしく︕ 定期バックアップ インストール リストア 機能拡張 バージョンアップ あるべき姿を定義(Custom Resource) 定型作業を⾃動化

    Gitlab Operatorのある運⽤ ナレッジを実装して作業の⾃動化
  14. Gitlab Operatorをインストール 専⽤スキーマの登録(CRD) Gitlab Operatorのデプロイ Gitlab Operator作成

  15. Gitlab Operatorの挙動 “Gitlab”リソース作成(CR) 作成検知

  16. “Gitlab”リソース作成(CR) 作成検知 NGINX Gitaly (Cluster) Redis (Cluster) Webservice PostgreSQL …

    Operatorが“Gitlab”リソースに合わせた プロセス(=Pod)を作成して、管理してくれる Gitlab Operatorの挙動
  17. “Gitlab”リソース作成(CR) 作成検知 NGINX Gitaly (Cluster) Redis (Cluster) Webservice PostgreSQL …

    Kubernetesが起動するプロセス数(=replicas)や プロセス死活管理(=Podが停⽌した際の挙動)をしてくれる Gitlab Operatorの挙動
  18. “Gitlab”リソース修正 変更検知 NGINX Gitaly (Cluster) Redis (Cluster) Webservice PostgreSQL …

    Gitlab Operatorの挙動
  19. “Gitlab”リソース修正 変更検知 NGINX Gitaly (Cluster) Redis (Cluster) Webservice PostgreSQL …

    Gitlab Operatorの挙動 Operatorが“Gitlab”リソースに合わせて Gitlabをあるべき姿に変更していく(=リコンサイルループ)
  20. “Gitlab”リソースの管理 Watch NGINX Gitaly (Cluster) Redis (Cluster) Webservice PostgreSQL …

    まとめ 👀 Podとして管理 Gitlabの設定を反映
  21. 詳細はブログへ https://ryusa.hatenablog.com/entry/2021/10/09/225436