2.44. Kubernetes
对 Kubernetes API 执行操作
2.44.1. 内部 复制链接链接已复制到粘贴板!
- 
							Kubernetes ConfigMap 组件, URI 语法: 
kubernetes-config-maps:masterUrl - 
							Kubernetes 自定义资源组件, URI 语法: 
kubernetes-custom-resources:masterUrl - 
							Kubernetes Deployments 组件, URI 语法: 
kubernetes-deployments:masterUrl - 
							Kubernetes HPA 组件, URI 语法: 
kubernetes-hpa:masterUrl - 
							Kubernetes Job 组件, URI 语法: 
kubernetes-job:masterUrl - 
							Kubernetes Namespaces 组件, URI 语法: 
kubernetes-namespaces:masterUrl - 
							Kubernetes Nodes 组件, URI 语法: 
kubernetes-nodes:masterUrl - 
							Kubernetes 持久性卷组件, URI 语法: 
kubernetes-persistent-volumes:masterUrl - 
							Kubernetes 持久性卷声明组件, URI 语法: 
kubernetes-persistent-volumes-claims:masterUrl - 
							Kubernetes Pod 组件, URI 语法: 
kubernetes-pods:masterUrl - 
							Kubernetes Replication Controller 组件, URI 语法: 
kubernetes-replication-controllers:masterUrl - 
							Kubernetes Resources Quota component, URI syntax: 
kubernetes-resources-quota:masterUrl - 
							Kubernetes Secrets 组件, URI 语法: 
kubernetes-secrets:masterUrl - 
							Kubernetes Service Account 组件, URI 语法: 
kubernetes-service-accounts:masterUrl - 
							Kubernetes Services 组件, URI 语法: 
kubernetes-services:masterUrl - 
							OpenShift Build Config 组件, URI 语法: 
openshift-build-configs:masterUrl - 
							OpenShift Builds 组件, URI 语法: 
openshift-builds:masterUrl - 
							OpenShift Deployment Configs 组件, URI 语法: 
openshift-deploymentconfigs:masterUrl 
有关用法和配置详情,请参阅上述链接。
2.44.2. Maven 协调 复制链接链接已复制到粘贴板!
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者在现有项目中添加协调:
<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kubernetes</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kubernetes</artifactId>
</dependency>
2.44.3. 其他 Camel Quarkus 配置 复制链接链接已复制到粘贴板!
测试内容。
2.44.3.1. 自动注册 Kubernetes 客户端实例 复制链接链接已复制到粘贴板!
						扩展会自动注册名为 kubernetesClient 的 Kubernetes 客户端 Bean。您可以在路由中引用 bean,如下所示:
					
from("direct:pods")
    .to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=listPods")
from("direct:pods")
    .to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=listPods")
						默认情况下,客户端从本地 kubeconfig 文件中配置。您可以通过 application.properties 中的属性自定义客户端配置:
					
quarkus.kubernetes-client.master-url=https://my.k8s.host quarkus.kubernetes-client.namespace=my-namespace
quarkus.kubernetes-client.master-url=https://my.k8s.host
quarkus.kubernetes-client.namespace=my-namespace
完整的配置选项包括在 Quarkus Kubernetes 客户端指南 中。
2.44.3.2. 在从给定端点消耗的集群中只有一个使用者 复制链接链接已复制到粘贴板!
当将同一路由部署到多个 pod 时,最好将这个扩展与 Master 结合使用。在这种情况下,单个消费者将在整个 camel master 命名空间间处于活跃状态。
例如,在多个 pod 上部署了以下路由:
from("master:ns:timer:test?period=100").log("Timer invoked on a single pod at a time");
from("master:ns:timer:test?period=100").log("Timer invoked on a single pod at a time");
可使用类似如下的属性启用 kubernetes 集群服务:
quarkus.camel.cluster.kubernetes.enabled = true
quarkus.camel.cluster.kubernetes.enabled = true
						因此,单个消费者将在 ns camel master 命名空间中激活。这意味着,在一个给定时间,只有一个计时器将在整个集群中生成交换。换句话说,在某个时间点上,消息将在单个 pod 上每 100ms 进行一次日志记录。
					
						kubernetes 集群服务可以通过调整 quarkus.camel.cluster.kubernetes the 属性来 进一步调整。
					
| 配置属性 | 类型 | 默认 | 
|---|---|---|
|   
										 Kubernetes Cluster Service 是否应该根据 'quarkus.camel.cluster.kubernetes114' 配置自动配置。  |   
										  |   
										  | 
|   
										 集群服务 ID (默认为 null)。  |   
										  | |
|   
										 Kubernetes master 的 URL (默认为 Kubernetes 客户端属性读取)。  |   
										  | |
|   
										 向 Kubernetes API 服务器发出请求时使用的连接超时(毫秒)。  |   
										  | |
|   
										 包含 pod 和 configmap 的 Kubernetes 命名空间的名称(默认自动检测到)。  |   
										  | |
|   
										 当前 pod 的名称(默认为从容器主机名中检测)。  |   
										  | |
|   
										 要应用 jitter 因素,以防止所有 pod 在同一即时调用 Kubernetes API (默认为 1.2)。  |   
										  | |
|   
										 当前领导领导租期的默认持续时间(默认为 15000)。  |   
										  | |
|   
										 领导必须停止其服务的截止时间,因为它可能会丢失领导权(默认为 10000)。  |   
										  | |
|   
										 连续两次尝试检查并获取领导权利之间的时间。它利用 jitter 因子(默认为 2000)进行自定义。  |   
										  | |
|   
										 服务查找顺序/优先级(默认为 2147482647)。  |   
										  | |
|   
										 用于进行优化锁定的租期资源的名称(默认为"leaders")。当底层 Kubernetes 资源可以管理单个锁定时,资源名称用作前缀。  |   
										  | |
|   
										 Kubernetes 中使用的租期资源类型,可以是 'config-map' 或 'lease'(默认为 'lease')。  |   
										  | |
|   
										 camel master 命名空间领导是否应在集群中的所有 camel 上下文中平均分配。  |   
										  |   
										  | 
|   
										 用于识别组成集群的 pod 的键/值,默认为空映射。  |   
										  | 
						
						 构建时修复的配置属性。所有其他配置属性可在运行时使用。