Kubernetes
Budibase を Kubernetes クラスターにインストールします。
Kubernetes で Budibase を使い始める前に、いくつかのコマンド ライン ユーティリティをインストールする必要があります。以下のガイドに従って、Kubectl と Helm をインストールします。
:::ヒント
少なくとも 2GB のメモリを搭載した K8S ノードで実行することをお勧めしますが、より大容量のユースケースでは、より大きなインスタンスをお勧めします。
:::
Kubernetes クラスターをインストールする
既存の Kubernetes クラスターをまだ持っていない場合は、プロバイダーの次のいずれかのガイドに従ってください。
Budibase Helm チャートをインストールする
Kubernetes クラスターが起動して実行されるようになったので、K8S 環境で Budibase を実行するためのすべての関連インフラストラクチャを提供する Budibase helm チャートをインストールできます。次のコマンドを実行して、リポジトリから Helm チャートをダウンロードし、インストールします。
::: ヒント
Budibase という名前の Kubernetes 名前空間に Budibase をインストールする必要があります。これにより、Budibase リソースをクラスターの残りの部分から分離することができます。
:::
helm repo add budibase https://budibase.github.io/budibase/
helm repo update
helm install --create-namespace --namespace budibase budibase budibase/budibase
しばらく待つと、Budibase がすべてのコンテナとリソースを作成します。次に、実行できます:
kubectl get pods -n budibase
K8S クラスターで Budibase インストーラーが稼働しているのを確認できるはずです。
[外部リンクの画像の転送に失敗しました。ソース サイトにリーチング防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-YuOc9IiB-1650374896976)(https://res.cloudinary.com/daog6scxm/image /upload/v1646670651/docs /Screenshot_2021-08-16_at_22.19.58_pnzppx.png)]
イングレス コントローラーの IP アドレスを取得する必要があります。Budibase は、NGINX イングレス コントローラーを利用して、着信トラフィックを他の Budibase サービスに転送します。
次のコマンドで取得できるイングレス コントローラーの IP アドレスを使用して、Budibase インストールにアクセスできます。
kubectl get ingress -n budibase
ブラウザでエントリ URL にアクセスすると、Budibase のインストールが実行されていることがわかります。
アップグレードチャート
最新かつ最高のものを入手するには、次のコマンドを実行してリポジトリを更新し、最新の Budibase Helm チャートを環境にインストールします!
helm repo update
helm upgrade budibase-kubernetes budibase/budibase
構成
負荷分散
デフォルトでは、Budibase は基本的な NGINX イングレス コントローラーを構成して、トラフィックを Budibase サービスにルーティングします。独自のロード バランサーを実行する場合は、Budibase にバンドルされている NGINX イングレス コントローラーをオフにして、独自のイングレス コントローラーを実行できます。
ingress:
nginx: false
aws: true
カスタムドメイン名を使用します
カスタム ドメイン名でインストールした場合は、values.yaml のイングレス コントローラーのホスト セクションに追加する必要があります。yourdomain.com を追加した方法に注目してください。これで、イングレス コントローラーの URL を指す A レコードを DNS プロバイダーに追加できるようになります。
ingress:
enabled: true
nginx: true
className: ""
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- host: yourdomain.com
paths:
- path: /
pathType: Prefix
backend:
service:
name: proxy-service
port:
number: 10000
Budibase の拡張
Budibase Helm チャートの values.yaml で特定のサービスの replicaCount を更新することにより、インストール内のノードをスケーリングできます。たとえば、負荷が高いためにワーカーとアプリ サービスをスケールアップしたい場合は、values.yaml を更新して、replicaCount を大きくすることができます。更新後、チャートをアップグレードして変更を適用します。
services:
dns: cluster.local
proxy:
port: 10000
replicaCount: 1
apps:
port: 4002
replicaCount: 2
logLevel: info
worker:
port: 4001
replicaCount: 2
秘密管理
values.yaml で createSecrets を true に設定すると、budibase は次の資格情報を作成します。
- API リクエストに使用できる内部 API キー。
- JWT シークレット
- オブジェクト ストレージ アクセス キー (MinIO を使用している場合)
- オブジェクト ストレージ キー (MinIO を使用している場合)
キーの値を読み取る必要がある場合は、次のコマンドで kubectl を使用して、k8s キーから値を読み取ることができます。
# for internal API key
kubectl get secret budibase-budibase -o go-template='{
{ .data.internalApiKey }}' -n budibase | base64 --decode
# JWT secret
kubectl get secret budibase-budibase -o go-template='{
{ .data.jwtSecret }}' -n budibase | base64 --decode
# MinIO Access Key
kubectl get secret budibase-budibase -o go-template='{
{ .data.objectStoreAccess }}' -n budibase | base64 --decode
# MinIO Secret Key
kubectl get secret budibase-budibase -o go-template='{
{ .data.objectStoreSecret }}' -n budibase | base64 --decode
レディス
Budibase helm チャートには、デフォルトで Redis サーバーが含まれています。独自の外部 Redis クラスターを使用する場合は、helm チャートで values.yaml ファイルを構成し、off を有効にして Budibase の 1 つをオフにすることができます。デフォルトのバンドルされた Redis をバイパスし、myrediscluster.io でホストされている外部 Redis クラスターを使用する場合、構成は次のようになります。
redis:
enabled: false # disable if using external redis
port: 6379
replicaCount: 1
host: "myrediscluster.io"
password: "your-redis-password"
CouchDB
Budibase Helm チャートは、環境内で 3 ノードの cupDB クラスターを自動的に開始します。既存の CouchDB インスタンスを使用したい場合は、Budibase が提供するものをオフにして、独自のインスタンスを指すことができます。注意 - Budibase が提供するすべての検索機能を使用するには、CouchDB クラスターに検索をインストールする必要があります。mycouch.io でホストされている CouchDB インストールに Budibase をポイントする方法の設定例を次に示します。
couchdb:
enabled: false
replicaCount: 3
url: "http://mycouch.io:1234"
user: "couchuser"
password: "couchpassword"
ミニオ / アマゾン S3
Budibase には、オブジェクト ストレージ用の MinIO サーバーが同梱されています。MinIO は Amazon S3 と互換性があるため、バンドルされている S3 バケット用の MinIO を AWS アカウントで切り替えることができます。MinIO の代わりに S3 を使用する場合、values.yaml は次のようになります。
objectStore:
minio: false
browser: false
port: 9000
replicaCount: 1
accessKey: "your-access-key" # AWS_ACCESS_KEY
secretKey: "your-secret-key" # AWS_SECRET_ACCESS_KEY
トラブルシューティング
クラスター内の接続の問題
Budibase インストールが Kubernetes の Budibase 名前空間で実行されていることを確認してください。トラフィックを Budibase サービスにルーティングするプロキシは、これに依存しています。
まだ質問がありますか?
ヘルプが必要な場合やバグを見つけた場合は、GitHub ディスカッション フォーラムでディスカッションを提出してください。Kubernetes のインストールについては、ディスカッションに次の情報を含めるようにしてください。
使用している K8S プロバイダー (AWS/MiniKube など)
発生しているエラーのスクリーンショット/ログ 構成を
変更した場合は、values.yaml のスクリーンショット
発生している問題に関連するその他の情報 .