Я следовал по этому URL: Как использовать локальные образы докеров с Minikube? Я не смог добавить комментарий, поэтому подумал поставить вопрос здесь:
На моем ноутбуке,У меня ОС Linux Mint.Подробности, как показано ниже:
Mint version 19,
Code name : Tara,
PackageBase : Ubuntu Bionic
Cinnamon (64-bit)
Согласно одному из ответов по вышеуказанной ссылке:
- Я запустил миникуб и проверил модули и развертывания
xxxxxxxxx:~$ pwd
/home/sj
xxxxxxxxxx:~$ minikube start
xxxxxxxxxx:~$ kubectl get pods
xxxxxxxxxx:~$ kubectl get deployments
Я запустил образы командной строки
xxxxxxxxx:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<username>/spring-docker-01 latest e10f88e1308d 6 days ago 640MB
openjdk 8 81f83aac57d6 4 weeks ago 624MB
mysql 5.7 563a026a1511 4 weeks ago 372MB
Я запустил следующую команду:
eval $ (minikube docker-env)
Теперь, когда я проверяю образы докеров, похоже, как описывает README , он повторно использует демон Docker из Minikube с eval $ (minikube docker-env).
xxxxxxxxxxxxx: ~ $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx alpine 33c5c6e11024 9 days ago 17.7MB
k8s.gcr.io/coredns 1.2.2 367cdc8433a4 5 weeks ago 39.2MB
k8s.gcr.io/kubernetes-dashboard-amd64 v1.10.0 0dab2435c100 5 weeks ago 122MB
k8s.gcr.io/kube-proxy-amd64 v1.10.0 bfc21aadc7d3 6 months ago 97MB
k8s.gcr.io/kube-controller-manager-amd64 v1.10.0 ad86dbed1555 6 months ago 148MB
k8s.gcr.io/kube-apiserver-amd64 v1.10.0 af20925d51a3 6 months ago 225MB
k8s.gcr.io/kube-scheduler-amd64 v1.10.0 704ba848e69a 6 months ago 50.4MB
k8s.gcr.io/etcd-amd64 3.1.12 52920ad46f5b 6 months ago 193MB
k8s.gcr.io/kube-addon-manager v8.6 9c16409588eb 7 months ago 78.4MB
k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64 1.14.8 c2ce1ffb51ed 9 months ago 41MB
k8s.gcr.io/k8s-dns-sidecar-amd64 1.14.8 6f7f2dc7fab5 9 months ago 42.2MB
k8s.gcr.io/k8s-dns-kube-dns-amd64 1.14.8 80cc5ea4b547 9 months ago 50.5MB
k8s.gcr.io/pause-amd64 3.1 da86e6ba6ca1 9 months ago 742kB
gcr.io/k8s-minikube/storage-provisioner v1.8.1 4689081edb10 11 months ago 80.8MB
k8s.gcr.io/echoserver 1.4 a90209bb39e3 2 years ago 140MB
Примечание: если замечено, команда docker images вытянула разные изображения до и после шага 2.
Поскольку я не увидел изображение, которое хотел поставить на миникуб, я вытащил его из док-станции.
xxxxxxxxxxxxx:~$ docker pull <username>/spring-docker-01
Using default tag: latest
latest: Pulling from <username>/spring-docker-01
05d1a5232b46: Pull complete
5cee356eda6b: Pull complete
89d3385f0fd3: Pull complete
80ae6b477848: Pull complete
40624ba8b77e: Pull complete
8081dc39373d: Pull complete
8a4b3841871b: Pull complete
b919b8fd1620: Pull complete
2760538fe600: Pull complete
48e4bd518143: Pull complete
Digest: sha256:277e8f7cfffdfe782df86eb0cd0663823efc3f17bb5d4c164a149e6a59865e11
Status: Downloaded newer image for <username>/spring-docker-01:latest
Проверено, могу ли я увидеть это изображение с помощью команды "docker images".
xxxxxxxxxxxxx:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<username>/spring-docker-01 latest e10f88e1308d 6 days ago 640MB
nginx alpine 33c5c6e11024 10 days ago 17.7MB
Затем я попытался скомпоновать образ, как указано в шаге ссылочной ссылки.
xxxxxxxxxx:~$ docker build -t <username>/spring-docker-01 .
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/sj/Dockerfile: no such file or directory
Поскольку ошибка указывает на то, что dockerfile не существует в расположенииЯ не уверен, где именно я могу увидеть докер-файл для изображения, которое я извлек из докера.
Похоже, мне нужно идти в то место, где было извлечено изображение, и из этого места,Мне нужно запустить вышеупомянутую команду.Пожалуйста, исправьте меня неправильно.
Ниже приведены шаги, которые я буду выполнять после устранения вышеупомянутой проблемы.
# Run in minikube
kubectl run hello-foo --image=myImage --image-pull-policy=Never
# Check that it's running
kubectl get pods
UPDATE-1
В вышеуказанных шагах есть ошибка.Шаг 6 не нужен.Изображение уже извлечено из док-концентратора, поэтому команда docker build
не требуется.
После этого я продолжил и следовал инструкциям, указанным @aurelius в ответ.
xxxxxxxxx:~$ kubectl run sdk-02 --image=<username>/spring-docker-01:latest --image-pull-policy=Never
kubectl run --generator=deployment/apps.v1beta1 is DEPRECATED and will be removed in a future version. Use kubectl create instead.
deployment.apps/sdk-02 created
Проверенные модули и развертывания
xxxxxxxxx:~$ kubectl get pods
NAME READY STATUS RESTARTS AGE
sdk-02-b6db97984-2znlt 1/1 Running 0 27s
xxxxxxxxx:~$ kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
sdk-02 1 1 1 1 35s
Затем было показано развертывание на порту 8084, когда я использовал другие порты, например с 8080 по 8083
xxxxxxxxx:~$ kubectl expose deployment sdk-02 --type=NodePort --port=8084
service/sdk-02 exposed
Затем было проверено, запущена ли служба, проверено, если нет проблемна kubernetes dashboard, а затем проверил URL
xxxxxxxxx:~$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 7h
sdk-02 NodePort 10.100.125.120 <none> 8084:30362/TCP 13s
xxxxxxxxx:~$ minikube service sdk-02 --url
http://192.168.99.101:30362
Когда я попытался открыть URL: http://192.168.99.101:30362 в браузере, я получил сообщение:
This site can’t be reached
192.168.99.101 refused to connect.
Search Google for 192 168 101 30362
ERR_CONNECTION_REFUSED
Так чтовопрос: есть ли проблема с выполненными шагами?
UPDATE-2
Проблема была с шагом ниже:
xxxxxxxxx:~$ kubectl expose deployment sdk-02 --type=NodePort --port=8084
service/sdk-02 exposed
После проверки Dockerfileмоего изображения: <username>/spring-docker-01:latest
Я выставлял на 8083 что-то вроде EXPOSE 8083
Может быть, это вызывало проблему.Поэтому я пошел дальше и изменил команду expose:
xxxxxxxxx:~$ kubectl expose deployment sdk-02 --type=NodePort --port=8083
service/sdk-02 exposed
И затем она начала работать.
Если у кого-то есть что добавить к этому, пожалуйста, не стесняйтесь.
Однако я до сих пор не уверен, где именно я могу увидеть докер-файл для изображения, которое я извлек из докера.