在Mac上安装Minikube 1.0
最近这几年,软件开发翻天覆地的变化,当个软件行业从业者,不学习新东西肯定是不行的。从微服务到容器化服务开发,其实并没有多长时间,随着Docker和Kubenetes的大热,还必须要跟上脚步才行,做一个程序员真不容易,做一个老程序员更难。
Docker和Kubenetes是什么,我这里就不介绍了,比我了解这玩意的的人,大有人在,如果你想了解,请自我学习,本文结尾也推荐了《IBM微讲堂 Kubenetes》系列,一共十个视频,看一遍基本也就都懂了。
如果你开发微服务想控制和容器编排工具有互动,比如调用K8s的API之类,或者你想本Mac地装一个单机版本的K8s,我也走了一些弯路,没少浪费时间。K8s安装是一个不小的工程,但是我并不是一个很好的运维,也仅仅在开发层面了解K8s,所以装一个单机版本非常有必要,这里推荐你去安装Minikube
,这就是一个单机版本的单节点K8s。其实本来就想一个安装记录,但是估计也有不少人会遇到安装的问题,那我就稍微写详细一点,帮助大家稍微少走一点弯路。
安装Minikube
第一步,你先要越过GFW
,至于什么是GFW怎么越过去这里就不详细说了。Minikube
需要你本地装有VirtualBox
,推荐你下载一个比较新的版本,因为要在上面运行一个虚拟机来跑K8s的节点。
修改网络配置
我用的软件是ShadowsocksX-NG
这个软件,早期版本并不支持代理,后期版本使用了privoxy实现了HTTP和Socks,但是本文只需要使用HTTP代理就好了。
首先修改进入Performance
中,把Advance
中的Socks5
地址和HTTP
中的监听地址都改为0.0,0,0就Ok了,这样你就能接收非本地的请求代理访问ss了。
安装
Mac下安装太容易了,别告诉我你没有brew
。
brew cask install minikube
大功告成。
下载安装kubectl ,需要手工该权限,这是K8s的命令行控制工具
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.14.0/bin/darwin/amd64/kubectlsudo mv kubectl /usr/local/bin/chmod +x /usr/local/bin/kubectl
安装完Minikube 先测试下网络环境,下面命令正常说明代理服务没问题
curl -x 192.168.99.1:1087 http://baidu.com
启动
用下面命令,让K8s节点的docker,使用下面代理访问,insecure-registry详解见本文末尾扩展阅读
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=127.0.0.1/24 --insecure-registry=192.168.99.1:5000
见到下面log为启动成功。
???? minikube v1.0.0 on darwin (amd64)???? Downloading Kubernetes v1.14.0 images in the background ...???? Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...???? "minikube" IP address is 192.168.99.105???? Configuring Docker as the container runtime ... ▪ env HTTP_PROXY=http://192.168.99.1:1087 ▪ env HTTPS_PROXY=http://192.168.99.1:1087 ▪ env NO_PROXY=127.0.0.1/24???? Version of container runtime is 18.06.2-ce⌛ Waiting for image downloads to complete ...E0503 17:26:45.170139 5798 start.go:209] Error caching images: Caching images for kubeadm: caching images: caching image /Users/freewolf/.minikube/cache/images/k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64_1.14.13: fetching remote image: Get https://k8s.gcr.io/v2/: dial tcp 74.125.203.82:443: i/o timeout✨ Preparing Kubernetes environment ...❌ Unable to load cached images: loading cached images: loading image /Users/freewolf/.minikube/cache/images/gcr.io/k8s-minikube/storage-provisioner_v1.8.1: stat /Users/freewolf/.minikube/cache/images/gcr.io/k8s-minikube/storage-provisioner_v1.8.1: no such file or directory???? Pulling images required by Kubernetes v1.14.0 ...???? Launching Kubernetes v1.14.0 using kubeadm ... ⌛ Waiting for pods: apiserver proxy etcd scheduler controller dns???? Configuring cluster permissions ...???? Verifying component health .....???? kubectl is now configured to use "minikube"???? Done! Thank you for using minikube!
中间的错误信息说明本地的cache中没有所需文件都要连接互联网拉取。中间时间很长需要20分钟,因为要下载1g的内容。
如果你想知道都在下载哪些内容,你可以再开一个命令行行,用下面三个命令查看:
1 进入K8s节点
2 查看当前镜像,你会看到镜像不断增多
3 查看进程 你可以看到当前在pull什么镜像
4 查看启动容器
mimikube sshdocker imagesps -auxdocker ps
插件配置
我又装了一个监控,一个反向代理两个插件
minikube addons enable ingress✅ ingress was successfully enabledminikube addons enable ingress✅ ingress was successfully enabled
查看插件详情
minikube addons list- addon-manager: enabled- dashboard: enabled- default-storageclass: enabled- efk: disabled- freshpod: disabled- gvisor: disabled- heapster: disabled- ingress: enabled- logviewer: disabled- metrics-server: enabled- nvidia-driver-installer: disabled- nvidia-gpu-device-plugin: disabled- registry: disabled- registry-creds: disabled- storage-provisioner: enabled- storage-provisioner-gluster: disabled
启动Dashboard
输入minikube dashboard
,当所需镜像下载完毕后会自动打开网页
minikube dashboard???? Enabling dashboard ...???? Verifying dashboard health ...???? Launching proxy ...???? Verifying proxy health ...???? Opening http://127.0.0.1:60708/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/ in your default browser...
查看镜像情况
进入容器minikube ssh
查看镜像安装情况,可以看到装的东西不少。
docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEk8s.gcr.io/kube-proxy v1.14.0 5cd54e388aba 5 weeks ago 82.1MBk8s.gcr.io/kube-controller-manager v1.14.0 b95b1efa0436 5 weeks ago 158MBk8s.gcr.io/kube-apiserver v1.14.0 ecf910f40d6e 5 weeks ago 210MBk8s.gcr.io/kube-scheduler v1.14.0 00638a24688b 5 weeks ago 81.6MBquay.io/kubernetes-ingress-controller/nginx-ingress-controller 0.23.0 42d47fe0c78f 2 months ago 591MBk8s.gcr.io/kube-addon-manager v9.0 119701e77cbc 3 months ago 83.1MBk8s.gcr.io/coredns 1.3.1 eb516548c180 3 months ago 40.3MBk8s.gcr.io/kubernetes-dashboard-amd64 v1.10.1 f9aed6605b81 4 months ago 122MBk8s.gcr.io/etcd 3.3.10 2c4adeb21b4f 5 months ago 258MBk8s.gcr.io/pause 3.1 da86e6ba6ca1 16 months ago 742kBk8s.gcr.io/metrics-server-amd64 v0.2.1 9801395070f3 16 months ago 42.5MBgcr.io/k8s-minikube/storage-provisioner v1.8.1 4689081edb10 18 months ago 80.8MBgcr.io/google_containers/defaultbackend 1.4 846921f0fe0e 18 months ago 4.84MB
最后
啰啰嗦嗦说一堆,我自己都看不下去了,其实只要保证K8s的安装节点网络没问题就好了,网络没问题,如果有错误就通过minikube delete
,删除当前虚拟机,然后再运行带参数的start
命令就好了,镜像下载最好一次性完成,镜像列表本文也有,希望能对你有所帮助。
资源推荐
- https://github.com/kubernetes...
- https://blog.hasura.io/sharin...
- https://v.youku.com/v_show/id...