环境

k8s相关

~# minikube version
minikube version: v1.2.0


~# kubectl version
Client Version: version.Info{Major:“1”, Minor:“2”, GitVersion:“v1.2.0”, GitCommit:“5cb86ee022267586db386f62781338b0483733b3”, GitTreeState:“clean”}
Server Version: version.Info{Major:“1”, Minor:“15”, GitVersion:“v1.15.0”, GitCommit:“e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529”, GitTreeState:“clean”}

宿主机

~# docker version
Client:
Version: 18.09.7
API version: 1.39
Go version: go1.10.1
Git commit: 2d0083d
Built: Fri Aug 16 14:20:06 2019
OS/Arch: linux/amd64
Experimental: false

Server:
Engine:
Version: 18.09.7
API version: 1.39 (minimum version 1.12)
Go version: go1.10.1
Git commit: 2d0083d
Built: Wed Aug 14 19:41:23 2019
OS/Arch: linux/amd64
Experimental: false


~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.1 LTS
Release: 18.04
Codename: bionic

步骤

按照 k8s in action 里用kubectl创建第一个应用因为luksa/kubia这个镜像在官方的docker hub里,我就在宿主机里的docker设置了国内镜像源后push到我自己的阿里的镜像仓库里了然后按照步骤kubectl run 怎么也起不来

现象

其实就是拉不下 镜像而且一值卡住

~# kubectl get pods
NAME READY STATUS RESTARTS AGE
kubia-c4ct9 0/1 ImagePullBackOff 0 16m

处理

  1. 发现我的仓库是私有的,就要配置secrets参照: 从私有仓库拉取镜像来处理.
pull access denied for registry.cn-hangzhou.aliyuncs.com/xxx/kubia, repository does not exist or may require 'docker login'

可以看到这里已经创建了基于阿里云的secrets

~# kubectl get secrets
NAME TYPE DATA AGE
aliyun kubernetes.io/dockercfg 1 4m

这里给出的是kubectl create -f的方式, k8s in action用的是kubectl run的命令.这里改成

kubectl run kubia --image= registry.cn-hangzhou.aliyuncs.com/xxx/kubia:latest --port=8080 --generator=run/v1 --overrides='{ "spec": { "imagePullSecrets": [{"name": "aliyun"}]}}'

在这里插入图片描述

  1. 用公有仓库发现也不行

minikube ssh登陆VitualBox创建出来的vm在里面用docker pull 镜像是可以的,但是发现还是ImagePullBackOff

最终发现是虚拟机配置太低,我用的4核4G,后来关掉宿主虚拟机改成8G,果然一把成功,单数宿主机的负担还是挺重的:
在这里插入图片描述

总结

  1. 宿主机VM配置要高,尤其是cpu,因为里面的minikube要用VitualBox起个虚拟机,CPU负担重
  2. 如果发现ImagePullBackOff ,可以现在宿主机上pull,如果能再用minikube ssh登陆minikube创建的虚拟机,在里面看能不能pull下来
  3. 如果登陆minikube创建的虚拟机发现已经pull下来了,用kubectl get po查看发现还是ImagePullBackOff,就需要minikube delete,然后升级宿主机配置,从头再来.
  4. 要分清是私有仓库,还是公共的仓库.私有仓库要配置secrets
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐