Не удается аутентифицировать секрет Kubernetes с помощью частного репозитория в Docker Hub, поэтому я не могу развернуть - PullRequest
1 голос
/ 22 мая 2019

Я пробовал https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/, и решение в кодировке base 64 в файле yaml (что, в конечном счете, мне и нужно) не проверяет подлинность.(очевидно, это распространенная проблема, и если у кого-то есть файл yaml, у которого он работает, я хотел бы увидеть его или метод, который позволяет безопасное развертывание из частного репозитория, просто чтобы мы не застряли в проблеме xy)

Поэтому я попробовал следующее:

kubectl create secret generic registrykey --from-file=.dockerconfigjson=/home/dbosh/.docker/config.json --type=kubernetes.io/dockerconfigjson

с файлом развертывания:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my_deployment
spec:
  selector:
    matchLabels:
      app: my_deployment
      tier: backend
      track: stable
  replicas: 7
  template:
    metadata:
      labels:
        app: my_deployment
        tier: backend
        track: stable
    spec:
      containers:
        - name: my_deployment
          image: "my_private_repo:image_name"
          ports:
            - name: http
              containerPort: 8082
      imagePullSecrets:
      - name: registrykey

Однако, когда я пытаюсь развернуть, я сохраняюПолучив, что «вытянуть доступ запрещен для my_private_repo, хранилище не существует или может потребовать« вход в Docker ».

Теперь, чтобы создать файл входа в докер, я действительно вошел в систему и снова протестировал вход в систему непосредственно перед восстановлением секрета, а затем повторным развертыванием, и он все еще не аутентифицируется.

Любая помощь приветствуетсяпожалуйста.

ОБНОВЛЕНИЕ (благодаря полезному комментарию):

Может показаться, что мой config.json после входа выглядит примерно так:

cat .docker/config.json 
{
        "auths": {
                "https://index.docker.io/v1/": {}
        },
        "HttpHeaders": {
                "User-Agent": "Docker-Client/18.09.2 (linux)"
        },
        "credsStore": "secretservice"

Это, кажется, не содержит токен.Я сгенерировал это, запустив docker login и предоставив свои учетные данные.Любые идеи кто-нибудь?

1 Ответ

0 голосов
/ 12 июня 2019

В файле config.json нет токена для вашего личного репо, но только для докера-концентратора.

Так что вам нужно пройти повторную аутентификацию в вашем личном репозитории:

docker logout <my_private_repo> && docker login <my_private_repo> -u <user> -p <pass> && cat ~/.docker/config.json

Должно быть немного этого:

"auths": {
        "my_private_repo": {
            "auth": "c3VraG92ZXJzsdfdsQXNocmV2b2h1czg4"
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...