Ritolabo
  1. Home

Argo CD で Secret を暗号化して反映する

  • ArgoCD
Argo CD で Secret を暗号化して反映する

Kubernetes の Secret の値を sops と age で暗号化して Git に置き、Argo CD の Config Management Plugin(sops の sidecar)で復号してクラスタに反映する。Argo CD の公式ドキュメントが推奨する方式との違い、鍵・暗号文・平文がそれぞれどこにあるかも整理する。

Argo CD で Kubernetes 上のアプリを公開する

  • ArgoCD
Argo CD で Kubernetes 上のアプリを公開する

Argo CD の Application が指す Git のディレクトリに ConfigMap・Service・Ingress の YAML を追加し、Deployment を変更して push するだけで、Ingress Controller(Contour)経由で http://localhost/ にページが表示される状態にする。ConfigMap の内容を Git で変えたときに、Pod を入れ替えずにページが変わることも確認する。

Argo CD の自動同期: automated・selfHeal・prune

  • ArgoCD
Argo CD の自動同期: automated・selfHeal・prune

Argo CD の Application に syncPolicy の設定を 3 つ追加し、Git に push するだけでクラスタの中身が Git の内容に合う状態にする。automated で push が自動で反映されること、selfHeal で kubectl scale した Pod の数が Git の数に戻ること、prune で Git から消したファイルの Deployment がクラスタからも消えることを確認する。

Argo CD のインストールから Git の YAML を反映するまで

  • ArgoCD
Argo CD のインストールから Git の YAML を反映するまで

Argo CD を kind のクラスタにインストールし、ブラウザの画面にログインする。GitHub の private リポジトリに置いた Deployment の YAML を、Application という定義を 1 つ書いて Argo CD に読ませ、kubectl apply を打たずにクラスタに入れる。画面の OutOfSync / Synced、Missing / Healthy が何を表しているかを確認する。

Argo CD の概要と仕組み

  • ArgoCD
Argo CD の概要と仕組み

Argo CD は、クラスタの中で動き、Git リポジトリにある YAML を Kubernetes に反映し続けるプログラム。自分で kubectl apply を打つ運用で何に困るか、Argo CD を使うと何が変わるか、何ができて何ではないか、どこで何が動くかを、公式ドキュメントをもとに整理する。

自作の API を Kubernetes で動かす

  • Basics
自作の API を Kubernetes で動かす

自分で書いた HTTP API(Go)をコンテナの image にして、kind で作ったローカルクラスタに載せる。Dockerfile で image を作って Node に入れ、ConfigMap と Secret の値を環境変数で渡し、Deployment で 3 つ動かし、Service と Ingress でクラスタの外から api.example.com という名前で届くところまでを、実行結果とあわせて確認する。

Author

rito

rito

  • Backend Engineer
  • Tokyo, Japan
  • PHP 5 技術者認定上級試験 認定者
  • 統計検定 3 級