KNative 服务是否不允许 initContainers 字段?



我正在尝试使用 KNative 部署带有容器和 initContainer 的服务。
如果这很重要,我在没有边车注入的情况下安装了 Istio。
这是我得到的错误:

Internal error occurred: admission webhook "webhook.serving.knative.dev" denied the request: validation failed: must not set the field(s): spec.template.spec.initContainers
volumes not mounted: [some_script]: spec.template.spec.containers[0].volumeMounts

我的 YAML 文件:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: my-service
spec:
template:
spec:
containers:
- image: image
imagePullPolicy: IfNotPresent
name: my-container
ports:
- containerPort: 1234
volumeMounts:
- mountPath: ........
name: .....
.......
initContainers:
- args:
- -c
- /some_dir/some_script.sh
command:
- /bin/sh
image: alpine
imagePullPolicy: IfNotPresent
name: my-init-container
volumeMounts:
- mountPath: /some_dir
name: some_dir
- mountPath: /some_dir/some_script.sh
name: some_script
subPath: some_script.sh
- configMap:
defaultMode: 511
name: some_script.sh
name: some_script

谢谢!

Knative 服务 API 规范中没有 Init 容器,这让我相信它不受支持。

为了给Arghya的答案增添更多色彩,Knative现在故意排除了init容器,因为它们可以在冷启动期间引起大量(无限(的额外延迟。此外,Knative 的目标之一是简化大部分 Kubernetes API,因此像 init 容器这样的解决方案也可以作为用户容器的启动部分实现。

这里限制性的一个原因是,稍后添加到 API 比从中删除要容易得多,因此初始 API 很少查看哪些约束非常繁重。

Knative在功能标志后面引入了init容器注入。 请查看 knative.dev 网站上的文档:https://knative.dev/docs/serving/configuration/feature-flags/#kubernetes-init-containers

相关内容

  • 没有找到相关文章

最新更新