不会安装Kubernetes学习环境?Mac笔记本上安排一个!

这篇文章是基于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.00% 3.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.00% 1.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 status
minikube
type: 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”了。

写在最后

欢迎大家关注我的公众号【风平浪静如码】,海量Java相关文章,学习资料都会在里面更新,整理的资料也会放在里面。

觉得写的还不错的就点个赞,加个关注呗!点关注,不迷路,持续更新!!!

posted @ 2020-12-21 13:59  风平浪静如码  阅读(188)  评论(0编辑  收藏  举报