如何安装minikube,kubectl以及实现Kubernetes集群部署
这篇文章给大家介绍如何安装minikube,kubectl以及实现Kubernetes集群部署,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
(1) 安装kubectl
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt) 目前得出的是:v1.9.4
chmod +x kubectl && mv kubectl /usr/local/bin/kubectl
安装完成,可通过kubectl version查看是否成功。
(2)安装minikube
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.25.0/minikube-linux-amd64
这是从github上直接copy的安装方式,同样的,可以通过minikube version查看是否安装成功。
(3)配置信息(这个我具体没有研究是否是必要的)
export MINIKUBE_WANTUPDATENOTIFICATION=false
&& export MINIKUBE_WANTREPORTERRORPROMPT=false
&& export MINIKUBE_HOME=$HOME
&& export CHANGE_MINIKUBE_NONE_USER=true
&& mkdir $HOME/.kube || true
&& touch $HOME/.kube/config
&& export KUBECONFIG=$HOME/.kube/config
(4) 由于需要下载gcr.io/google-containers/... 下的镜像,这里需要代理,通过socks5+proxychains实现。事先买了一台国外的服务器。
apt-get install proxychains
vim /etc/proxychains.conf 找到最后一行,修改地址和端口
socks5 127.0.0.1 1080
当然我的环境中是因为有一台专门的服务器作为本地连接的代理,端口号为1080,所有的请求都是先到本地的一台服务器,再通过国外的服务器上网。
注意:docker daemon默认不会读取系统代理,所以需要手动设置。
这里分为Ubuntu1404版本中:vim /etc/default/docker 添加export ALL_PROXY="socks5://127.0.0.1:1080"
然后通过/etc/init.d/docker restart
Ubuntu1604版本中:mkdir /etc/systemd/system/docker.service.d/
[Service] Environment="ALL_PROXY=socks5://127.0.0.1:1080"
然后刷新配置 systemctl daemon-reload
重启docker服务 systemctl restart docker
systemctl show --perporty=Environment docker 查看配置是否生效
proxychains使用很简单,目前: proxychains curl www.google.com测试是否成功
支持: proxychains docker pull gcr.io/google-containers/...
proxychains apt-get update/ apt-get install -y kubelet kubeadm kubectl
proxychains kubeadm init
proxychains minikube start --vm-driver=virtualbox
目前我这么用是可以获取成功的。
(5) 需要virtualbox支持,此处有点像,虚拟机里面还需要装虚拟机,(有点蒙?!)说是需要cpu支持VT-X等硬件虚拟化,可是我本身运行的ubuntu/centos就是VMware虚拟机或virtualbox虚拟机的系统。而且开始一直是在命令行系统上运行。
当然minikube start --vm-driver=virtualbox此时是可以运行了,但是我后面一直卡在一个错误里面
This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory.
官网上说是需要安装virtualbox,于是找到如下步骤安装:
(a) 先在/etc/apt/source.list文件中添加软件源
deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib
(b) 添加virtualbox5.2的软件源秘钥,当然这是我下了的版本,其他版本一样。
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
(c) apt-get update && apt-get install virtualbox-5.2
安装成功之后,再次尝试proxychains minikube start --vm-driver=virtualbox
依然报错。网上说是需要在系统启动时,进入F2到bios设置的Inter virtual..菜单中修改成enabled,但是发现我的VMware里居然没有,于是我又花费时间去安装virtualbox软件,添加ubuntu系统,依然没有找到类似的bios设置,难道我电脑的cpu不支持?
正当我要放弃的时候,我打开了VMware中的一台Ubuntu1404桌面版系统时,想到试一试,果然在虚拟机的设置里面居然有: 虚拟化引擎 首选模式 仍为自动 但是启用下面这个选项:虚拟机化Intel VT-x/EPT 或 AMD-V/RVI(V)。
最后,通过proxychains minikube start --vm-driver=virtualbox 启动了Kubernetes集群。
(6)通过minikube命令,根据官网进行测试,学习。
当然(5)步启动的时间有点长的。因为大概知道需要下载很多gcr.io下的镜像。
这里在Ubuntu14的命令行中,运行virtualbox,可以直接调出界面,可以看到如下图
原来minikube start命令会自动生成一个vb的虚拟机,而且整个kubernetes相关的组件,docker镜像都在这个名叫minikube的Linux系统中生成,所以这么慢。
于是,开始通过命令行操作cluster。
kubectl get nodes 获取node节点,这里只有一个单节点
kubectl get pod -o wide --all-namespaces 查看所有运行的容器
kubectl describe podName -n kube-system 查看kube-system空间内的名为podName的执行过程详情,可用于定位问题
minikube status 查看local kubernetes cluster status
minikube ip 查看ip 例如:这里得到ip为192.168.99.100
minikube dashboard --url 查看dashboard url 例如:这里得到http://192.168.99.100: 31512
minikube ssh 登录到virtualbox的系统中,可以查看到docker images下载的gcr.io的镜像,以及docker ps
minikube get-k8s-versions 获取kubernetes版本列表
minikube start --kubernetes-version v1.7.3 以某一个kubernetes版本启动集群
eval $(minikube docker-env) 通过这个命令就可以在minikube所在的虚拟机,直接运行docker来查看镜像和运行的容器,这样就可以不需要minikube ssh再查看docker信息
minikube service serviceName --url 可以查看到service的访问url
注意:启动时,需要添加proxychains minikube start --vm-driver=virtualbox 这样才能下载gcr.io里面的镜像。
如下图,测试命令,以及dashboard页面:
根据minikube dashboard --url 得到dashboard地址为:http://192.168.99.100:30000
关于如何安装minikube,kubectl以及实现Kubernetes集群部署就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。