Kubernetes学习环境难搭建?Mac笔记本上安装一个!

无敌码农

共 6785字,需浏览 14分钟

 ·

2020-12-23 09:57



要学习Kubernetes技术,先决条件是得有一个实验环境,虽然在之前的文章中给大家介绍过如何安装部署一个Kubernetes(具体可参考<<如何部署一个Kubernetes集群>>),但是这篇文章是基于Linux虚拟机安装的,所需要的资源环境还是相对复杂。而我们在日常学习Kubernetes的过程中,其实是更希望在开发电脑上直接部署一个简单的Kubernetes环境,这样学习起来会更加方便。今天的内容就给大家介绍下如何在Mac开发电脑上安装一个基于MiniKube的Kubernetes学习环境!


Minikube是社区为了方便大家开发和体验Kubernetes,而提供的一个运行在本地的Kubernetes单节点环境。Minikube在不同的操作系统上需要不同的驱动支持,在MacOS中需要"xhyve driver "作为缺省驱动。具体安装步骤如下:


1)、安装kubectl


在Mac上安装kubectl可以直接使用brew命令安装,具体如下:

$ brew install kubectl


2)、安装MiniKube


为了解决海外资源访问受限问题,这里我们使用阿里云提供的镜像地址。具体命令如下:

$ minikube start --cpus=4 --memory='6000mb' --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'


命令参数说明如下:

--cpus=4:表示为minikube分配的CPU核数;
--memory='6000mb':表示为minikube虚拟机分配的内存数;
--image-mirror-country='cn':将缺省利用"registry.cn-hangzhou.aliyuncs.com/google_containers"作为安装Kubernetes的容器镜像仓库;
--image-repository="xx":表示所使用的镜像仓库地址,这里为阿里云地址;


安装命令执行效果如下:

?  Darwin 10.14.6 上的 minikube v1.14.2

✨  Automatically selected the hyperkit driver

?  正在下载驱动 docker-machine-driver-hyperkit:


    > docker-machine-driver-hyperkit.sha256: 65 B / 65 B [---] 100.00% ? p/s 0s

    > docker-machine-driver-hyperkit: 11.44 MiB / 11.44 MiB  100.003.82 KiB p

?  The 'hyperkit' driver requires elevated permissions. The following commands will be executed:

    $ sudo chown root:wheel /Users/qiaojiang/.minikube/bin/docker-machine-driver-hyperkit 

    $ sudo chmod u+s /Users/qiaojiang/.minikube/bin/docker-machine-driver-hyperkit 

Password: #输入Mac电脑密码


✅  正在使用镜像存储库 registry.cn-hangzhou.aliyuncs.com/google_containers

?  正在下载 VM boot image...

    > minikube-v1.14.0.iso.sha256: 65 B / 65 B [-------------] 100.00% ? p/s 0s

    > minikube-v1.14.0.iso: 178.27 MiB / 178.27 MiB  100.001.62 MiB p/s 1m51s

?  Starting control plane node minikube in cluster minikube

?  Creating hyperkit VM (CPUs=4, Memory=6000MB, Disk=20000MB) ...

?  正在 Docker 19.03.12 中准备 Kubernetes v1.19.2

    > kubectl.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s

    > kubelet.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s

    > kubeadm.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s

    > kubeadm: 37.30 MiB / 37.30 MiB [-----------] 100.00% 548.93 KiB p/s 1m10s

    > kubectl: 41.01 MiB / 41.01 MiB [-----------] 100.00% 497.14 KiB p/s 1m25s

    > kubelet: 104.88 MiB / 104.88 MiB [---------] 100.00% 477.49 KiB p/s 3m45s

?  Verifying Kubernetes components...

?  Enabled addons: storage-provisioner, default-storageclass

?  Done! kubectl is now configured to use "minikube" by default


如上安装详情所示,如果你的电脑中未安装相关驱动,则会自动进行下载!经过上述简单的命令执行步骤,到这里我们就将minikube安装好了,是不是很简单?


3)、验证MiniKube状态相关信息


接下来我们看下minikube的运行状态,命令及效果如下:

$ minikube statusminikubetype: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured


如上所示,可以看到此时Kubernetes的几个核心组件已经正常运行起来了!接下来我们还可以具体看看kubectl的版本,命令如下:

$ kubectl version --client
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.0", GitCommit:"af46c47ce925f4c4ad5cc8d1fca46c7b77d13b38", GitTreeState:"clean", BuildDate:"2020-12-08T17:59:43Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"darwin/amd64"}

可以看到在未指定具体的安装版本时,会默认安装最新版本!这里kubectl的版本v1.20.0。


接下来我们继续看看kubectl所指向的Kubernetes集群环境,命令如下:

$ kubectl config current-context
minikube


可以看到此时kubectl客户端指向的Kubernetes集群环境就是我们本地所安装的minikube环境!

此时我们还可以具体看看通过minikube所安装的Kubernetes集群服务的版本信息,命令如下:

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.0", GitCommit:"af46c47ce925f4c4ad5cc8d1fca46c7b77d13b38", GitTreeState:"clean", BuildDate:"2020-12-08T17:59:43Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.2", GitCommit:"f5743093fd1c663cb0cbc89748f730662345d44d", GitTreeState:"clean", BuildDate:"2020-09-16T13:32:58Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}


如上所示,这里显示我们所安装的Kubernetes Server版本为v1.19.2!

继续查看Kubernetes的集群信息,命令如下:

$ kubectl cluster-info
Kubernetes control plane is running at https://192.168.64.2:8443
KubeDNS is running at https://192.168.64.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

查看kubernetes的节点信息,命令如下:

$ kubectl get node
NAME       STATUS   ROLES    AGE    VERSION
minikube   Ready    master   2d3h   v1.19.2

可以看到minikube所安装的是一个只有master节点的单节点集群!


接下来我们打开kubernetes dashbord,从图形化界面上看看Kubernetes的运行状态!命令如下:

$ minikube dashboard
?  正在验证 dashboard 运行情况 ...
?  Launching proxy ...
?  正在验证 proxy 运行状况 ...
?  Opening http://127.0.0.1:50299/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...


执行完该命令后,minikube会自动在浏览器打开kubernetes dashbord,效果如下:


可以看到我们在Mac上通过minikube所安装的Kubernetes集群的确已经正常运行,可以满足我们学习Kubernetes的基本要求了!


最后看看minikube所支持的扩展功能,命令如下:

$ minikube addons list
|-----------------------------|----------|--------------|
|         ADDON NAME          | PROFILE  |    STATUS    |
|-----------------------------|----------|--------------|
| ambassador                  | minikube | disabled     |
| csi-hostpath-driver         | minikube | disabled     |
| dashboard                   | minikube | enabled ✅   |
| default-storageclass        | minikube | enabled ✅   |
| efk                         | minikube | disabled     |
| freshpod                    | minikube | disabled     |
| gcp-auth                    | minikube | disabled     |
| gvisor                      | minikube | disabled     |
| helm-tiller                 | minikube | disabled     |
| ingress                     | minikube | disabled     |
| ingress-dns                 | minikube | disabled     |
| istio                       | minikube | disabled     |
| istio-provisioner           | minikube | disabled     |
| kubevirt                    | minikube | disabled     |
| logviewer                   | minikube | disabled     |
| metallb                     | minikube | disabled     |
| metrics-server              | minikube | disabled     |
| nvidia-driver-installer     | minikube | disabled     |
| nvidia-gpu-device-plugin    | minikube | disabled     |
| olm                         | minikube | disabled     |
| pod-security-policy         | minikube | disabled     |
| registry                    | minikube | disabled     |
| registry-aliases            | minikube | disabled     |
| registry-creds              | minikube | disabled     |
| storage-provisioner         | minikube | enabled ✅   |
| storage-provisioner-gluster | minikube | disabled     |
| volumesnapshots             | minikube | disabled     |
|-----------------------------|----------|--------------|


上述列表就是minikube所支持的扩展功能了,可以在学习时根据实际情况启用,例如我们刚才启用了dashbord,就可以看到列表中的状态变成“enable”了。



—————END—————



参考链接:

#阿里云社区

https://developer.aliyun.com/article/221687

浏览 44
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报