LoginSignup
2
1

More than 3 years have passed since last update.

オフライン環境にArgoCDをデプロイする

Last updated at Posted at 2019-08-23

概要

インターネットに繋がらない環境でArgoCDをデプロイする方法になります。

デプロイ手順

おおまかには以下の手順でデプロイができます。
1. オンライン環境でmanifestとコンテナイメージの取得
2. プライベートコンテナレジストリにコンテナイメージのpush
3. オフライン環境用にインストールmanifestの編集
4. manifestのデプロイ

1. オンライン環境でmanifestとコンテナイメージの取得

オフライン環境でArgoCDを動作させる際に最低限必要な物を取得します。

manifestの取得

以下のコマンドでmanifestを取得します。
今回は現時点で最新版のv.1.2.0-rc2版を使用します。
(8/27に1.2が正式リリースされます)

curl -OL https://raw.githubusercontent.com/argoproj/argo-cd/v1.2.0-rc2/manifests/install.yaml

コンテナイメージの取得

先ほど取得したmanifestのdeploymentを読み、使用しているコンテナイメージを全てローカルに保存します。

docker pull argoproj/argocd:v1.2.0-rc2
docker pull quay.io/dexidp/dex:v2.14.0
docker pull redis:5.0.3

docker save argoproj/argocd:v1.2.0-rc2 > argocd.tar
docker save quay.io/dexidp/dex:v2.14.0 > dex.tar
docker save redis:5.0.3 > redis.tar

2. プライベートコンテナレジストリにコンテナイメージのpush

tarballに固めたコンテナイメージをオフライン環境に持ち込み、プライベートレジストリにpushします

docker load < argocd.tar
docker load < dex.tar
docker load < redis.tar

#各コンテナのIMAGE_IDを取得
docker images 

#プライベートレジストリのIP以降の名前は適当に付けてください。
#IMAGE_IDも上記で取得したものに付け替えてください。
docker tag ARGOCD_IMAGE_ID <プライベートレジストリのIPとport>/argocd:v1.2.0-rc2
docker tag DEX_IMAGE_ID <プライベートレジストリのIPとport>/dex:v2.14.0
docker tag REDIS_IMAGE_ID <プライベートレジストリのIPとport>/redis:5.0.3

docker push ARGOCD_IMAGE_ID <プライベートレジストリのIPとport>/argocd:v1.2.0-rc2
docker push DEX_IMAGE_ID <プライベートレジストリのIPとport>/dex:v2.14.0
docker push REDIS_IMAGE_ID <プライベートレジストリのIPとport>/redis:5.0.3

3. オフライン環境用にインストールmanifestの編集

1.で取得したmanifestから最低限以下の点を変更します。
変更点は直接ローカルにダウンロードしたmanifestに書き加えても良いですが、保守性が低いのでkustomizeを使うことをオススメします。kustomizeでの書き方はまた別の記事にします。

  • コンテナイメージを2番でpushしたレジストリ内のイメージを使用するように変更
  • argocd-serverのServiceをtype:nodeportに変更

オフライン環境のK8sにIngressなんて便利な物は無いのでNodePortを使用します。

公式の手順ではIngressかport-forwardの使用を紹介していてnodeportは紹介されていませんが、問題なく使えます。

4. manifestのデプロイ

準備は終わりました。後はデプロイするだけです。

kubectl create ns argocd
kubectl apply -f install.yaml -n argocd

これでhttps://クラスターのIP:nodeportで指定したportにアクセスすればArgoCDのログイン画面が表示されます。

注意

基本機能に支障はありませんが、以下のURLを穴あけしないと、毎回初回アクセス時に10秒ほど時間がかかります。
https://fonts.googleapis.com/css?family=Heebo:300,400,500,700

上記サイトにCSSを取りに行っており、オフライン環境では接続できないのでタイムアウトするまで待機することになります。CSSが無い状態でも描画に違和感はありませんでした。
プロキシを使って外に出れる場合は予め穴あけすると良いでしょう。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1