Kubernetes用图像拉秘密创建状态集?

Kubernetes用图像拉秘密创建状态集?,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,对于Kubernetes部署,我们可以指定imagePullSecrets,以允许它从我们的私有注册表中提取Docker图像。但据我所知,StatefulSet不支持这个 如何向我的状态集提供pullsecret? apiVersion: apps/v1 kind: StatefulSet metadata: name: redis namespace: {{ .Values.namespace }} labels: app: redis spec: replicas:

对于Kubernetes部署,我们可以指定imagePullSecrets,以允许它从我们的私有注册表中提取Docker图像。但据我所知,StatefulSet不支持这个

如何向我的状态集提供pullsecret?

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: redis
  namespace: {{ .Values.namespace }}
  labels:
    app: redis
spec:
  replicas: 1
  selector:
    matchLabels:
      app: redis
  serviceName: redis-service
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: redis
    spec:
      terminationGracePeriodSeconds: 10
      # imagePullSecrets not valid here for StatefulSet :-(
      containers:
        - image: {{ .Values.image }}

StatefulSet
支持
imagePullSecrets
。您可以按如下方式进行检查

$ kubectl explain statefulset.spec.template.spec --api-version apps/v1
:
   imagePullSecrets <[]Object>
     ImagePullSecrets is an optional list of references to secrets in the same
     namespace to use for pulling any of the images used by this PodSpec. If
     specified, these secrets will be passed to individual puller
     implementations for them to use. For example, in the case of docker, only
     DockerConfig type secrets are honored. More info:
     https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
:

StatefulSet
支持
imagePullSecrets
。您可以按如下方式进行检查

$ kubectl explain statefulset.spec.template.spec --api-version apps/v1
:
   imagePullSecrets <[]Object>
     ImagePullSecrets is an optional list of references to secrets in the same
     namespace to use for pulling any of the images used by this PodSpec. If
     specified, these secrets will be passed to individual puller
     implementations for them to use. For example, in the case of docker, only
     DockerConfig type secrets are honored. More info:
     https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
:

奇怪。。我不知道解释命令,那是非常有用的谢谢!我再次尝试添加此项,但无法使其正常工作。。我使用Jetbrains Webstorm和Kubernetes插件在yaml文件中获得语法高亮显示,并且在添加imagePullSecrets时得到以下警告:此处不需要键“imagePullSecrets”。core.v1.PodTemplateSpec。尝试使用helm升级时,我还收到一条错误消息:升级失败:vn redis/templates/statefulset.yml上的YAML解析错误:将YAML转换为JSON时出错:YAML:第21行:找到了无法启动任何令牌的字符。有关于这里发生的事情的ide吗?=)我能够解决这个问题,将我的pullsecret添加到默认服务帐户:kubectl补丁服务帐户default-p'{“imagePullSecrets”:[{“name”:“pullsecret”}]}。但我更愿意在我的掌舵图中定义这个秘密……这很奇怪。我也测试并在我的答案中添加了输出。我可以在我的k8s 1.19上创建我答案的statefulset示例,没有问题。我想我的编辑器出了点问题。。它似乎在yaml文件中插入制表符而不是空格。。在另一个编辑器中编辑文件修复了它。+我的kubernetes插件中的intellisense必须被屏蔽。。使用其他编辑器时,您的答案有效。奇怪。。我不知道解释命令,那是非常有用的谢谢!我再次尝试添加此项,但无法使其正常工作。。我使用Jetbrains Webstorm和Kubernetes插件在yaml文件中获得语法高亮显示,并且在添加imagePullSecrets时得到以下警告:此处不需要键“imagePullSecrets”。core.v1.PodTemplateSpec。尝试使用helm升级时,我还收到一条错误消息:升级失败:vn redis/templates/statefulset.yml上的YAML解析错误:将YAML转换为JSON时出错:YAML:第21行:找到了无法启动任何令牌的字符。有关于这里发生的事情的ide吗?=)我能够解决这个问题,将我的pullsecret添加到默认服务帐户:kubectl补丁服务帐户default-p'{“imagePullSecrets”:[{“name”:“pullsecret”}]}。但我更愿意在我的掌舵图中定义这个秘密……这很奇怪。我也测试并在我的答案中添加了输出。我可以在我的k8s 1.19上创建我答案的statefulset示例,没有问题。我想我的编辑器出了点问题。。它似乎在yaml文件中插入制表符而不是空格。。在另一个编辑器中编辑文件修复了它。+我的kubernetes插件中的intellisense必须被屏蔽。。使用其他编辑器时,您的答案有效。