
Итак, я пытаюсь опубликовать приватный образ Docker в Kubernetes и сталкиваюсь с некоторыми странными проблемами.
Я начинаю с входа в Docker
docker login -u $DOCKER_USER -p $DOCKER_TOKEN
и это сохранит мой пароль в файле конфигурации для меня, поэтому я запускаю это
kubectl create secret generic regcred --from-file=/root/.docker/config.json --type=kubernetes.io/dockerconfigjson
Я ожидал, что это подберет URL-адрес в config.json
файле, но я получаю эту ошибку
The connection to the server localhost:8080 was refused - did you specify the right host or port?
Поэтому я подумал, что могу также указать сервер.
kubectl create secret generic regcred --from-file=/root/.docker/config.json --type=kubernetes.io/dockerconfigjson --server=https://index.docker.io/v1/
Но все безуспешно.
error: EOF
2020-01-12T19:45:39.7433187Z stdout P Please enter Username:
и поскольку это работает на сервере сборки, я не могу ввести имя пользователя.
Так что же я здесь упускаю?
решение1
kubectl create secret generic regcred --from-file=/root/.docker/config.json --type=kubernetes.io/dockerconfigjson --server=https://index.docker.io/v1/
Вы смешиваете --server=
аргумент kubectl
, который определяет сервер Kubernetes, к которому он будет подключаться, с--docker-server=
Вам следует использовать предоставленную kubectl create secret docker-registry
команду (а не generic
тип), поскольку Secret
созданная специализированной версией команданеттолько .docker/config.json
файл, загруженный в кластер — они структурно отличаются
Также:
В подключении к серверу localhost:8080 было отказано. Вы указали правильный хост или порт?
это явный признак того, что у вас неправильно настроен kubeconfig, поэтому вы можете забыть о любой kubectl
разумной команде, пока не исправите эту проблему