ブログに戻る

Argo CDとGitOpsを使用したKubernetes上へのアプリケーションのデプロイ

Argo CDとGitOpsを使用したKubernetes上へのアプリケーションのデプロイ

はじめに

Kubernetesは、大規模なアプリケーションをデプロイするための標準となっています。これにより、開発者は大きなメリットを得ることができ、従来のサーバーホスティングでは利用できない機能が提供されます。Kubernetesは、インフラストラクチャの煩わしさなしに水平スケーリングを可能にします。さらに、アプリケーションの成長に伴うインフラストラクチャの取得および維持コストを削減します。

しかし、Kubernetes上でのアプリケーションの管理は複雑になる場合があり、高度なスキルが要求されます。Kubernetesと継続的インテグレーションおよび継続的デプロイメントプロセス(CI/CD)を使用してアプリケーションをデプロイすることは、抽象化を提供することで、この複雑なプロセスを克服するのに役立ちます。GitOpsは、抽象化を実現するのに役立つツールの1つです。

このチュートリアルでは、Argo CDを使用してKubernetes上でアプリケーションを継続的にインテグレーションおよびデプロイする方法を実演します。リポジトリに変更がプッシュされると、いつでもターゲットクラスターにデプロイされます。Argo CDは、ソフトウェア開発ライフサイクル全体と統合することで、バージョン管理、設定、およびアプリケーション環境も提供します。以下のようなKubernetes用のパッケージマネージャーを使用している場合、Helm、またはリポジトリがBitBucketGitLabでホストされている場合、Argo CDはこれらすべてのプラットフォームともシームレスに統合できます。

前提条件

このチュートリアルを完了するには、以下が必要です。

ステップ1 – Argo CDのインストール

Argo CDをインストールする前に、 kubectlが動作するKubernetes環境が必要です。これは、以下のコマンドを実行してテストできます。

Deploying Applications on Kubernetes Using Argo CD and GitOps Get Nodes

少なくとも1つのKubernetesノードが Readyステータスで稼働しているはずです。利用可能なノードがない場合は、Kubernetesのインストールを再確認する必要があります。次に、Kubernetesインストール用に別のネームスペースを作成します。これを argocdと呼びましょう。このネームスペースにArgo CD関連のサービスを保持します。

その後、以下のコマンドを実行して、上記で新しく作成したネームスペースにArgo CDスクリプトをインストールします。

Deploying Applications on Kubernetes Using Argo CD and GitOps Install ArgoCD

Kubernetesポッドのステータスを確認するには、以下のコマンドを実行します。

以下のような結果が表示されます。

Deploying Applications on Kubernetes Using Argo CD and GitOps Get Pods

これで、Argo CDのインストールが正常に完了しました。 watchインターフェースを終了するには、 Ctrl + Cを押します。このKubernetesクラスター内のサービスにアクセスするには、ポートをフォワードする必要があります。次のステップでその方法を説明します。

ステップ2 – Argo CDにアクセスするためのポートフォワード

Kubernetesは、アプリケーションを任意のポートにデプロイできます。そのため、ローカルマシンからアクセスするには、Kubernetesアプリケーションのポートをフォワードする必要があります。Argo CDは、 argocd-server(ポート443を使用)。ポート443はHTTPSおよびHTTPサービスのデフォルトポートです。Kubernetesポートを任意のポートにフォワードできます。以下の例では、ポートを 8080にフォワードしています。ポートをフォワードするには、ターミナルで以下のコマンドを実行します:

ポートをフォワードすると、そのポートはブロックされ、他のサービスがアクセスできなくなります。アクセスが中断されないようにするため、上記のコマンドは常に新しいターミナルで実行することをお勧めします。完了したら、次のキーを押すことができます。 Ctrl+C を押して、ポートフォワードプロセスを終了します。

ポートをフォワードした後、次のURLにアクセスしてArgo CDに移動できます。 localhost:8080。資格情報の入力を求められます。資格情報は次のステップでコマンドラインから取得できます。

ステップ 3 – コマンドラインからArgo CDを管理する

Argo CDのインストールを管理するために、Argo CDコマンドラインをインストールする必要があります。Argo CDをインストールする推奨方法は、次のようなパッケージマネージャーを使用することです。Homebrew。Homebrewは、macOSおよびLinuxにインストールするための一般的なパッケージマネージャーツールです。以下のコマンドを使用してHomebrewをインストールできます。

マシンに brew がインストールされている必要があります。ログイン用のパスワード入力を求められる場合があります。以下のコマンドを実行して実行できます。

上記のインストール後に、 argocd コマンドが使用可能になります。管理者パスワードを取得するには、次の kubectl コマンドを使用する必要があります。これはインストール中に自動的に生成されました。取得するためのコマンドは以下の通りです。

Argo CDがインストールされたので、以下の argocd login コマンドを使用してログインできます。

コマンドラインを使用する場合、アプリケーションをデプロイするためにログインする必要があります。

Applications

セキュリティ警告が表示される場合があります。その場合は、 y を押して進めてください。ログイン後にパスワードを変更したいユーザーも多いでしょう。その場合は、以下の argocd account update-password コマンドを実行してパスワードを変更します。これで、完全に機能するArgo CDの設定が完了しました。

最後に、インストールしたArgo CDを使用して、Kubernetesクラスターにアプリケーションをデプロイします。

ステップ 4 – 複数のクラスターを利用する

アプリケーションのセットアップを続ける前に、デプロイ先となるターゲットマシンを把握しておく必要があります。多くのシナリオでは、Argo CDとデプロイされたアプリケーションは同じクラスター上で実行できます。これはArgo CDのデフォルトの動作ですが、制限ではありません。他のターゲットマシンにアプリケーションをデプロイしたい場合は、まずマシンで以下の kubectl config を実行します。

たとえば、次の2つのクラスターを取得したとします。 test-deploy-cluster および test-target-cluster。ここで、 test-deploy-cluster にArgo CDがあり、 test-target-cluster にデプロイしたい場合は、以下のコマンドを実行します。

上記のコマンドにより、Argo CDに別のクラスターの詳細が追加されます。また、Argo CDのターゲットクラスターにサービスをデプロイできるようになります。

ステップ 5 – サンプルアプリケーションをデプロイする

いよいよKubernetesクラスターにアプリケーションをデプロイします。Argo CDが提供するサンプルアプリケーションを使用します。また、 helm-guestbook (Helm チャートを使用して構築されたもの)も利用します。

アプリケーションをインストールするには、以下の argo app create コマンドを使用します。また、Gitリポジトリ, helm-guestbook を指定し、デフォルトの送信先とネームスペースを渡します。

新しく作成されたアプリのステータスは、以下の argocd app get:

もし OutOfSync ステータスが表示されても驚かないでください。これまでにHelmチャートをダウンロードし、Argo CD用のエントリポイントを作成しました。しかし、Kubernetes側では、リソースが割り当てられていません。このアプリケーションを 同期するには、以下のコマンドを実行します:

Deploying Applications on Kubernetes Using Argo CD and GitOps App Sync

GitOpsを使用する場合、アプリケーションを常にアップストリームと同期させる必要があります。そのため、リポジトリに変更が発生するたびに、Argo CDがアプリケーションをデプロイします。

Argo CDコマンドラインを使用してアプリケーションをデプロイしました。Argo CDのWebインターフェースを使用しても同じ結果を得ることができます。Webインターフェースは、アプリケーションのステータスや実行状態を確認したい場合に非常に役立ちます。Webインターフェースを開くには、ブラウザで localhost:8080:

Deploying Applications on Kubernetes Using Argo CD and GitOps Application UI

インストールを確認するために、ブラウザでアプリケーションを開きます。私たちの helm-guestbookはポート 80で動作します。ポート 80を使用している他のアプリケーションがある場合は、他のアプリケーションが中断されないようにポートをフォワードできます:

最後に、WebブラウザでURL localhost:9090を開き、アプリケーションが動作していることを確認します:

 Guestbook UI

これで、開発者がGitHubのリモートリポジトリにコードをプッシュすると、ArgoCDがそれを検知して反映します。ArgoCDのデプロイメントはそれに応じて更新され、継続的な可用性が提供されます。

まとめ

このチュートリアルでは、Argo CDを使用してKubernetes上にアプリケーションをインストールおよびデプロイする方法を紹介しました。Kubernetes上でのデプロイがメンテナンス可能であることを確認することは重要です。この点において、GitOpsは非常に役立ちます。

Kubernetesは現在、クラウドにおけるデプロイの標準となっています。CloudSigmaには、いくつかの優れたKubernetesに関するチュートリアルがあります。次にこれらを確認してみてください:

Happy Computing!

author

Preslav Dobrev

著者 · CloudSigma

Preslav DobrevはCloudSigmaのクリエイティブデザイナーであり、従来型および革新的なマーケティングチャネルを活用した一貫性のあるビジネスアイデンティティに注力しています。彼は芸術的なビジョンと戦略的マーケティングを融合させ、インパクトのあるブランドナラティブを生み出すことに長けています。

コメント

コメントはまだありません。最初のコメントを投稿しましょう。