安装
开始之前
确保满足以下条件
- 正在运行版本为 1.25 或更高版本的 Kubernetes 集群。了解如何 安装 Kubernetes 工具。
SuspendJob
功能门控 已启用。在 Kubernetes 1.22 或更高版本中,功能门控默认启用。- (可选)
JobMutableNodeSchedulingDirectives
功能门控(在 Kubernetes 1.22 或更高版本中可用)已启用。在 Kubernetes 1.23 或更高版本中,功能门控默认启用。 - kubectl 命令行工具已与你的集群建立通信。
Kueue 会发布 指标 来监控其操作员。你可以使用 Prometheus 抓取这些指标。如果你没有自己的监控系统,请使用 kube-prometheus。
kueue 中的 webhook 服务器使用内部证书管理来配置证书。如果你想使用第三方证书,例如 cert-manager,请按照以下步骤操作
- 在 配置文件 中将
internalCertManagement.enable
设置为false
。 - 在
config/default/kustomization.yaml
中注释掉internalcert
文件夹。 - 在
config/default/kustomization.yaml
中启用cert-manager
并取消注释所有带有“CERTMANAGER”的章节。
安装已发布版本
要在你的集群中安装 Kueue 的已发布版本,请运行以下命令
kubectl apply --server-side -f https://github.com/kubernetes-sigs/kueue/releases/download/v0.8.0/manifests.yaml
为 prometheus-operator 添加指标抓取
要允许 prometheus-operator 从 kueue 组件中抓取指标,请运行以下命令
注意
此功能依赖于 servicemonitor CRD,请确保先安装 CRD。
我们可以按照 https://prometheus-operator.dev/docs/prologue/quick-start/
进行安装。
kubectl apply --server-side -f https://github.com/kubernetes-sigs/kueue/releases/download/v0.8.0/prometheus.yaml
添加可见性 API 以监控待处理的工作负载
要添加启用监控待处理工作负载的可见性 API,请更改功能门配置并设置 VisibilityOnDemand=true
,然后运行以下命令
kubectl apply --server-side -f https://github.com/kubernetes-sigs/kueue/releases/download/v0.8.0/visibility-api.yaml
有关更多详细信息,请参见可见性 API。
卸载
要从集群中卸载已发布版本的 Kueue,请运行以下命令
kubectl delete -f https://github.com/kubernetes-sigs/kueue/releases/download/v0.8.0/manifests.yaml
安装自定义配置的已发布版本
要在集群中安装自定义配置的已发布版本 Kueue,请执行以下步骤
- 下载该版本的
manifests.yaml
文件
wget https://github.com/kubernetes-sigs/kueue/releases/download/v0.8.0/manifests.yaml
- 使用你喜欢的编辑器,打开
manifests.yaml
。 - 在
kueue-manager-config
ConfigMap 清单中,编辑controller_manager_config.yaml
数据条目。该条目表示默认的 KueueConfiguration。ConfigMap 的内容类似于以下内容
apiVersion: v1
kind: ConfigMap
metadata:
name: kueue-manager-config
namespace: kueue-system
data:
controller_manager_config.yaml: |
apiVersion: config.kueue.x-k8s.io/v1beta1
kind: Configuration
namespace: kueue-system
health:
healthProbeBindAddress: :8081
metrics:
bindAddress: :8080
# enableClusterQueueResources: true
webhook:
port: 9443
manageJobsWithoutQueueName: true
internalCertManagement:
enable: true
webhookServiceName: kueue-webhook-service
webhookSecretName: kueue-webhook-server-cert
waitForPodsReady:
enable: true
timeout: 10m
integrations:
frameworks:
- "batch/job"
integrations.externalFrameworks
字段在 Kueue v0.7.0 及更高版本中可用。
注意
某些 Kubernetes 发行版可能使用 batch/jobs 来执行维护操作。对于这些发行版,在不禁用batch/job
集成的情况下将 manageJobsWithoutQueueName
设置为 true
可能会阻止系统创建的作业执行。- 将自定义清单应用到集群
kubectl apply --server-side -f manifests.yaml
安装最新开发版本
要在集群中安装 Kueue 的最新开发版本,请运行以下命令
kubectl apply --server-side -k "github.com/kubernetes-sigs/kueue/config/default?ref=main"
控制器在 kueue-system
命名空间中运行。
卸载
要卸载 Kueue,请运行以下命令
kubectl delete -k "github.com/kubernetes-sigs/kueue/config/default?ref=main"
从源代码构建并安装
要从源代码构建 Kueue 并将 Kueue 安装在集群中,请运行以下命令
git clone https://github.com/kubernetes-sigs/kueue.git
cd kueue
IMAGE_REGISTRY=registry.example.com/my-user make image-local-push deploy
为 prometheus-operator 添加指标抓取
要允许 prometheus-operator 从 kueue 组件中抓取指标,请运行以下命令
make prometheus
卸载
要卸载 Kueue,请运行以下命令
make undeploy
通过 Helm 安装
要通过 Helm 安装和配置 Kueue,请按照 说明 操作。
更改功能门控配置
Kueue 使用与 Kubernetes 功能门控 中所述类似的机制来配置功能。
要更改某个功能的默认设置,您需要编辑 kueue 安装命名空间中的 kueue-controller-manager
部署,并将 manager
容器参数更改为包括
--feature-gates=...,<FeatureName>=<true|false>
例如,要启用 PartialAdmission
,您应按如下方式更改管理器部署
kind: Deployment
...
spec:
...
template:
...
spec:
containers:
- name: manager
args:
- --config=/controller_manager_config.yaml
- --zap-log-level=2
+ - --feature-gates=PartialAdmission=true
当前支持的功能包括
功能 | 默认值 | 阶段 | 自 | 至 |
---|---|---|---|---|
FlavorFungibility | true | Beta | 0.5 | |
MultiKueue | false | Alpha | 0.6 | |
MultiKueueBatchJobWithManagedBy | false | Alpha | 0.8 | |
PartialAdmission | false | Alpha | 0.4 | 0.4 |
PartialAdmission | true | Beta | 0.5 | |
ProvisioningACC | false | Alpha | 0.5 | 0.6 |
ProvisioningACC | true | Beta | 0.7 | |
QueueVisibility | false | Alpha | 0.5 | |
VisibilityOnDemand | false | Alpha | 0.6 | |
PrioritySortingWithinCohort | true | Beta | 0.6 | |
LendingLimit | false | Alpha | 0.6 | |
MultiplePreemptions | false | Alpha | 0.8 |
下一步
- 阅读
Configuration
的 API 参考