[[420203]] Longhorn は、マニフェスト ファイル、Helm チャート、または Rancher UI を使用して、エアギャップ環境にインストールできます。 目次- 前提条件
- マニフェストファイルの使用
- Helmチャートの使用
- Rancherアプリの使用
- トラブルシューティング
前提条件- Longhorn コンポーネント イメージを独自のレジストリにデプロイします。
- Kubernetes CSI ドライバー コンポーネント イメージを独自のレジストリにデプロイします。
知らせ: - 必要なすべてのイメージの完全なリストは longhorn-images.txt にあります。まず、次のコマンドを実行してミラー リストをダウンロードします。
https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/deploy/longhorn-images.txt を実行します。 - 上記の longhorn-images.txt リストをすばやく取得するためのスクリプト save-images.sh を提供しています。 --images フラグに tar.gz ファイル名を指定すると、スクリプトは指定されたファイル名にすべての画像を保存します。次の例では、スクリプトは Longhorn イメージを取得し、それを longhorn-images.tar.gz ファイルに保存します。その後、そのファイルをエアギャップ環境にコピーできます。一方、ファイル名を指定しない場合は、スクリプトはミラー リストをコンピューターに取得するだけです。
- https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/scripts/save-images.sh を実行します。
- chmod +x イメージを保存.sh
- ./save-images.sh
- Longhorn イメージをプライベート レジストリにプッシュするための別のスクリプト load-images.sh も提供しています。 --images フラグに tar.gz ファイル名を指定すると、スクリプトは tar ファイルからイメージをロードしてプッシュします。それ以外の場合は、ローカル Docker でイメージを見つけてプッシュします。次の例では、スクリプトはlonghorn-images.tar.gzファイルからイメージをロードし、それをプッシュします。
- wget https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/scripts/をロード-images.sh
- chmod + x load-images.sh
- ./ load -images.sh
- スクリプトを使用するその他のオプションについては、フラグ --help を参照してください。
- ./save-images.sh
- ./load-images.sh
マニフェストファイルの使用Longhorn 展開マニフェスト ファイルを取得する - https://raw.githubusercontent.com/longhorn/longhorn/v1.1.2/deploy/longhorn.yaml を取得します。
Longhorn 名前空間の作成 - kubectl はlonghorn-system という名前空間を作成します。
プライベート レジストリに認証が必要な場合は、longhorn-system 名前空間に docker-registry シークレットを作成します。 - kubectl -n longhorn-systemでシークレット docker-registry <SECRET_NAME>を作成します
- longhorn-driver-deployer デプロイメント
- longhorn-manager デーモンセット
- longhorn-ui デプロイメント
- 次のリソースの imagePullSecrets.name にシークレット名 SECRET_NAME を追加します。
例: - APIバージョン: アプリ/v1
- 種類: デプロイメント
- メタデータ:
- ラベル:
- アプリ: longhorn-ui
- 名前: longhorn-ui
- 名前空間: longhorn-system
- 仕様:
- レプリカ: 1
- セレクタ:
- 一致ラベル:
- アプリ: longhorn-ui
- テンプレート:
- メタデータ:
- ラベル:
- アプリ: longhorn-ui
- 仕様:
- コンテナ:
- -名前: longhorn-ui
- イメージ: longhornio/longhorn-ui:v0.8.0
- ポート:
- - コンテナポート: 8000
- 環境:
- -名前: LONGHORN_MANAGER_IP
- 値: "http://longhorn-backend:9500"
- イメージプルシークレット:
- - name : <SECRET_NAME> ##ここにSECRET_NAMEを追加
- サービス アカウント名: longhorn サービス アカウント
マニフェストファイルに次の変更を適用します - longhornio/longhorn-manager
- イメージ: <REGISTRY_URL>/longhorn-manager:<LONGHORN_MANAGER_IMAGE_TAG>
- イメージ: <REGISTRY_URL>/longhorn-engine:<LONGHORN_ENGINE_IMAGE_TAG>
- longhornio/longhorn-share-manager
- イメージ: <REGISTRY_URL>/longhorn-instance-manager:<LONGHORN_INSTANCE_MANAGER_IMAGE_TAG>
- イメージ: <REGISTRY_URL>/longhorn-ui:<LONGHORN_UI_IMAGE_TAG>
- CSI_ATTACHER_イメージ
- CSI_PROVISIONER_イメージ
- CSI_NODE_DRIVER_REGISTRAR_イメージ
- CSI_RESIZER_イメージ
- CSI_SNAPSHOTTER_イメージ
longhorn-driver-deployer デプロイメントの Kubernetes CSI ドライバー コンポーネント環境変数を変更して、プライベート レジストリ イメージを指すようにします。 - -名前: CSI_ATTACHER_IMAGE
- 値: <REGISTRY_URL>/csi-attacher:<CSI_ATTACHER_IMAGE_TAG>
- -名前: CSI_PROVISIONER_IMAGE
- 値: <REGISTRY_URL>/csi-provisioner:<CSI_PROVISIONER_IMAGE_TAG>
- -名前: CSI_NODE_DRIVER_REGISTRAR_IMAGE
- 値: <REGISTRY_URL>/csi-node-driver-registrar:<CSI_NODE_DRIVER_REGISTRAR_IMAGE_TAG>
- -名前: CSI_RESIZER_IMAGE
- 値: <REGISTRY_URL>/csi-resizer:<CSI_RESIZER_IMAGE_TAG>
- -名前: CSI_SNAPSHOTTER_IMAGE
- 値: <REGISTRY_URL>/csi-snapshotter:<CSI_SNAPSHOTTER_IMAGE_TAG>
- Longhorn イメージをプライベート レジストリ イメージを指すように変更します。
例: - APIバージョン: アプリ/v1
- 種類: デプロイメント
- メタデータ:
- ラベル:
- アプリ: longhorn-ui
- 名前: longhorn-ui
- 名前空間: longhorn-system
- 仕様:
- レプリカ: 1
- セレクタ:
- 一致ラベル:
- アプリ: longhorn-ui
- テンプレート:
- メタデータ:
- ラベル:
- アプリ: longhorn-ui
- 仕様:
- コンテナ:
- -名前: longhorn-ui
- image: <REGISTRY_URL>/longhorn-ui:<LONGHORN_UI_IMAGE_TAG> ##イメージ名を追加 ここにタグを付けてください
- ポート:
- - コンテナポート: 8000
- 環境:
- -名前: LONGHORN_MANAGER_IP
- 値: "http://longhorn-backend:9500"
- イメージプルシークレット:
- -名前: <SECRET_NAME>
- サービス アカウント名: longhorn サービス アカウント
変更したマニフェストファイルを使用して Longhorn を展開する - kubectl を適用 -f longhorn.yaml
Helm Chartの使用v1.1.2では、Longhornは自動的にプレフィックス。プライベート レジストリからイメージをプルするには、registryUrl パラメータを設定するだけです。 注意: registryUrl をプライベート レジストリに設定すると、Longhorn はそのレジストリからのみイメージをプルしようとします。すべての Longhorn コンポーネントのイメージがレジストリにあることを確認してください。そうでないと、Longhorn はイメージを取得できません。 デフォルトの画像名を使用する ここで推奨されているようにイメージ名を維持する場合は、次の手順に従うだけです。 Longhorn リポジトリをクローンします。 - git クローン https://github.com/longhorn/longhorn.git
chart/values.yaml内 Longhorn はこの情報を使用してシークレットを自動的に生成し、それを使用してプライベート レジストリからイメージを取得します。 - デフォルト設定:
- レジストリシークレット: <SECRET_NAME>
-
- プライベートレジストリ:
- レジストリ URL: <REGISTRY_URL>
- レジストリユーザー: <REGISTRY_USER>
- registryPasswd: <レジストリパスワード>
- レジストリシークレット: <レジストリシークレット名>
- プライベート レジストリ URL を指定します。レジストリに認証が必要な場合は、プライベート レジストリ ユーザー、プライベート レジストリ パスワード、およびプライベート レジストリ シークレットを指定します。
カスタム画像名の使用 カスタムイメージ名を使用する場合は、次の手順に従います。 Longhornリポジトリをクローンする - git クローン https://github.com/longhorn/longhorn.git
chart/values.yaml内 注意: プライベート レジストリ プレフィックスは含めないでください。自動的に追加されます。たとえば、イメージが example.com/username/longhorn-manager の場合、次の表では username/longhorn-manager を使用します。 - 画像:
- ロングホーン:
- エンジン:
- リポジトリ: longhornio/longhorn-engine
- タグ: <LONGHORN_ENGINE_IMAGE_TAG>
- マネージャー:
- リポジトリ: longhornio/longhorn-manager
- タグ: <LONGHORN_MANAGER_IMAGE_TAG>
- ユーザ:
- リポジトリ: longhornio/longhorn-ui
- タグ: <LONGHORN_UI_IMAGE_TAG>
- インスタンスマネージャー:
- リポジトリ: longhornio/longhorn-instance-manager
- タグ: <LONGHORN_INSTANCE_MANAGER_IMAGE_TAG>
- シェアマネージャー:
- リポジトリ: longhornio/longhorn-share-manager
- タグ: <LONGHORN_SHARE_MANAGER_IMAGE_TAG>
- CSI ドライバー コンポーネントのイメージとタグを指定します。
- シーエスアイ:
- 添付者:
- リポジトリ: longhornio/csi-attacher
- タグ: <CSI_ATTACHER_IMAGE_TAG>
- プロビジョナー:
- リポジトリ: longhornio/csi-provisioner
- タグ: <CSI_PROVISIONER_IMAGE_TAG>
- ノードドライバレジストラ:
- リポジトリ: longhornio/csi-node-driver-registrar
- タグ: <CSI_NODE_DRIVER_REGISTRAR_IMAGE_TAG>
- リサイズ:
- リポジトリ: longhornio/csi-resizer
- タグ: <CSI_RESIZER_IMAGE_TAG>
- スナップショット作成者:
- リポジトリ: longhornio/csi-snapshotter
- タグ: <CSI_SNAPSHOTTER_IMAGE_TAG>
- プライベート レジストリ URL を指定します。レジストリに認証が必要な場合は、プライベート レジストリ ユーザー、プライベート レジストリ パスワード、およびプライベート レジストリ シークレットを指定します。 Longhorn はこの情報を使用してシークレットを自動的に生成し、それを使用してプライベート レジストリからイメージを取得します。
- デフォルト設定:
- レジストリシークレット: <SECRET_NAME>
-
- プライベートレジストリ:
- レジストリ URL: <REGISTRY_URL>
- レジストリユーザー: <REGISTRY_USER>
- registryPasswd: <レジストリパスワード>
Longhornのインストール - helm をインストールします。/chart
- kubectl で名前空間 longhorn-systemを作成します。
-
- helm をインストール longhorn ./chart
Rancherアプリの使用デフォルトの画像名を使用する 上記の推奨どおりにイメージ名を維持した場合は、次の手順に従うだけです。 - プライベート レジストリ設定セクションで、以下を指定します。
Longhorn はこの情報を使用してシークレットを自動的に生成し、それを使用してプライベート レジストリからイメージを取得します。 - プライベートレジストリ URL
- プライベートレジストリユーザー
- プライベートレジストリパスワード
- プライベートレジストリの秘密名
カスタム画像名の使用 - カスタム画像名を使用する場合は、「デフォルトの画像を使用する」を False に設定し、画像の名前を指定します。
注意: プライベート レジストリ プレフィックスは含めないでください。自動的に追加されます。たとえば、イメージが example.com/username/longhorn-manager の場合、次の表では username/longhorn-manager を使用します。 - プライベート レジストリ URL を指定します。レジストリに認証が必要な場合は、プライベート レジストリ ユーザー、プライベート レジストリ パスワード、およびプライベート レジストリ シークレット名を指定します。 Longhorn はこの情報を使用してシークレットを自動的に生成し、それを使用してプライベート レジストリからイメージを取得します。
トラブルシューティングHelm/Rancher インストールの場合、ユーザーがプライベート レジストリに認証するためのシークレットを送信し忘れると、longhorn-manager DaemonSet の作成に失敗します。 Kubernetesシークレットを作成する - kubectl -n longhorn-systemでシークレット docker-registry <シークレット名>を作成します
レジストリ シークレット設定オブジェクトを手動で作成します。 - APIバージョン: longhorn.io/v1beta1
- 種類: 設定
- メタデータ:
- 名前: レジストリシークレット
- 名前空間: longhorn-system
- 値: <SECRET_NAME>
kubectl apply -f レジストリシークレット.yml Longhorn を削除して再インストールします。 - helm アンインストール ./chart
-
- helm をインストールします。/chart
- helm アンインストール longhorn ./chart
-
- helm をインストール longhorn ./chart
推薦する: 日付を意図的に使用して Longhorn バージョンとの関連付けを回避するため、イメージ タグ、特にインスタンス マネージャー イメージ タグ (v1_20200301 など) を操作しないことを強くお勧めします。 Longhorn コンポーネントのイメージは、Dockerhub の longhornio アカウントでホストされています。たとえば、longhornio/longhorn-manager:v1.1.2 です。イメージをプライベート レジストリにプッシュする場合は、アカウント名 longhornio を同じにしておくことをお勧めします。これにより、不要な構成の問題を回避できます。 |