Minikube 安装踩坑记

(Proudly powered by QKQ)

学习使用Kubernetes,需要一个环境,可以在google cloud上买一个,但是还是觉得本地有一个环境比较好。本地的环境,鉴于资源关系,所以选择了minikube。minikube即迷你kubernetes。
我的机器是Macbook,使用的MacOS。安装了Mac下的docker engine/daemon。docker engine跟docker daemon有什么区别呢?其实指向的东西是一样的,叫法不同。

Q: 环境是什么样的?

A: 本地环境

  • Macbook
  • MacOS Mojave 10.14.1
  • docker version 18.09.0
  • 由于需要从外网下载,所以需要使用ssX-NG(你懂的)
  • VirtualBox,使用的虚拟机提供者是VirtualBox

Q: 都遇到了哪些坑?

A:

  • 直接minikube start无法完成安装。
  • 卡在restarting cluster components...
  • 虚拟机无法连接主机的proxy
  • 配置docker engine的env不生效
  • 安装速度慢
  • 不知道怎么样才算安装成功

Q: 最终安装的指令是什么?

A:

export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087; # 注意两个都是http,不是https
minikube start --docker-env http_proxy=http://192.168.99.1:1087 --docker-env https_proxy=http://192.168.99.1:1087 --docker-env no_proxy=localhost,127.0.0.1,192.168.99.0/24 --log_dir=tmp --cpus 4 --memory 8192

解释一下命令:

  • export http_proxy命令是添加命令行代理,主要是为了让minikube可以在命令行通过proxy去下载相关文件
  • --docker-env http_proxy...,设置虚拟机中docker daemon的环境变量,这里的环境变量http_proxy表示虚拟机中docker daemon使用的代理
  • --docker-env no_proxy,设置虚拟机中docker daemon不使用代理的地址段
  • --log_dir=tmp,设置minikube的日志存储位置,这里是当前目录下的tmp文件夹。该目录下会出现INFO和ERROR的日志,INFO是一定会有,ERROR是出错的时候才有。比如
  • --cpus 4,设置虚拟机的cpu核数
  • --memory 8192,设置虚拟机的内存大小,单位为M

还有一个设置log级别的:

  • --v=0 INFO level logs
  • --v=1 WARNING level logs
  • --v=2 ERROR level logs
  • --v=3 libmachine logging
  • --v=7 libmachine --debug level logging

比如:minikube --v=2就是ERROR level logs

Q: minikube干了什么?

A: 没有官方文档解释做了些什么,我猜测的:

  • 下载minikube iso,存储位置为~/.minikube/cache/iso/minikube-v0.32.0.iso
  • 下载kubeadm,存储位置为~/.minikube/cache/v1.12.4/kubeadm
  • 下载kubelet,存储位置为~/.minikube/cache/v1.12.4/kubelet
  • 创建并启动虚拟机
  • 将需要的文件拷入虚拟机
  • 使用kubeadm安装kubernetes
  • kubeadm会下载镜像,并启动镜像

注意:~/.minikube是minikube的缓存和配置文件的存储位置

Q: 为什么直接minikube start无法完成安装?

A: 如上所述,minikube会去下载很多东西,这些在google的服务器上,不使用代理无法下载。

Q: 卡在restarting cluster components...

A: 通过设置log的目录,可以通过具体的log查看卡住的原因。我遇到的一般是下载不了镜像的原因。
一般来说,设置了docker daemon的proxy就能够下载镜像了。如果下载不了,可能是proxy的问题。如果是在Mac上,可以看看下面虚拟机无法联机主机proxy的问题。
如果proxy设置没有问题,但是minikube start还是无法下载镜像的话(通过log查看),可以通过minikube ssh登入虚拟机,然后手动执行
kubeadm config images pull进行镜像的拉取。

Q: 虚拟机无法连接主机的proxy

A: 需要在ss-NG的设置里面,将http proxy listen address设置为0.0.0.0。表示允许任何主机的访问。

Q: 配置docker engine的env不生效?

A: 这个问题跟中途配置--cpu和--memory不生效的问题一样,原因应该是该命令是在创建虚拟机之后就写入到虚拟机里了,所以中途如果需要更改的话,需要删除虚拟机,重来一次。执行minikube delete,然后重新minikube start就可以了。

Q: 安装速度慢

A: 跟网络有关系,毕竟要下载iso和kubeadm和kubelet需要一定时间,这几个东西也不小:

  • minikube-v0.32.0.iso,179M
  • kubeadm,52M
  • kubelet,169M
    其中还有镜像的大小:


    minikube_images.png

Q: 不知道怎么才算安装成功?

A: 几个地方可以查看:
minikube安装完成之后提示"Please enjoy minikube"


minikue_success.png

kubectl version的结果:


kubectl_version.png

使用minikube ssh登录进去之后的镜像和容器:

$ docker images
REPOSITORY                                TAG                 IMAGE ID            CREATED             SIZE
golang                                    1.12-rc             62c3cb756f2b        7 days ago          768MB
k8s.gcr.io/kubernetes-dashboard-amd64     v1.10.1             f9aed6605b81        2 weeks ago         122MB
k8s.gcr.io/kube-proxy                     v1.12.4             6d393e89739f        3 weeks ago         96.5MB
k8s.gcr.io/kube-apiserver                 v1.12.4             c04b373449d3        3 weeks ago         194MB
k8s.gcr.io/kube-controller-manager        v1.12.4             51b2a8e5ff78        3 weeks ago         164MB
k8s.gcr.io/kube-scheduler                 v1.12.4             c1b5e63c0b56        3 weeks ago         58.4MB
k8s.gcr.io/etcd                           3.2.24              3cab8e1b9802        3 months ago        220MB
k8s.gcr.io/coredns                        1.2.2               367cdc8433a4        4 months ago        39.2MB
k8s.gcr.io/echoserver                     1.10                365ec60129c5        9 months ago        95.4MB
k8s.gcr.io/kube-addon-manager             v8.6                9c16409588eb        10 months ago       78.4MB
k8s.gcr.io/pause                          3.1                 da86e6ba6ca1        12 months ago       742kB
gcr.io/k8s-minikube/storage-provisioner   v1.8.1              4689081edb10        14 months ago       80.8MB

docker ps的结果:

CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS               NAMES
45b499003095        f9aed6605b81           "/dashboard --insecu…"   About an hour ago   Up About an hour                        k8s_kubernetes-dashboard_kubernetes-dashboard-5bff5f8fb8-jf7cn_kube-system_3becda82-109f-11e9-a635-080027950248_6
4b543d5826a4        4689081edb10           "/storage-provisioner"   About an hour ago   Up About an hour                        k8s_storage-provisioner_storage-provisioner_kube-system_3c18aa92-109f-11e9-a635-080027950248_5
d1b90336f259        6d393e89739f           "/usr/local/bin/kube…"   About an hour ago   Up About an hour                        k8s_kube-proxy_kube-proxy-wkjvw_kube-system_a1d18719-1163-11e9-82ed-080027950248_0
38b20b7159b3        k8s.gcr.io/pause:3.1   "/pause"                 About an hour ago   Up About an hour                        k8s_POD_kube-proxy-wkjvw_kube-system_a1d18719-1163-11e9-82ed-080027950248_0
5f9fb9690da5        367cdc8433a4           "/coredns -conf /etc…"   2 hours ago         Up About an hour                        k8s_coredns_coredns-576cbf47c7-p6jtb_kube-system_356e9d95-109f-11e9-a635-080027950248_3
cefd5489117d        367cdc8433a4           "/coredns -conf /etc…"   2 hours ago         Up About an hour                        k8s_coredns_coredns-576cbf47c7-72lfg_kube-system_35709bb7-109f-11e9-a635-080027950248_3
89ae1be3eb8d        365ec60129c5           "/usr/local/bin/run.…"   2 hours ago         Up 2 hours                              k8s_hello-minikube_hello-minikube-6b75d57bbd-82kz2_default_4277ca41-10ae-11e9-a635-080027950248_3
a79f3369be02        k8s.gcr.io/pause:3.1   "/pause"                 2 hours ago         Up 2 hours                              k8s_POD_coredns-576cbf47c7-72lfg_kube-system_35709bb7-109f-11e9-a635-080027950248_3
a84812c7f90f        k8s.gcr.io/pause:3.1   "/pause"                 2 hours ago         Up 2 hours                              k8s_POD_kubernetes-dashboard-5bff5f8fb8-jf7cn_kube-system_3becda82-109f-11e9-a635-080027950248_3
928b5194a662        k8s.gcr.io/pause:3.1   "/pause"                 2 hours ago         Up 2 hours                              k8s_POD_coredns-576cbf47c7-p6jtb_kube-system_356e9d95-109f-11e9-a635-080027950248_3
1568fa422077        k8s.gcr.io/pause:3.1   "/pause"                 2 hours ago         Up 2 hours                              k8s_POD_storage-provisioner_kube-system_3c18aa92-109f-11e9-a635-080027950248_3
e59fdc28d4a7        k8s.gcr.io/pause:3.1   "/pause"                 2 hours ago         Up 2 hours                              k8s_POD_hello-minikube-6b75d57bbd-82kz2_default_4277ca41-10ae-11e9-a635-080027950248_3
beafe5c71c98        51b2a8e5ff78           "kube-controller-man…"   2 hours ago         Up 2 hours                              k8s_kube-controller-manager_kube-controller-manager-minikube_kube-system_62402c9ecb1701a979883b1f71d73a28_0
64f5023d6f25        c1b5e63c0b56           "kube-scheduler --ad…"   2 hours ago         Up 2 hours                              k8s_kube-scheduler_kube-scheduler-minikube_kube-system_e1b3e16379a55d4c355fa42bc75eb023_3
050aba98dfbd        3cab8e1b9802           "etcd --advertise-cl…"   2 hours ago         Up 2 hours                              k8s_etcd_etcd-minikube_kube-system_400930335566057521570dcbaf3dbb0b_3
f668c2424f79        9c16409588eb           "/opt/kube-addons.sh"    2 hours ago         Up 2 hours                              k8s_kube-addon-manager_kube-addon-manager-minikube_kube-system_d682efea6fd7d1c11b13f78e8c81af08_3
ce5a972e40bf        c04b373449d3           "kube-apiserver --au…"   2 hours ago         Up 2 hours                              k8s_kube-apiserver_kube-apiserver-minikube_kube-system_cd449a681c0514127b733c5f103919f2_1
7cb7b9d729aa        k8s.gcr.io/pause:3.1   "/pause"                 2 hours ago         Up 2 hours                              k8s_POD_kube-scheduler-minikube_kube-system_e1b3e16379a55d4c355fa42bc75eb023_3
73f0ef3e2040        k8s.gcr.io/pause:3.1   "/pause"                 2 hours ago         Up 2 hours                              k8s_POD_kube-controller-manager-minikube_kube-system_62402c9ecb1701a979883b1f71d73a28_0
93a060e8c13c        k8s.gcr.io/pause:3.1   "/pause"                 2 hours ago         Up 2 hours                              k8s_POD_etcd-minikube_kube-system_400930335566057521570dcbaf3dbb0b_3
2c6c4cad486b        k8s.gcr.io/pause:3.1   "/pause"                 2 hours ago         Up 2 hours                              k8s_POD_kube-apiserver-minikube_kube-system_cd449a681c0514127b733c5f103919f2_1
4265c3c78569        k8s.gcr.io/pause:3.1   "/pause"                 2 hours ago         Up 2 hours                              k8s_POD_kube-addon-manager-minikube_kube-system_d682efea6fd7d1c11b13f78e8c81af08_3

Q: minikube ssh很慢?

A: 使用minikube --logtostderr -v 9 ssh指令,可以看到minikube会去查看是否有更新,所以很慢。目前没有什么解决办法,可以尝试手动ssh进入虚拟机。
怎么手动登入呢?
使用用户:docker,密码:tcuser登录。比如:
ssh docker@192.168.99.100,然后输入密码

Q: minikube的常用指令有哪些?

A:

  • minikube version,查看minikube的版本
  • minikube start,启动minikube
  • minikube ssh,ssh到虚拟机中
  • minikube logs,显示minikube的log
  • minikube dashboard,启动minikube dashboard
  • minikube ip,显示虚拟机地址
  • minikube stop,停止虚拟机
  • minikube delete,删除虚拟机
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容