Сбой извлечения из частного репо в kubernetes с «Секретом» docker -credentials »недопустим: data [.dockerconfigjson]: Обязательное значение» - PullRequest
1 голос
/ 24 января 2020

Я пытаюсь получить изображения из моего docker репозитория. Я следовал документации, найденной здесь: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/

Однако после ввода команды:

kubectl create secret generi c docker -credentials --from-file = / my / local / path / to / .docker / config. json --type = kubernetes.io / dockerconfig json

Я получаю следующую ошибку:

Секретный "docker -credentials" недействителен: data [.dockerconfigjson]: Обязательное значение

Я попытался удалить конфигурацию. json и повторно вход в систему, но без изменений в поведении.

docker версия печатает:

Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea838
 Built:             Wed Nov 13 07:29:52 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.5
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.12
  Git commit:       633a0ea838
  Built:            Wed Nov 13 07:28:22 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.10
  GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

версия kubectl печатает:

Client Version: version.Info{
  Major:"1",
  Minor:"17",
  GitVersion:"v1.17.2",
  GitCommit:"59603c6e503c87169aea6106f57b9f242f64df89",
  GitTreeState:"clean",
  BuildDate:"2020-01-18T23:30:10Z",
  GoVersion:"go1.13.5",
  Compiler:"gc",
  Platform:"linux/amd64"
}
Server Version: version.Info{
  Major:"1",
  Minor:"15",
  GitVersion:"v1.15.2",
  GitCommit:"f6278300bebbb750328ac16ee6dd3aa7d3549568",
  GitTreeState:"clean",
  BuildDate:"2019-08-05T09:15:22Z",
  GoVersion:"go1.12.5",
  Compiler:"gc",
  Platform:"linux/amd64"
}

конфигурация. json выглядит так:

{
    "auths": {
        "https://index.docker.io/v1/": {
            "auth": "secret-stuff"
        }
    },
    "HttpHeaders": {
        "User-Agent": "Docker-Client/19.03.5 (linux)"
    }
}

На данный момент я могу ввести учетные данные вручную, но я бы хотел понять, что происходит не так. любая помощь будет оценена!

Ответы [ 2 ]

0 голосов
/ 24 января 2020

При создании secret вы не указали Type файла, из которого вы будете читать, поэтому kubectl неправильно прочитал файл.

Список типов выглядит следующим образом:

SecretTypeOpaque SecretType = "Opaque"
[...]
SecretTypeServiceAccountToken SecretType = "kubernetes.io/service-account-token"
[...]
SecretTypeDockercfg SecretType = "kubernetes.io/dockercfg"
[...]
SecretTypeDockerConfigJSON SecretType = "kubernetes.io/dockerconfigjson"
[...]
SecretTypeBasicAuth SecretType = "kubernetes.io/basic-auth"
[...]
SecretTypeSSHAuth SecretType = "kubernetes.io/ssh-auth"
[...]
SecretTypeTLS SecretType = "kubernetes.io/tls"
[...]
SecretTypeBootstrapToken SecretType = "bootstrap.kubernetes.io/token"

, которые вы можете найти на Kubernetes GitHub kubernetes / pkg / apis / core / types. go

Правильная команда в вашем случае будет kubectl create secret generic docker-credentials --from-file=.dockerconfigjson=path/to/.docker/config.json --type=kubernetes.io/dockerconfigjson

Пожалуйста, обратите внимание на --from-file=.dockerconfigjson=path/to/.docker/config.json, вы должны редактировать только path/to/.docker/config.json

0 голосов
/ 24 января 2020

Вы не запустили команду docker login с приватным репозиторием docker, следовательно, файл config. json не содержит информации аутентификации. Вы можете обратиться к приведенному ниже образцу файла.

Пример:

  {
    "auths": {

     "https://dockerhub.xxxxx.com": {
        "auth": "xxxxxxxxxxxxxxxxxxxxxxxxxx",
        "email": "xxxxx@xxxxx.com"
     }
   },
   "HttpHeaders": {
      "User-Agent": "Docker-Client/18.06.1-ce (linux)"
   }
 }
...