Dev Services for Kubernetes
Dev Services for Kubernetesは、開発モード時やテスト実行時にKubernetes APIサーバーを自動的に起動します。そのため、手動でKubernetesクラスタを起動する必要はありません。アプリケーションは自動的に設定されます。
Dev Services for Kubernetesの有効化/無効化
Dev Services for Kubernetesは、以下の場合を除き、自動的に有効化されます。
-
quarkus.kubernetes-client.devservices.enabled
がfalse
に設定されている場合 -
api-server-url
が設定されている場合 -
有効な Kube 設定ファイルが見つかり、
quarkus.kubernetes-client.devservices.override-kubeconfig
がtrue
に設定されていない場合 -
quarkus-test-kubernetes-client
の依存関係を含めている場合
Dev Services for Kubernetesは、APIサーバーの起動にDockerを利用しています。お使いの環境がDockerをサポートしていない場合、Kubernetesクラスタを手動で起動するか、すでに稼働しているKubernetesクラスタに接続する必要があります。Kubernetesクラスタへのアクセスは、Kubeの設定ファイルか、 KubernetesClientBuildConfig クラスで利用できる各種プロパティを使用して設定することができます。
共有クラスター
ほとんどの場合、アプリケーション間でクラスターを共有する必要があります。Dev Services for Kubernetesは、開発モードで実行されている複数のQuarkusアプリケーションが1つのクラスターを共有するための サービス検出 メカニズムを実装しています。
Dev Services for Kubernetesは、コンテナの識別に使用される quarkus-dev-service-kubernetes ラベルを付与してコンテナを起動します。
|
複数の(共有)クラスターが必要な場合は、 quarkus.kubernetes-client.devservices.service-name
設定プロパティを構成して、クラスター名を指定します。定義された名前のコンテナを検索し、見つからない場合は新しいコンテナを起動します。デフォルトのサービス名は kubernetes
です。
共有は、devモードではデフォルトで有効ですが、testモードでは無効です。共有は quarkus.kubernetes-client.devservices.shared=false
で無効にできます。
クラスタの設定
Dev Services for Kubernetesは、3つの異なるフレーバーのKubernetesクラスタを提供します。各フレーバーは、異なるKubernetes APIバージョンをサポートしています。フレーバーとバージョンは、 quarkus.kubernetes-client.devservices.flavor
と quarkus.kubernetes-client.devservices.api-version
プロパティを使用して設定することができます。
quarkus.kubernetes-client.devservices.flavor=api-only # k3s or kind
quarkus.kubernetes-client.devservices.api-version=1.22
api-only
は、Kubernetes API Serverを起動するだけです。Podをスピンアップすることができる、完全な機能を持ったKubernetesクラスタが必要な場合は、 k3s
または kind
を使用できます。 どちらも特権モードのDockerで実行する必要があることに注意してください。
api-version
が設定されていない場合は、与えられた flavor の最新版が使用されます。それ以外の場合は、 定められた flavor がサポート するバージョンと一致しなければなりません。