@noute

Как запустить образ Docker registry в Kubernetes?

Здравствуйте недавно начал изучать kubernetes 2 вопроса.
1. Как запустить образ из Docker registry в Kubernetes ?
2. Я делаю так но это не работает.
docker run -it httpd /bin/sh
docker commit -m "test" httpd name-image
и потом пытаюсь запусить
kubectl create deployment nginx --image=httpd

Правильно ли Я делаю ?
  • Вопрос задан
  • 1840 просмотров
Решения вопроса 1
OxCom
@OxCom
Добрый день. Из описания не понятно где, что и как вы делаете. Поиграем в угадайку:

1) minikube:
Заходим в minikube shell и там что-то делать со встроенным докером и там работать с образами. Как-то так:
host$ docker run -d nginx:latest
host$ docker exec -it <container> /bin/sh
container$ # hack, hack, hack...
container$ exit
host$ docker commit <container> <yuour-image-name:and-tag-here>

После этого вы можете использовать новый образ в minikube, где производили изменения. Помните, что minikube отличается от реального k8s кластера.

2) k8s cloud или baremetal
Тут для своих образов нужно создавать собственный registry. Поднимать его лучше всего отдельно, чтобы при создании нового кластера не собирать все версии ваших docker images (иначе где он возьмёт эти образы?).

Допустим есть какой-то приватный registry доступом по логину и паролю. Для его использования нужно создать секрет в k8s с конфигурацией, которая хранит нужную пару логина и пароля.
apiVersion: v1
kind: Secret
type: kubernetes.io/dockerconfigjson
data:
    .dockerconfigjson: <configuration>
metadata:
    name: registry-secret

Как сделать, читаем тут

Далее мы можем использовать приватный registry примерно так:
# ...
spec:
	imagePullSecrets:
		-   name: registry-secret
	# ...
	containers:		
		-   name: php
			image: <private-registry-domain>/<image-name:tag-here>


Так же можно сделать авторизацию по ключам, но это уже другая история, которая потянет на статью на хабре.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@q2digger
никого не трогаю, починяю примус
вот статья, которая прям сразу отвечает на все вопросы. официальное руководство на официальном сайте.
https://kubernetes.io/docs/concepts/workloads/cont...
в деплойменте секция containers это и есть ваш контейнер докера.
spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
Ответ написан
Комментировать
@noute Автор вопроса
Может есть какая нибудь статья или что нибудь с примерами толковое ?
Буду признателен
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы