未使用 Kuberenetes正确部署应用程序



我在开发Spring Boot应用程序时,使用docker-compose来创建我的容器。对于 Kubernetes,我通过 minikubes 使用了 kompose。我将映像推送到 docker hub,并尝试使用两种方式部署我的容器

共振起来

Kompose convert -f docker-compose.yaml kubectl create -f (deplymentfiles(

但我得到这个回应

WARN Volume mount on the host "/home/App/src/main/docker/postgres-data" isn't supported - ignoring path on the host 
INFO We are going to create Kubernetes Deployments, Services and PersistentVolumeClaims for your Dockerized application. If you need different kind of resources, use the 'kompose convert' and 'kubectl create -f' commands instead. 
INFO Deploying application in "default" namespace 
INFO Successfully created Service: adminer        
INFO Successfully created Service: app            
INFO Successfully created Service: mypostgres     
INFO Successfully created Deployment: adminer     
INFO Successfully created Deployment: app         
INFO Successfully created Deployment: mypostgres  
INFO Successfully created PersistentVolumeClaim: mypostgres-claim0 of size 100Mi. If your cluster has dynamic storage provisioning, you don't have to do anything. Otherwise you have to create PersistentVolume to make PVC work 

当我跑kubectl get pods

NAME                           READY     STATUS             RESTARTS   AGE
adminer-6cd96f8846-69qb8       1/1       Running            0          2m
app-5796c489ff-m46xk           0/1       ImagePullBackOff   0          2m
mypostgres-649865b4d8-nhglj    1/1       Running            0          2m

kubectl describe pod app-5796c489ff-m46xk

显示这个

Name:           app-5796c489ff-m46xk
Namespace:      default
Node:           minikube/192.168.99.100
Start Time:     Mon, 11 Jun 2018 11:02:32 +0200
Labels:         io.kompose.service=app
pod-template-hash=1352704599
Annotations:    <none>
Status:         Pending
IP:             172.17.0.3
Controlled By:  ReplicaSet/app-5796c489ff
Containers:
app:
Container ID:   
Image:          iroolapp
Image ID:       
Port:           8086/TCP
Host Port:      0/TCP
State:          Waiting
Reason:       ImagePullBackOff
Ready:          False
Restart Count:  0
Environment:
DATABASE_HOST:      mypostgres
DATABASE_NAME:      test
DATABASE_PASSWORD:  root
DATABASE_PORT:      5432
DATABASE_USER:      root
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-wdb8n (ro)
Conditions:
Type           Status
Initialized    True 
Ready          False 
PodScheduled   True 
Volumes:
default-token-wdb8n:
Type:        Secret (a volume populated by a Secret)
SecretName:  default-token-wdb8n
Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     <none>
Events:
Type     Reason                 Age              From               Message
----     ------                 ----             ----               -------
Normal   Scheduled              3m               default-scheduler  Successfully assigned app-5796c489ff-m46xk to minikube
Normal   SuccessfulMountVolume  3m               kubelet, minikube  MountVolume.SetUp succeeded for volume "default-token-wdb8n"
Normal   Pulling                1m (x4 over 3m)  kubelet, minikube  pulling image "iroolapp"
Warning  Failed                 1m (x4 over 3m)  kubelet, minikube  Failed to pull image "iroolapp": rpc error: code = Unknown desc = Error response from daemon: pull access denied for iroolapp, repository does not exist or may require 'docker login'
Warning  Failed                 1m (x4 over 3m)  kubelet, minikube  Error: ErrImagePull
Normal   BackOff                1m (x6 over 3m)  kubelet, minikube  Back-off pulling image "iroolapp"
Warning  Failed                 1m (x6 over 3m)  kubelet, minikube  Error: ImagePullBackOff

最后这是我的码头工人撰写文件

version: '3'
services:
app:
image: iroolapp
depends_on:
- mypostgres
ports:
- "9000:8086"
environment:
- DATABASE_HOST=mypostgres
- DATABASE_USER=root
- DATABASE_PASSWORD=root
- DATABASE_NAME=test
- DATABASE_PORT=5432
networks:
default:
mypostgres:
image: postgres:9.6-alpine
container_name: mypostgres
ports:
- "5433:5432"

environment:
- POSTGRES_PASSWORD=root
- POSTGRES_USER=root
- POSTGRES_DB=irooldb
volumes:
- ./postgres-data:/var/lib/postgresql/data
adminer:
image: adminer
ports:
- 8080:8080
networks:
default:
networks:
default:
external:
name: mynetwork

我的问题是:ImagePullBackoff指的是什么? 使用 Kompose 是一个好方法吗? 在使用 Kubernetes 之前将映像推送到 docker Hub 是否是必要的步骤

Q1

ImagePullBackoff指的是什么

从日志中,您可以看到它多次尝试从注册表中提取映像"iroolapp"pod app-5796c489ff-m46xk 的容器需求(请参阅 podcontainer的字段image(,但都失败了。ImagePullBackoff发生在这些失败之后。

第 2 季度

使用Kompose是一个好方法吗?

没用过...

第三季度

在使用 Kubernetes 之前将映像推送到 docker Hub 是否是必要的步骤

不是。如果只是为了简单测试,您可以通过将imagePullPolicy设置为IfNotPresetNever来使用本地图像(确保图像已加载(。或者,您可以拥有私有注册表。

ImagePullBackoff表示您无法获取图像。

您真的阅读了错误消息吗?它说Failed to pull image "iroolapp": rpc error: code = Unknown desc = Error response from daemon: pull access denied for iroolapp, repository does not exist or may require 'docker login'

您是否登录到 docker 中心?你的映像是否在 docker 中心?因为那是它试图拉取图像的地方。

我想通了,实际上在我的 docker compose 文件中,我应该指定引用在 docker 集线器中推送的存储库中发布的图像的图像:

image: docker.io/<dockerHub username>/<imagename>

我认为图像名称根本没有正确的方向。如果您存储在存储库中,请提供完整路径,例如"用户名/存储库:标签",或者首先通过终端"docker 搜索图像名称"中的命令进行搜索。 Kubernetes 一次又一次地拉取映像,直到运行状态,因此可能会重新启动计数很高。因此,请为其提供正确的 url 或私有存储库路径。

相关内容

  • 没有找到相关文章

最新更新