一、安装方式相关

​     Kubernetes 的出现,为容器化部署提供了应用部署、规划、更新、维护的一种机制,让部署容器化的应用简单并且高效。因此想要了解和学习 Kubernetes,必须先了解其安装和编排方式。本文对常见的安装方式和常见的编排工具,做了个简单的概况介绍,希望对大家后面学习和使用Kubernetes有所帮助。  

1.1、安装方式介绍

种类 具体方式名称 部署方式 简要描述 是否后续再介绍
1 minikube 命令行 单机测试环境使用
2 kind 命令行 单机测试环境使用
3 kubeadm 命令行 官方推荐、用于常见生产环境 *
4 binary 命令行 部署、维护复杂,由于生产环境 *
5 rke 命令行 具有K3S全部功能且注重安全性和合规性
6 k3s 命令行 轻量级版本,Edge、IoT、CI、ARM 领域 *
7 rancher 图形化 K8S编排工具,结合RKE或者K3S使用方能安装 *
8 kubekey 命令行、图形化 封装了kubeadm,集成多种应用工具 *
9 sealos 命令行 封装了kubeadm,集成多种应用工具 *
10 kubeasz 命令行 基于二进制、由Ansible自动化部署
11 k8seasy 命令行 下载kubeasz代码和镜像文件进行安装 *
12 kubeeasy 命令行 封装了kubeadm、内置Ansible进行部署 *
13 kubespary 命令行 封装了kubeadm、内置Ansible进行部署
14 kuboard-spary 图形化 基于kubespary的开源项目
15 kubeode 图形化 基于二进制、Ansible自动化部署
16 * * 各公有云平台专属的部署方案

1.2、安装方式相关

1.2.1、安装方式相关说明
  • 由于笔者见识和经验有限,只接触和了解到了上面的那些安装方式,诚然,K8S的部署方式,除此之外还有很多其它的方式
  • 上面安装方式的介绍,没有特定的顺序或偏好安排,大体是依照个人接触、了解这些方式的时间先后顺序 而进行罗列的
  • 到底选择哪种方式,主要取决于你的环境和需求。不同环境、不同需求、不同岗位人员,各自的选择是不一样的
  • 上面的工具,有些仅仅只能进行K8S的安装部署,有些既能对集群的进行安装部署,后期也能够作为集群的管理编排工具使用
1.2.2、安装方式简单对比
  • 一键式安装或者图形化部署,优点是简化了安装的过程,无需关心其相关的依赖性和复杂性,有些还集成了大量的其它组件,整体功能比较丰富,但是后续出现问题进行排查相对困难
  • 交互式部署或者二进制安装,相比起来安装比较复杂,部署时间也较长,但是集群功能简洁,后续再部署其它插件相对更而言容易,进行故障排查和处理较为容易,是更为推荐的安装方式
1.2.3、个人博客安装说明
  • 诚然 Kubernetes 支持多种容器运行时,由于早期使用的是 Docker,为此后续的博客会默认 Docker 作为集群使用的容器运行时
  • 相关如 Containerd作为容器运行时是后面的大趋势,因此后续也会有相关的使用介绍,届时在文中标题处会有明显的说明和标识

二、编排工具相关

2.1、集群工具相关

2.1.1、集群工具的区别

使用工具部署和管理K8S集群,其部署工具(部署方式)、管理工具、可视化工具,三者概念还是有所区别的

  • 集群部署工具

    • 部署工具通过提供不同的安装和配置选项,帮助用户快速搭建和配置K8S集群,从而提高效率和便利性。
    • 部署工具侧重于如何提供安装和配置选项,帮助用户根据自己的需求快速部署起来K8S集群。
  • 集群编排工具

    • 编排工具用于管理和协调运行的容器,包括启动、停止、重启等操作,从而简化容器的部署和管理过程‌。
    • 编排工具侧重于容器的管理和编排,确保容器中的各种应用能够达到预期状态并运行。
  • 集群可视化工具

    • 可视化工具则主要用于数据的可视化展示,供丰富的交互功能,使用户能够探索数据并获得更深的理解‌。
    • 可视化工具则侧重于数据的可视化展示相关,旨在去帮助用户能够更好的理解和分析数据。
2.1.2、集群工具的联系

对于K8S集群整个安装、管理、后续使用,三种工具有是有它们之间的联系的

  • 部署工具可以只有部署集群的功能,大部分的都提供了后续的对集群的管理和可视化的功能 --- WEB UI 界面。
  • 编排工具可以只是编排工具,我们只能使用其编排的功能,但是大部分的编排工具也具备可视化的功能,我们可以对其进行全面的使用。
  • 如果是纯可视化的可视化工具,只能对集群提供可视化使用,不能够进行安装或者对集群进去编排或管理。

2.2、具体的编排工具

  • dashboard: K8S官方提供的仪表盘工具,用于可视化监控和管理,界面直观而简洁

  • rancher: 支持多K8S集群的管理,强大的应用程序管理、监控和自动化部署插件

  • kuboard: 用户界面友好,具备多集群管理、权限管理、监控套件、日志套件等丰富功能

  • kubesphere: 强大和功能丰富的容器云平台,支持多云与多集群的统一分发和运维管理

  • kubePi: 飞致云开源、和轻松导入和管理多个集群,同时通过精细的权限控制系统

  • kubevious: 快速识别配置错误,使得理解和审计容器化应用程序的配置变得更加简单

  • kubernator: 一个更底层的K8S管理工具,基于目录树和关系拓扑图的方式来管理集群

  • lens: 跨平台的可视化工具,界面直观,支持Windows、MacOS和Linux操作系统

  • kontena Lens: 跨平台的K8S管理工具,支持多集群管理、监控和日志查看等功能

  • octant: 简洁而功能丰富的用户界面,支持自定义插件和扩展更好地查看和管理集群

  • skooner: 支持实时监控集群状况、查看资源使用情况以及管理集群的各种组件

  • krm: 应用场景包括微服务部署、云原生应用管理、多环境一致性保持及大规模集群管理

  • k9s: 一个基于Curses 的、与 K8S集群进行交互的全屏终端UI、命令行操作的管理工具

  • kubenav: 一个移动和桌面应用程序,口袋里K8S集群导航器,用于管理集群并获得资源状态

      ​

2.3、相关工具说明

  • 由于见识有限,以上是笔者所接触过和听说过的大部分工具,除此之外,不乏还有很多其它优秀的工具

  • 每款工具都要其独特的特点和功能,都能够满足不同用户的需求,选择合适的工具需要综合考虑

  • 工具没有好坏优劣之分,如何选择使用,涉及到个人接触情况、喜好、使用习惯等等个方面因素

  • 鉴于笔者使用K8S集群的经验和个人知识能力所限,后续只会介绍上面提及的部分集群编排工具