前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes学习环境难搭建?Mac笔记本上安装一个!

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

作者头像
用户5927304
发布2020-12-29 15:14:06
1.8K0
发布2020-12-29 15:14:06
举报
文章被收录于专栏:无敌码农无敌码农

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

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

1)、安装kubectl

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

代码语言:javascript
复制
$ brew install kubectl

2)、安装MiniKube

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

代码语言:javascript
复制
$ minikube start --cpus=4 --memory='6000mb' --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'

命令参数说明如下:

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

安装命令执行效果如下:

代码语言:javascript
复制
?  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的运行状态,命令及效果如下:

代码语言:javascript
复制
$ minikube statusminikubetype: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

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

代码语言:javascript
复制
$ 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集群环境,命令如下:

代码语言:javascript
复制
$ kubectl config current-context
minikube

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

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

代码语言:javascript
复制
$ 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的集群信息,命令如下:

代码语言:javascript
复制
$ 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的节点信息,命令如下:

代码语言:javascript
复制
$ kubectl get node
NAME       STATUS   ROLES    AGE    VERSION
minikube   Ready    master   2d3h   v1.19.2

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

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

代码语言:javascript
复制
$ 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所支持的扩展功能,命令如下:

代码语言:javascript
复制
$ 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”了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无敌码农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档