プロジェクト

全般

プロフィール

機能 #98

完了

自宅クラスタ (chuable, feng) 用の Docker レジストリの整備

nop_thread さんが10ヶ月前に追加. 4ヶ月前に更新.

ステータス:
終了
優先度:
通常
担当者:
開始日:
期日:
進捗率:

100%

一時中断:
いいえ
pinned:
いいえ
確認予定日:
前回確認日:
2024/08/01
管理外残件あり:

説明

  • Proxmox VE クラスタ (chuable)
    • docker (compose) 直接利用を想定。
  • Kubernetes クラスタ (feng)
    • Talos Linux で一応構築済
      • 未使用につき現在停止中。たぶん次に使いたくなったら作り直すと思う
    • control plane はすべて VM で、 nagisa (Proxmox VE), sakuno (Proxmox VE), yonagi (Synology DiskStation) 上に分散している
      • 正直 I/O が激しそうで HDD をサスペンドできなくなっている気がするので、 DiskStation に置いておくのもあまり嬉しくないが……

Harbor が気になっているが、 chuable 上の VM にベアメタルで立てるのと feng に立てるのどちらが良いだろうか?


関連するチケット 4 (0件未完了4件完了)

関連している 鯖缶 - 機能 #70: Ryot サーバを docker compose で立てなおす終了nop_thread2024/02/13

操作
関連している 鯖缶 - 機能 #139: chuable 上での docker コンテナの管理終了nop_thread

操作
関連している 鯖缶 - 機能 #439: forge.nukobu 用の CI/CD サービスを用意する終了nop_thread

操作
次のチケットに先行 鯖缶 - 機能 #444: 各種 Docker ホストに Harbor のキャッシュを利用させる終了nop_thread

操作

nop_thread さんが10ヶ月前に更新

nop_thread さんが10ヶ月前に更新

  • 関連している 機能 #70: Ryot サーバを docker compose で立てなおす を追加

nop_thread さんが10ヶ月前に更新

  • 関連している 機能 #139: chuable 上での docker コンテナの管理 を追加

nop_thread さんが9ヶ月前に更新

  • pinnedいいえ にセット

nop_thread さんが6ヶ月前に更新

起票時点から状況が変化しており、今は k8s クラスタを動かしていない。そして Proxmox VE の物理ノードが3台あるのでそちらで “ちゃんとした” HA が機能している。

nop_thread さんが6ヶ月前に更新

  • 前回確認日2024/05/24 にセット

nop_thread さんが6ヶ月前に更新

  • 担当者nop_thread にセット

nop_thread さんが5ヶ月前に更新 · 編集済み

EDIT(2024-08-01): Caddy を reverse proxy にして TLS termination したら何事もなくいけた。

nop_thread さんが5ヶ月前に更新

nop_thread さんが4ヶ月前に更新

  • 関連している 機能 #439: forge.nukobu 用の CI/CD サービスを用意する を追加

nop_thread さんが4ヶ月前に更新

NFS とかは後で考えるとして、ひとまず普通に立ててみる。

nop_thread さんが4ヶ月前に更新

Hardware

The following table lists the minimum and recommended hardware configurations for deploying Harbor.

Resource Minimum Recommended
CPU 2 CPU 4 CPU
Mem 4 GB 8 GB
Disk 40 GB 160 GB

Harbor docs | Harbor Installation Prerequisites

重い……ストレージが特に重い。

nop_thread さんが4ヶ月前に更新

  • ステータス新規 から 進行中 に変更
  • 優先度低め から 通常 に変更
  • 進捗率0 から 30 に変更

ストレージは MinIO とかに逃がせそうだった。
とりあえず立ててはみたが動作確認はこれから。

nop_thread さんが4ヶ月前に更新

https://mastodon.cardina1.red/@lo48576/112882315250471147

どうやら透過的キャッシュプロキシ (ミラー) の利用は Docker だと Docker Hub のミラーしか設定できないらしい。
quay.io とかから pull するイメージはプロキシを経由してくれなそう。

Woodpecker とかは workflow 定義におけるイメージ指定を弄りたくないので、 Docker Hub のキャッシュをしてくれるだけでもマシと割り切って使うしかない。

kagamidai 向けサービスのコンテナについては明示的に harbor のイメージを指すようにするのがよさそう。
単一障害点になるが……まあ仕方あるまい。
DNS を弄ってプロキシに URL を書き換えさせて云々という手も考えないではなかったが、そこまで複雑にしたくはない。
どうせイメージの名前を書き換えるだけなら ansible の roles を弄って play すれば反映できるし、 harbor まわりが故障しても他サービスを復旧させるのはそこまで難しくないだろう。

nop_thread さんが4ヶ月前に更新

  • 進捗率30 から 60 に変更

https://mastodon.cardina1.red/@lo48576/112883069961270114

Woodpecker CI の agent に (Docker の代わりに) Podman を使わせることで、 Harbor のキャッシュレジストリを透過的に使わせることに成功した。

nop_thread さんが4ヶ月前に更新

残る作業は既存の docker コンテナ群を proxy cache から取ってくるようにする作業で、2つの選択肢がある。

  • compose.yaml 等のイメージ名をキャッシュサーバを参照するよう書き換える。または、
  • Docker と docker compose を使っているところを Podman と podman-compose などに移行し、 Podman の設定で透過的にキャッシュサーバを使わせる。

個人的には後者に挑戦してみたいところだが、失敗しづらいのは前者だろうと思う。
少し podman-compose まわりも調べてみるべきか。
例のごとく Debian の stable だとバージョンが古めであることも含めて確認する必要がある。

nop_thread さんが4ヶ月前に更新

MinIO のストレージは 4 GiB だとあっという間に quota exceeded になってしまったので、 16 GiB にしてみている。
GC のスケジュール等はいずれ最適化する必要がありそう。

nop_thread さんが4ヶ月前に更新

  • 前回確認日2024/05/24 から 2024/08/01 に変更

nop_thread さんが4ヶ月前に更新

  • 関連している 機能 #444: 各種 Docker ホストに Harbor のキャッシュを利用させる を追加

nop_thread さんが4ヶ月前に更新

  • 関連している を削除 (機能 #444: 各種 Docker ホストに Harbor のキャッシュを利用させる)

nop_thread さんが4ヶ月前に更新

  • 次のチケットに先行 機能 #444: 各種 Docker ホストに Harbor のキャッシュを利用させる を追加

nop_thread さんが4ヶ月前に更新

  • ステータス進行中 から 終了 に変更
  • 進捗率60 から 100 に変更

nop_thread さんは #note-16 で書きました:

残る作業は既存の docker コンテナ群を proxy cache から取ってくるようにする作業で、2つの選択肢がある。

機能 #444: 各種 Docker ホストに Harbor のキャッシュを利用させる を起票した。
こちらは完了ということで閉じる。

他の形式にエクスポート: Atom PDF