Dev Services for Kubernetes
Kubernetes 的 Dev 服务会在 dev 模式和运行测试时自动启动 Kubernetes API 服务器。因此您不必手动启动 Kubernetes 集群。应用程序会自动配置。
Enabling / Disabling Dev Services for Kubernetes
除非出现以下情况,否则 Kubernetes 的 Dev 服务将自动启用:
-
quarkus.kubernetes-client.devservices.enabled`设为 `false
-
the
api-server-url
is configured -
找到了有效的 Kube 配置文件且
quarkus.kubernetes-client.devservices.override-kubeconfig`未设为 `true
-
您包含了 `quarkus-test-kubernetes-client`依赖
Kubernetes 的 Dev 服务依靠 Docker 来启动 API 服务器。如果您的环境不支持 Docker,您将需要手动启动 Kubernetes 集群,或连接到已在运行的 Kubernetes 集群。您可以使用 Kube 配置文件或 KubernetesClientBuildConfig类中提供的各种属性来配置 Kubernetes 集群访问。
Shared cluster
大多数时候,您需要在应用程序之间共享集群。Kubernetes 的 Dev 服务实现了 _service discovery_机制,能让您运行在 dev 模式的多个 Quarkus 应用程序共享单个集群。
Kubernetes 的 Dev 服务会启动带有 `quarkus-dev-service-kubernetes`标签的容器,该标签用于识别容器。 |
如果您需要多个(共享)集群,您可以配置 quarkus.kubernetes-client.devservices.service-name`配置属性并指示集群名称。它会查找带有已定义名称的容器,或在找不到任何容器时启动新的容器。默认服务名称为 `kubernetes
。
共享在 dev 模式下默认启用,但在测试模式下禁用。您可以使用 `quarkus.kubernetes-client.devservices.shared=false`禁用共享。
Configuring the cluster
Kubernetes 的 Dev 服务提供三种不同类型的 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 服务器。如果您需要一个可以启动 Pod 的功能齐全的 Kubernetes 集群,可以使用 `k3s`或 `kind
。请注意,它们都需要在 Docker 特权模式下运行。
如果未设置 api-version
,将使用给定类型的最新版本。否则,版本必须与 version supported by the given flavor相匹配。