🎃
k8sgpt-operator 開発メモ (ARM Mac 向け)
Kubernetes クラスタ構築
AMD64 コンテナ環境セットアップ ~ Lima VM ~
- Getting Started については README.md 参照
- Limaでは、事前に定義した内容でVMを作ることができます
- Docker 環境を構築する場合のサンプルも公開されています
- 今回は、amd64 の VM を作成したいため、docker.yaml に以下の行を追記します
arch: "x86_64"
- 自前でLLMをホスティングする際はメモリの割り当てを多くすることをお勧めします
- 私は 16GB ほど
- VMの起動
limactl start docker.yaml
- Docker コンテキストの追加
-
docker.yaml
を参考に起動すると、最後に実行して欲しいスクリプトの出力があるので、そちらを反映させます
-
クライアント側に Docker Client のセットアップ
- docker cli のインストール
brew install docker
- docker-buildx のインストール (Makefileで指定されているのでインストールします)
brew install docker-buildx
- Docker の認証情報を扱うプラグインのインストール
brew install docker-credential-helper
kind クラスタセットアップ
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: k8sgpt-operator-test
nodes:
- role: control-plane
- role: worker
- 設定ファイルから kindクラスタの起動
kind create cluster --config kind.yaml
k8sgpt-operator 開発メモ
コントビューションのガイドラインを一読
DCO (Developer’s Certificate of Origin)
CIでコミットに署名が入っているかチェックされます。本文リンク
ユーザ名、メールアドレスを設定しておきましょう。--global -> --local
に変えることでリポジトリ単位でも設定可能です。
git config --global user.name ${USERNAME}
git config --global user.email ${EMAIL}
API(./api)に変更を加えたときに実行するコマンド
- WebhookConfiguration, ClusterRole and CustomResourceDefinition objects の生成
make manifests
- DeepCopy、DeepCopyInto、および DeepCopyObject メソッドの実装を含むコードの生成
make generate
コンテナイメージを作成して kind クラスタでテストする場合
# ビルド
# ※ make docker-buildx は Dockerfile と記述が重複しており途中エラーを吐いてしまうので修正待ち
docker build . -t k8sgpt-operator:test
# ビルドしたイメージを kindのノードに登録する
kind load docker-image k8sgpt-operator:test --name ${KIND_CLUSTER_NAME}
# k8sgpt-operator のインストール
helm install k8sgpt-operator ./chart/operator --set controllerManager.manager.image.repository=k8sgpt-operator --set controllerManager.manager.image.tag=test
ベンダーのLLMではなく自前で構築したい場合
こちらの LocalAI の欄に記載されています。
例では ggml-gpt4all-j というモデルを LocalAI でホスティングしています。
ggml-gpt4all-j
のサイズは 4GB ほど、LocalAI起動時の Init Container でダウンロードされます。RAM は 8GB ほど使用されるかと思いますので、Lima VM の 容量も考慮が必要です。
Discussion