(阿里云双11优惠价,最低86元
/年)
本文是一篇手把手指导的Kubernetes安装和运行教程,通过本文,您可以在Windows、Linux或MacOS系统中打造一个完整的本地Kubernetes集群环境。
我们会用下面的工具来运行本地的Kubernetes集群:
- Docker for Mac
- Minikube
- virtualbox
- kubectl
1 安装
如果您的系统是Mac,请提前安装 Homebrew 包管理工具及其Cask 扩展,Cask扩展安装方式:brew tap caskroom/cask
。
1.1 安装 Docker
Docker 是容器的创建、管理和运行工具。我们会在Kubernetes的Pod中构建docker容器。
以下是各个系统安装Docker的方式:
- 官网安装安装Docker for Ubuntu
- 官网方式安装Docker for CentOS
- 官网方式安装Docker for Debian
- 官网方式安装Docker for Fedora
- 官网下载和安装Docker Desktop for Mac
- 官网下载和安装Docker Desktop for Windows
1.2 安装 VirtualBox
VirtualBox 是一个虚拟机工具,可以让我们在一种系统中安装其他的操作系统,比如在Windows中安装Linux,或者Mac中安装Windows。
Ubuntu/Debian系统安装方式:
~ sudo apt-get install virtualbox
CentOS/Fedaro系统安装方式:
~ yum install VirtualBox
Mac我们通过brew cask来安装:
~ brew cask install virtualbox
这一步可能会遇到“Cask ‘virtualbox‘ is already installed.”和“Error: Failure while executing;”的问题,解决方式请看《MacOS brew cask安装VirtualBox遇到的问题》。
Windows系统安装Virtualbox:
- 下载VirtualBox Windows版本:https://www.virtualbox.org/wiki/Downloads
- 双击安装。
1.3 安装 kubectl
kubectl
是一个用于管理 Kubernetes 的命令行工具。
Linux安装kubectl
(使用如下其中一种方式):
# 使用国内阿里云源安装
~ curl -LO http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/`curl -s http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/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 && chmod +x kubectl && sudo mv kubectl /usr/local/bin/kubectl
MacOS安装kubectl
(使用如下其中一种方式):
# 通过brew方式安装
~ brew install kubectl
# 通过国内阿里云源安装
~ curl -LO http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/`curl -s http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/stable.txt`/bin/darwin/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/kubectl
# 通过谷歌源安装(国内网路会很慢)
~ curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/darwin/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/kubectl
Windows安装kubectl:
- 下载kubectl:http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/v1.15.0/bin/windows/amd64/kubectl.exe
- 把 kubectl.exe 放到合适的位置
- 放入PATH
安装完成后,查看版本:
~ kubectl version
1.4 安装 Minikube
minikube 是一个本地Kubernetes集群的实现,支持MacOS、Linux和Windows系统。minikube的主要目标是,成为本地开发Kubernetes和支持Kubernetes全部特性的最佳工具。
Linux安装:
# 通过国内阿里云安装
~ curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.2.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
# 通过谷歌源安装
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo install minikube /usr/local/bin
MacOS安装:
# 通过brew方式安装
~ brew install kubectl
# 通过国内阿里云方式安装
~ curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.2.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
# 通过谷歌源安装
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
Windows安装:
下载minikube-windows-amd64.exe:
- 阿里云下载地址:http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.2.0/minikube-windows-amd64.exe
- github下载地址:https://github.com/kubernetes/minikube/releases
- 下载后重命名为
minikube.exe
放入PATH
即可。
2 测试
到这一步应该基本都可以工作了,启动Minikube集群:
~ minikube start
?? minikube v1.2.0 on darwin (amd64)
? using image repository registry.cn-hangzhou.aliyuncs.com/google_containers
?? Downloading Minikube ISO ...
129.33 MB / 129.33 MB [============================================] 100.00% 0s
?? Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
?? Configuring environment for Kubernetes v1.15.0 on Docker 18.09.6
?? Downloading kubelet v1.15.0
?? Downloading kubeadm v1.15.0
?? Pulling images ...
?? Launching Kubernetes ...
? Verifying: apiserver proxy
etcd
scheduler controller dns
?? Done! kubectl is now configured to use "minikube"
查看 api 版本:
~ kubectl api-versions
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
apps/v1beta1
apps/v1beta2
authentication.k8s.io/v1
authentication.k8s.io/v1beta1
...
这些输出说明安装成功,一切工作正常了。
更多命令如下:
minikube start # 启动minikube
minikube ip # 查看IP
minikube status # 查看状态
minikube stop # 关闭集群
minikube delete # 删除集群。如果启动出错,同时删除 ~/.minikube目录 再minikube start
kubectl config use-context minikube # 使用minikube集群作为当前上下文
kubectl cluster-info # 查看集群信息
3 它们都是什么?
上面我们安装了好几个工具,那么这些工具之间有什么联系吗?接着,我们稍微阐述下这些概念。
- VirtualBox 是一个运行虚拟机的通用工具。使用VirtaulBox,我们可以在MacOS系统中运行Linux(如Ubuntu、CentOS)、Windows等系统。
- Minikube 是一个Kubernetes专用包,用来在本机中运行Kubernetes集群。这个本机的集群拥有一个独立的节点(node)和一些便于本机开发的特性。Minikube 通知 VirtualBox 何时如何运行。当然,通过额外的配置,Minikube也可以支持使用其他虚拟化工具,各系统支持情况:
- Linux:
VirtualBox
、KVM
。 - Mac:
VirtualBox
、hyperkit
、VMWare
。 - Windows:
VirtualBox
、Hyper-V
。(在Windows环境下,如果开启了Hyper-V,不支持VirtualBox方式)
- Linux:
- kubectl 是一个用于与Minikube Kubernetes集群交互的命令行工具。它发送请求给集群中的Kubernetes API服务器,实现管理Kubernetes环境的目的。kubectl 和 Mac 电脑上的其他应用一样,它仅仅发送HTTP请求到集群上的Kubernetes API。
参考地址:
« Scrapy的remove_tags_with_content方法无法删除img标签? MacOS brew cask安装VirtualBox遇到的问题 »