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

Does KNative serving not allow initContainers field?

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

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 服务中没有 Init 容器 API spec 这让我相信它不受支持。

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

这里限制的一个原因是添加到 API 比从中删除要容易得多,所以最初的 API 是最小的,看看哪些限制是非常繁重的。