Gitlab OperatorはKubernetes上にGitlabをデプロイし、Day-2 Operationの自動化を行なってくれるKubernetes Operatorです
詳細:https://ryusa.hatenablog.com/entry/2021/10/09/225436
- さぁDay2 Operationをはじめよう-RyuSAGitlab Operatorと夢⾒るGitlab⾃動化の旅
View Slide
RyuSAFinancial Service EngineerJava & SpringBoot / Typescript & ReactDocker / Kubernetes: RyuSA: ryusa_eng
注意Gitlab Operatorは2021年9⽉時点でv0.1.0が初リリースされました本番導⼊は、もうすこーし待った⽅が良いでしょう🤔
Gitlabの Day-2 Operation がつらい😱
• Gitlabに要求される”⾼可⽤性”• 意思決定の場として使われるため、Gitlabが落ちると意思決定が滞る• 継続的開発(CI)を実現するために、Gitlabが落ちると開発が滞る• 継続的デリバリー(CD)を実現するために、Gitlabが落ちるとデリバリーが滞る→ いまやGitlabが落ちると、サービス/SLAへの影響が出る可能性がある🤔• Gitlabの多様な機能への”拡張”• Gitlabの機能拡充により、開発が効率がさらに良くなっていく• 開発者「Gitlab 14の新機能が素晴らしい︕明⽇にでもGitlab(Gitlab 11系)アップグレードしてくれ」• 管理者「っ……︕︕開発者の⼈っていつもそうですよね︕管理者のことなんだと思って(ry」→ ますますGitlabを迅速にアップグレードできる体制が必要に🤔加速するGitlab管理者への要求
Gitlabと愉快な仲間たち
Gitlabと愉快な仲間たち定期的なデータのバックアップHA構成Leader-Follower構成証明書の更新などなど。。。
運⽤負荷、なんとかしたいですよね
Gitlab Operator
Gitlab Operator とは- Kubernetes上にGitlabをインストール/管理するためのツール- KubernetesのOperator Patternsに沿って実装- The Operator offers the benefit of Day 2 operators to the GitLab installation- インストール後の”運⽤フェーズ”で楽するためのツール
よくあるGitlab運⽤なんか……こう……いい感じにGitlabの運⽤よろしく︕定期バックアップインストールリストア機能拡張バージョンアップ
よくあるGitlab運⽤なんか……こう……いい感じにGitlabの運⽤よろしく︕定期バックアップインストールリストア機能拡張バージョンアップ完全定型作業ナレッジ化された定型作業
よくあるGitlab運⽤なんか……こう……いい感じにGitlabの運⽤よろしく︕定期バックアップインストールリストア機能拡張バージョンアップあるべき姿を定義(Custom Resource)定型作業を⾃動化Gitlab Operatorのある運⽤ナレッジを実装して作業の⾃動化
Gitlab Operatorをインストール専⽤スキーマの登録(CRD)Gitlab OperatorのデプロイGitlab Operator作成
Gitlab Operatorの挙動“Gitlab”リソース作成(CR)作成検知
“Gitlab”リソース作成(CR)作成検知NGINXGitaly (Cluster)Redis (Cluster)WebservicePostgreSQL…Operatorが“Gitlab”リソースに合わせたプロセス(=Pod)を作成して、管理してくれるGitlab Operatorの挙動
“Gitlab”リソース作成(CR)作成検知NGINXGitaly (Cluster)Redis (Cluster)WebservicePostgreSQL…Kubernetesが起動するプロセス数(=replicas)やプロセス死活管理(=Podが停⽌した際の挙動)をしてくれるGitlab Operatorの挙動
“Gitlab”リソース修正変更検知NGINXGitaly (Cluster)Redis (Cluster)WebservicePostgreSQL…Gitlab Operatorの挙動
“Gitlab”リソース修正変更検知NGINXGitaly (Cluster)Redis (Cluster)WebservicePostgreSQL…Gitlab Operatorの挙動Operatorが“Gitlab”リソースに合わせてGitlabをあるべき姿に変更していく(=リコンサイルループ)
“Gitlab”リソースの管理WatchNGINXGitaly (Cluster)Redis (Cluster)WebservicePostgreSQL…まとめ👀Podとして管理Gitlabの設定を反映
詳細はブログへhttps://ryusa.hatenablog.com/entry/2021/10/09/225436