Rediaccでリポジトリをデプロイ・管理する方法
リポジトリはRediaccの中核となるデプロイ単位です。各リポジトリは独自のDocker daemonと専用ストレージを持つ隔離された暗号化環境です。このチュートリアルでは、暗号化リポジトリを作成し、コンテナ化されたアプリケーションをデプロイし、実行中のコンテナを検査し、クリーンアップします。完了すると、完全なデプロイライフサイクルを体験したことになります。
前提条件
- 設定が初期化された
rdcCLIがインストール済みであること - プロビジョニングされたマシン(チュートリアル: マシンセットアップを参照)
Rediaccfileとdocker-compose.ymlを持つシンプルなアプリケーション
インタラクティブ録画
ステップ1: 暗号化リポジトリを作成
各リポジトリは独自のLUKS暗号化ストレージボリュームを取得します。マシンとストレージサイズを指定します。
rdc repo create --name test-app -m server-1 --size 2G
Rediaccは2GBの暗号化ボリュームを作成し、フォーマットし、自動的にマウントします。リポジトリはファイルアップロードの準備が整いました。
ステップ2: リポジトリを一覧表示
新しいリポジトリが利用可能であることを確認します。
rdc repo list -m server-1
マシン上のすべてのリポジトリをサイズ、マウント状態、暗号化状態とともに表示します。
ステップ3: マウントパスを検査
デプロイ前に、リポジトリのストレージがマウントされアクセス可能であることを確認します。
rdc term connect -m server-1 -c "ls -la /mnt/rediacc/mounts/test-app/"
マウントディレクトリはアプリケーションファイルが配置される場所です, Rediaccfile、docker-compose.yml、およびデータボリュームが含まれます。
ステップ4: サービスを開始
リポジトリをマウントしてDockerサービスを起動することでアプリケーションをデプロイします。
rdc repo up --name test-app -m server-1 --mount
リポジトリをマウントし(まだマウントされていない場合)、隔離されたDocker daemonを起動し、up()でサービスを開始します。
注意: 最初のデプロイはDockerイメージのダウンロードのため時間がかかります。以降の起動ではキャッシュされたイメージが再利用されます。
ステップ5: 実行中のコンテナを表示
rdc machine containers server-1
マシン上のすべてのリポジトリにわたるすべての実行中のコンテナを、CPUとメモリの使用量を含めて表示します。
ステップ6: リポジトリターミナルにアクセス
リポジトリの隔離されたDocker環境内でコマンドを実行するには:
rdc term connect -m server-1 -r test-app -c "docker ps"
ターミナルセッションはDOCKER_HOSTをリポジトリの隔離されたDockerソケットに設定します。すべてのDockerコマンドはそのリポジトリのコンテナのみに対して実行されます。
ステップ7: 停止してクリーンアップ
完了したら、サービスを停止し、暗号化ボリュームを閉じ、必要に応じてリポジトリを削除します。
rdc repo down --name test-app -m server-1 # サービスを停止
rdc repo unmount --name test-app -m server-1 # 暗号化ボリュームを閉じる
rdc repo delete --name test-app -m server-1 # リポジトリを完全に削除
downはコンテナとDocker daemonを停止します。unmountはLUKSボリュームを閉じます。deleteはリポジトリとその暗号化ストレージを完全に削除します。
警告:
repo deleteは取り消せません。リポジトリ内のすべてのデータが破壊されます。必要に応じて先にバックアップを作成してください。
トラブルシューティング
リポジトリ作成時の「ディスク容量不足」
暗号化ボリュームにはホスト上の連続した空き容量が必要です。サーバーでdf -hを使用して利用可能な容量を確認してください。より小さい--size値の使用やディスク容量の解放を検討してください。
repo up中のDockerイメージプルタイムアウト
大きなイメージは低速な接続でタイムアウトする場合があります。rdc repo upで再試行してください, 中断した箇所から再開します。エアギャップ環境では、リポジトリのDocker daemonにイメージを事前にロードしてください。
「マウント失敗」または「LUKSオープン失敗」 LUKSパスフレーズは設定から導出されます。リポジトリを作成した同じ設定を使用していることを確認してください。ボリュームが別のプロセスによってすでにマウントされている場合は、先にアンマウントしてください。
次のステップ
暗号化リポジトリを作成し、アプリケーションをデプロイし、コンテナを検査し、クリーンアップしました。デプロイを監視するには:
- サービス, Rediaccfileリファレンス、サービスネットワーキング、自動起動、マルチサービスレイアウト
- チュートリアル: 監視と診断, ヘルスチェック、コンテナ検査、診断
- ツール, ターミナル、ファイル同期、VS Code連携