试了试Docker桌面应用自带的K8s集群,一个字“简单”
前言
之前给大家介绍过几种在笔记本电脑上安装Kubernetes集群的工具,虽然安装起来不太繁琐但是多多少少还是需要花一些时间的,对于不想瞎倒腾,就想快速安装个本地集群开始学习和测试的同学,推荐你们试一试Docker桌面应用里自带的Kubernetes集群。其实我也是之前用Minikube安装的集群莫名其妙坏掉启动不起来后,偶然发现Docker桌面应用里内嵌了一个Kubernetes集群,试了试效果感觉还是挺不错的。下面我带大家简单过一下启用集群方法,全程几乎就是点点点,也不需要做啥。
启用Kubernetes
也不知道是什么时候开始(反正老早就有了,我这个是前年装的...一直没升级过),Docker的桌面应用除了提供Docker CLI集成外还内嵌了一个Kubernetes集群,默认是不开启的,启用后这个单点的Kubernetes集群会运行在本地的Docker实例中。
要启用这个集群只需要打开Docker应用的首选项(Preferences)界面,选择Kubernetes选项卡。
点击应用并重启,就可以去刷小视频了,再回来集群就安装好了。
除了启用Kubernetes集群外,如果电脑上之前没有安装过 kubectl (客户端命令工具)的话还会为你自动安装上kubectl,并配置连接到刚才启动的本地集群上。如果是本地之前安装过kubectl 和 存在其他Kubernetes集群,想要连接到Docker桌面应用内嵌的集群则需要切换一下 kubectl 的上下文。
$ kubectl config get-contexts
$ kubectl config use-context docker-desktop
使用Kubernetes
集群启用完成后,在打开Docker桌面应用的选项卡在 UI 上会有些微的变化,证明Kubernetes
集群已经成功启动起来了。
让我们随便运行几个 kubctl 命令,试试效果。
➜ ~ kubectl get node
NAME STATUS ROLES AGE VERSION
docker-desktop Ready control-plane,master 13d v1.21.1
可以看到我们现在使用的是一个单节点,名字叫docker-desktop的集群。
使用Docker桌面应用自带的Kubernetes集群还有一点方便的地方就是,集群外部通过 127.0.0.1 就能访问集群内部,也就是我们通过NodePort类型的Service向集群外暴露的资源,通过 127.0.0.1:port 的形式就能访问到。
我们随便拿一个之前我们搭建MySQL开发环境的例子测试一下。搭建MySQL需要的YAML定义文件和步骤我就不再重复说了,忘记的同学之前访问上一篇文章:利用Kubernetes搭建便携式开发环境之MySQL和Redis
## 切到定义文件在的目录
kubectl apply -f mysql-configmap.yaml
kubectl apply -f deployment-service.yaml
--------------------------------------------------------
## 可以看到下面的Pod和Service资源
kubectl get pod
NAME READY STATUS RESTARTS AGE
mysql-cc4479465-gwdj7 1/1 Running 0 13d
--------------------------------------------------------
kubectl get svc mysql
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mysql NodePort 10.104.123.151 <none> 3306:30306/TCP 13d
在电脑上只要通过127.0.0.1:30306就能访问到我们刚刚安装的MySQL啦,持久化之类的事情我也试过,只要我们不主动把MySQL这个Pod删掉数据就会一直在。
通过Docker桌面应用在电脑上安装Kubernetes集群可以说是把我们学习K8s的起步依赖降到了最低,让我们能快速跳过工具安装步骤开始正题的学习,想学K8s的同学们赶紧动手试试吧。
下一期 Kubernetes 的文章我继续分享怎么在Kubernetes上搭建MongoDB开发环境方面的内容,有兴趣还没关注的同学赶紧点个关注吧。