Kubernetes создает StatefulSet с секретом извлечения изображения?

Для развертывания Kubernetes мы можем указать imagePullSecrets, чтобы позволить ему извлекать образы Docker из нашего частного реестра. Но насколько я могу судить, StatefulSet этого не поддерживает?

Как я могу предоставить pullsecret для своего StatefulSet?

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 }}
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
0
2 715
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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 сначала создаться в вашем кластере.

$ kubectl create -f - <<EOF
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  serviceName: "nginx"
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      imagePullSecrets:
      - name: YOUR-PULL-SECRET-NAME
      containers:
      - name: nginx
        image: k8s.gcr.io/nginx-slim:0.8
        ports:
        - containerPort: 80
          name: web
EOF

$ kubectl get pod web-0 -o yaml | \
  grep -E '^[[:space:]]+imagePullSecrets:' -A1
  imagePullSecrets:
  - name: YOUR-PULL-SECRET-NAME

Странно.. Я не знал эту команду объяснения, это очень полезно, спасибо!

Thomas 10.12.2020 19:54

Я попытался добавить это снова и не могу заставить его работать. Я использую Jetbrains Webstorm с плагином Kubernetes, чтобы получить подсветку синтаксиса в файлах yaml, и я получаю следующее предупреждение при добавлении imagePullSecrets: Key 'imagePullSecrets' is not ожидается здесь. core.v1.PodTemplateSpec <Kubernetes v1.19.x>. Я также получил сообщение об ошибке при попытке обновления с помощью helm: UPGRADE FAILED: ошибка синтаксического анализа YAML в vn-redis/templates/statefulset.yml: ошибка преобразования YAML в JSON: yaml: строка 21: найден символ, который не может запускать какой-либо токен. Любая идея о том, что здесь происходит? " = "

Thomas 10.12.2020 20:01

Мне удалось обойти это, добавив свой pullsecret в учетную запись службы по умолчанию: kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "pullsecret"}]}'. Но я бы предпочел определить этот секрет в моей диаграмме Шлема.

Thomas 10.12.2020 20:03

Это странно. Я также проверил и добавил вывод в свой ответ. Я мог без проблем создать образец statefulset моего ответа на моем k8s 1.19.

Daein Park 11.12.2020 01:49

Я думаю, что что-то не так с моим редактором. Кажется, он вставляет табуляции вместо пробелов в файле yaml. Редактирование файла в другом редакторе исправило это. + intellisense из моего плагина kubernetes должен быть отключен. Ваш ответ работает при использовании другого редактора.

Thomas 11.12.2020 09:46

Другие вопросы по теме