初心者向けの Kubernetes での Argo CD を使用したアプリケーションのデプロイ

Kubernetesでのアプリケーションのデプロイは、特に初心者にとっては複雑な場合があります。 Argo CD は、Kubernetesアプリケーションのデプロイを自動化するために設計されたGitOpsに基づいた宣言的ツールです。このワークショップでは、完全な初心者向けに段階的に作成された手順で、Argo CDのセットアップと使用方法を学ぶことができます。

学習内容

  • Argo CDのインストールと構成。
  • GitOps原則を使用したアプリケーションのデプロイ。
  • デプロイメントの監視とトラブルシューティング。
  • ロールバックとアプリケーションバージョンの管理。
  • 本番環境でのArgo CDのセキュリティ確保。

なぜArgo CDを選ぶのか?

Argo CD は、Kubernetes でのアプリケーション管理を簡素化し、クラスターを Gitリポジトリ で定義されたマニフェストと連続的に同期します。利点には次のものがあります:

  • 宣言的管理:Gitで望ましいクラスターの状態を定義。
  • 継続的デリバリー:リアルタイムの同期でデプロイメントを自動化。
  • バージョン管理:簡単に以前のバージョンにロールバック可能。

前提条件

ダイブする前に、以下を確認してください:

  1. Kubernetesクラスター(Minikube、Kind、またはGKE、EKS、AKSなどの管理されたサービスを使用してください)。
  2. kubectlがインストールされ、クラスターに接続するように構成されています。
  3. GitHubまたはGitLabアカウントを持っていて、Kubernetesマニフェストをホストすること。
  4. YAML構文に基本的な理解があること(初心者の場合はこのワークショップでカバーされます)。

ステップバイステップガイド

1. Kubernetesクラスターのセットアップ

ステップ1: Minikubeのインストール

クラスターがない場合は、Minikubeを使用してください:

Shell

 

ステップ2: Minikubeの起動

システムにMinikubeをインストールした後、コマンドminikube startを実行してください:

Shell

 

ステップ3: クラスターの確認

クラスターが実行されていることを確認してください:

Shell

 

2. Argo CDのインストール

ステップ1: ネームスペースの作成

Argo CDは独自のネームスペースで実行されます:

Shell

 

ステップ2: Argo CDのインストール

公式のマニフェストを適用してArgo CDをインストールしてください:

Shell

 

ステップ3: インストールの確認

Argo CDポッドを確認してください:

Shell

 

3. Argo CD UIへのアクセス

ステップ1: Argo CDの公開

argocd-serverをローカルマシンに公開してください:

Shell

 

ステップ2:管理者資格情報の取得

デフォルトの管理者パスワードを取得します:

Shell

 

ステップ3:UIにログイン

  1. ブラウザでhttps://localhost:8080を開きます。
  2. 以下でログインします:
    • ユーザー名:admin
    • パスワード:前のステップで取得したもの。

4. Argo CDをGitリポジトリに接続する

ステップ1:Gitリポジトリを準備する

  1. Gitリポジトリを作成します(例:GitHub上で)。
  2. あなたのKubernetesマニフェストをリポジトリに追加します。このサンプルdeployment.yamlを使用してください:
YAML

 

ステップ2:リポジトリをArgo CDに追加する

UIから:

  1. 設定リポジトリに移動します。
  2. GitリポジトリのURLと認証情報(SSHまたはHTTPS)を追加します。

または、CLIを使用します:

Shell

 

5. 最初のアプリケーションをデプロイする

ステップ1:アプリケーションを作成する

Argo CD UIで:

  1. 新しいアプリをクリックします。
    • アプリ名: nginx-app
    • プロジェクト: デフォルト
    • リポジトリURL: あなたのGitリポジトリのURL
    • パス: deployment.yamlへのパス
    • クラスターURL: https://kubernetes.default.svc
    • 名前空間: デフォルト

ステップ2: アプリケーションの同期

アプリを作成した後:

  1. Argo CD UIで同期をクリックします。
  2. アプリがKubernetesクラスターにデプロイされるのを見てください。

6. デプロイの自動化

ステップ1: 自動同期を有効にする

継続的な同期を有効にします:

Shell

 

ステップ2: 変更のテスト

  1. Gitのdeployment.yamlを変更します。
  2. 変更をリポジトリにプッシュします。
  3. Argo CDは変更を検出して自動的にクラスターに同期します。

7. モニタリングとトラブルシューティング

ステップ1: アプリケーションのヘルスチェック

UIで、以下を確認します:

  • 健康: アプリケーションが期待どおりに動作しているかを示します。
  • 同期ステータス: クラスターの状態がGitと一致していることを確認します。

ステップ2: ログの表示

何かがうまくいかない場合:

Shell

 

ステップ3: 変更のロールバック

前の状態にロールバック:

Shell

 

8. Argo CDのセキュリティ強化

ステップ1: デフォルトの管理者パスワードの変更

コマンドargocd account update-passwordを使用してデフォルトの管理者パスワードを変更:

Shell

 

ステップ2: SSOの統合

本番環境では、GitHubやLDAPなどのシングルサインオン(SSO)ソリューションと統合します。

GitOpsのベストプラクティス

  1. ブランチ戦略: 開発、ステージング、本番用に別々のブランチを使用します。
  2. コードレビュー: マニフェストの変更に対するピアレビューを強制します。
  3. 監査ログ: コンプライアンスとデバッグのために定期的にArgo CDログを確認します。

結論

Argo CDはGitOpsの原則を使用してKubernetesのデプロイメントを効率的に管理する初心者向けかつ強力な方法を提供します。このワークショップにより、アプリケーションの展開、モニタリング、管理に必要なスキルを身につけることができます。これらのプラクティスに従うことで、Kubernetesの継続的なデリバリーをマスターする道筋が整います。

Source:
https://dzone.com/articles/deploying-applications-in-kubernetes-with-argo-cd