minikube是個可以在自己電腦上體驗(yàn)kubernetes功能的軟件包姓言,怎么安裝可參考 https://minikube.sigs.k8s.io/docs/start/ 來進(jìn)行安裝瞬项,下面說下在安裝過程中遇到的坑。
因?yàn)槲冶容^傾向于使用docker事期,所以minikube 驅(qū)動默認(rèn)就是用docker
1滥壕、運(yùn)行minikube start 結(jié)果出現(xiàn)下面這些錯誤,后來
minikube v1.10.1 on Darwin 10.14.4
? Using the docker driver based on existing profile
?? Starting control plane node minikube in cluster minikube
?? Pulling base image ...
E0517 14:23:52.588016 27398 cache.go:129] Error downloading kic artifacts: getting remote image: GET https://docker.pkg.github.com/v2/kubernetes/minikube/kicbase/manifests/v0.0.10: UNAUTHORIZED: GitHub Docker Registry needs login
?? docker "minikube" container is missing, will recreate.
E0517 14:23:53.966331 27398 oci.go:79] docker daemon seems to be stuck. Please try restarting your docker. Will try to delete anyways: unknown state "minikube": docker inspect minikube --format={{.State.Status}}: exit status 1
stdout:
stderr:
Template parsing error: template: :1:8: executing "" at <.State.Status>: map has no entry for key "State"
?? Creating docker container (CPUs=2, Memory=2200MB) ...
?? StartHost failed, but will try again: recreate: creating host: create: creating: create kic node: create container: docker run -d -t --privileged --security-opt seccomp=unconfined --security-opt apparmor=unconfined --tmpfs /tmp --tmpfs /run -v /lib/modules:/lib/modules:ro --hostname minikube --name minikube --label created_by.minikube.sigs.k8s.io=true --label name.minikube.sigs.k8s.io=minikube --label role.minikube.sigs.k8s.io= --label mode.minikube.sigs.k8s.io=minikube --volume minikube:/var --cpus=2 --memory=2200mb -e container=docker --expose 8443 --publish=127.0.0.1::8443 --publish=127.0.0.1::22 --publish=127.0.0.1::2376 --publish=127.0.0.1::5000 docker.pkg.github.com/kubernetes/minikube/kicbase:v0.0.10: exit status 125
stdout:
stderr:
Unable to find image 'docker.pkg.github.com/kubernetes/minikube/kicbase:v0.0.10' locally
docker: Error response from daemon: Get https://docker.pkg.github.com/v2/kubernetes/minikube/kicbase/manifests/v0.0.10: no basic auth credentials.
See 'docker run --help'.
?? docker "minikube" container is missing, will recreate.
E0517 14:24:45.275003 27398 oci.go:79] docker daemon seems to be stuck. Please try restarting your docker. Will try to delete anyways: unknown state "minikube": docker inspect minikube --format={{.State.Status}}: exit status 1
stdout:
stderr:
Template parsing error: template: :1:8: executing "" at <.State.Status>: map has no entry for key "State"
?? Creating docker container (CPUs=2, Memory=2200MB) ...
?? Failed to start docker container. "minikube start" may fix it: recreate: creating host: create: creating: create kic node: create container: docker run -d -t --privileged --security-opt seccomp=unconfined --security-opt apparmor=unconfined --tmpfs /tmp --tmpfs /run -v /lib/modules:/lib/modules:ro --hostname minikube --name minikube --label created_by.minikube.sigs.k8s.io=true --label name.minikube.sigs.k8s.io=minikube --label role.minikube.sigs.k8s.io= --label mode.minikube.sigs.k8s.io=minikube --volume minikube:/var --cpus=2 --memory=2200mb -e container=docker --expose 8443 --publish=127.0.0.1::8443 --publish=127.0.0.1::22 --publish=127.0.0.1::2376 --publish=127.0.0.1::5000 docker.pkg.github.com/kubernetes/minikube/kicbase:v0.0.10: exit status 125
stdout:
stderr:
Unable to find image 'docker.pkg.github.com/kubernetes/minikube/kicbase:v0.0.10' locally
docker: Error response from daemon: Get https://docker.pkg.github.com/v2/kubernetes/minikube/kicbase/manifests/v0.0.10: no basic auth credentials.
See 'docker run --help'.
?? error provisioning host: Failed to start host: recreate: creating host: create: creating: create kic node: create container: docker run -d -t --privileged --security-opt seccomp=unconfined --security-opt apparmor=unconfined --tmpfs /tmp --tmpfs /run -v /lib/modules:/lib/modules:ro --hostname minikube --name minikube --label created_by.minikube.sigs.k8s.io=true --label name.minikube.sigs.k8s.io=minikube --label role.minikube.sigs.k8s.io= --label mode.minikube.sigs.k8s.io=minikube --volume minikube:/var --cpus=2 --memory=2200mb -e container=docker --expose 8443 --publish=127.0.0.1::8443 --publish=127.0.0.1::22 --publish=127.0.0.1::2376 --publish=127.0.0.1::5000 docker.pkg.github.com/kubernetes/minikube/kicbase:v0.0.10: exit status 125
stdout:
stderr:
Unable to find image 'docker.pkg.github.com/kubernetes/minikube/kicbase:v0.0.10' locally
docker: Error response from daemon: Get https://docker.pkg.github.com/v2/kubernetes/minikube/kicbase/manifests/v0.0.10: no basic auth credentials.
See 'docker run --help'.
?? minikube is exiting due to an error. If the above message is not useful, open an issue:
?? https://github.com/kubernetes/minikube/issues/new/choose
后來查了很多資料兽泣,但都沒找到問題绎橘,但因?yàn)榭吹蕉际莇ocker沒法下載鏡像,所以就懷疑是不是安裝源不對唠倦,但是我是用的是網(wǎng)上大家都推薦的https://registry.docker-cn.com 這個說是docker中國的安裝源称鳞,但我試了下確實(shí)沒法訪問,所以懷疑這個已經(jīng)不可用了稠鼻,于是就把地址改成阿里云的鏡像源地址冈止,因?yàn)槭窃囼?yàn)還不確定,就臨時網(wǎng)上找了個阿里云的鏡像地址https://f1z25q5p.mirror.aliyuncs.com候齿, 發(fā)現(xiàn)這下鏡像可以正常拉取了熙暴。
二,單獨(dú)拉去某個鏡像 minikube 在pull anjone/kicbase這個鏡像時候總是報錯慌盯,在網(wǎng)上找了下周霉,說是地址無法訪問,可以先在docker上面把a(bǔ)njone/kicbase鏡像拉去下來亚皂,然后再通過命令minikube start --vm-driver=docker --base-image="anjone/kicbase" 單獨(dú)指定使用鏡像就可以了俱箱,經(jīng)過這樣操作,終于minikube運(yùn)行起來了
minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
雖然minikube可以運(yùn)行起來了灭必,但是當(dāng)搭建多個nginx 節(jié)點(diǎn)時候狞谱,卻顯示
ImagePullBackOff
kubectl get pod
NAME READY STATUS RESTARTS AGE
hello-minikube-64b667545-dlkcp 0/1 ImagePullBackOff 0 157m
nginx-deployment-6b474476c4-7nxdm 0/1 ImagePullBackOff 0 148m
nginx-deployment-6b474476c4-k6594 0/1 ImagePullBackOff 0 148m
再通過查看pod信息
kubectl describe pod nginx-deployment-6b474476c4-7nxdm
Warning Failed 146m kubelet, minikube Failed to pull image "nginx:1.14.2": rpc error: code = Unknown desc = Get https://registry-1.docker.io/v2/library/nginx/manifests/sha256:706446e9c6667c0880d5da3f39c09a6c7d2114f5a5d6b74a2fafd24ae30d2078: net/http: TLS handshake timeout
Normal Pulling 144m (x4 over 148m) kubelet, minikube Pulling image "nginx:1.14.2"
Warning Failed 144m (x2 over 145m) kubelet, minikube Failed to pull image "nginx:1.14.2": rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout
Normal BackOff 138m (x25 over 148m) kubelet, minikube Back-off pulling image "nginx:1.14.2"
Warning Failed 132m (x7 over 148m) kubelet, minikube Error: ErrImagePull
Warning Failed 123m (x84 over 148m) kubelet, minikube Error: ImagePullBackOff
Warning Failed 105m kubelet, minikube Failed to pull image "nginx:1.14.2": rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
顯示的是拉去鏡像失敗乃摹,經(jīng)過分析應(yīng)該是minikube使用的鏡像源是國外的,所以無法拉去成功跟衅,后來經(jīng)過各種實(shí)驗(yàn)孵睬,發(fā)現(xiàn)minikube有參數(shù)可以設(shè)置源地址,把之前建立的minikube配置 通過 minikube delete 后与斤,重新設(shè)置
minikube start --vm-driver=docker --base-image="anjone/kicbase" --registry-mirror=https://f1z25q5p.mirror.aliyuncs.com
通過
minikube dashboard
可以看到節(jié)點(diǎn)都已正常運(yùn)行
參考文章:
https://minikube.sigs.k8s.io/docs/start/
https://yq.aliyun.com/articles/221687?commentId=17521
https://edu.aliyun.com/lesson_1651_16894?spm=5176.10731542.0.0.471020bejI7ls8#_16894