第 3 章 配置无服务器应用程序
3.1. 覆盖 Knative Serving 系统部署配置
您可以通过修改 KnativeServing
自定义资源(CR)中的 deployments
spec 来覆盖某些特定部署的默认配置。
注意
您只能覆盖部署中默认定义的探测。
所有 Knative Serving 部署都会默认定义一个就绪度和存活度探测,但以下例外:
-
net-kourier-controller
和3scale-kourier-gateway
仅定义就绪度探测。 -
net-istio-controller
和net-istio-webhook
定义没有探测。
3.1.1. 覆盖系统部署配置
目前,支持覆盖 resources
, replicas
, labels
, annotations
, 和 nodeSelector
项的默认配置设置,以及探测的 readiness
和 liveness
字段的默认设置。
在以下示例中,KnativeServing
CR 会覆盖 Webhook
部署,以便:
-
net-kourier-controller
的readiness
探测超时设置为 10 秒。 - 部署指定了 CPU 和内存资源限制。
- 部署有 3 个副本。
-
添加
example-label: label
标签。 -
添加
example-annotation:
注解。 -
nodeSelector
字段被设置为选择带有disktype: hdd
标签的节点。
注意
KnativeServing
CR 标签和注解设置覆盖部署本身和生成的 Pod 的部署标签和注解。
KnativeServing CR 示例
apiVersion: operator.knative.dev/v1beta1
kind: KnativeServing
metadata:
name: ks
namespace: knative-serving
spec:
high-availability:
replicas: 2
deployments:
- name: net-kourier-controller
readinessProbes: 1
- container: controller
timeoutSeconds: 10
- name: webhook
resources:
- container: webhook
requests:
cpu: 300m
memory: 60Mi
limits:
cpu: 1000m
memory: 1000Mi
replicas: 3
labels:
example-label: label
annotations:
example-annotation: annotation
nodeSelector:
disktype: hdd
- 1
- 您可以使用
readiness
和liveness
探测覆盖来覆盖在 Kubernetes API 中指定的一个部署中的一个容器探测的所有字段,与探测 handler:exec
,grpc
,httpGet
, 和tcpSocket
相关的字段除外。