此页面https://kubernetes.io/zh-cn/docs/setup/learning-environment/是直接跳转到https://kubernetes.io/zh-cn/docs/tasks/tools/页面。
安装工具
要想使用和学习k8s,一般来说都是先在测试环境上安装k8s,而k8s并不是像Nginx,一个Nginx就一个组件,安装完Nginx就算安装成功了。K8S不是,K8S是由多个组件组合而成的。一个K8S集群最起码要包括APISERVER、Scheduler、Controller Manager、kube-proxy、kubelet、etcd这6个组件。而且各个组件还需要彼此通信和数据交互,这一下子就把难度提高了6倍。页面中提到的工具就是为了减小安装和维护K8S的难度而开发的。
此页面介绍了几个k8s相关工具,其中:
- kubectl是k8s的客户端CLI工具,类似于Linux上的systemctl。kubectl的工作原理是向K8S APISERVER发送请求来执行K8S集群的维护工作。kubectl可以配置成向多个K8S APISERVER发送请求,并且支持在Linux、Windows、MACOS上安装。Dashboard也是可以向APISERVER发送请求的,只不过Dashboard是通过Web平台的方式,而kubectl是文字界面的命令行。生产环境也是使用kubectl来进行k8s集群管理的。
- kind和minikube主要是用于在单台机器上创建kuberbetes集群的工具,因为二进制安装k8s集群需要非常多的步骤和机器,光安装k8s就需要耗费好长时间,而kind和minikube就是可以实现在单台机器上快速安装k8s所使用的工具。这两种工具的使用场景不是太多,如果计划使用工具安装k8s,推荐使用kubeadm;如果不使用工具则推荐二进制安装。
- kubeadm是创建和管理k8s集群使用最多的工具了。生产环境也可以使用kubeadm工具来创建k8s集群。kubeadm工具将安装各个组件通过命令的方式来实现,类似于bash自动安装脚本,将复杂的过程给封装在命令中。