02Kubernetes集群部署方式说明

0 阅读4分钟

Kubernetes集群部署方式说明

本地化部署

kubeadm

image.png

  • Kubeadm 是一个工具,旨在提供创建 Kubernetes 集群kubeadm initkubeadm join最佳实践“快速路径”。
  • kubeadm 执行必要的操作以启动并运行最小的可行集群。
  • 按照设计,它只关心引导,而不关心配置机器。
  • 同样,安装各种不错的插件,如 Kubernetes 仪表板、监控解决方案和特定于云的插件,也不在范围内。
  • 相反,我们希望在 kubeadm 之上构建更高级别和更量身定制的工具,理想情况下,使用 kubeadm 作为所有部署的基础将更容易创建符合要求的集群。
  • 用法参考链接 kubernetes.io/docs/refere…

优点

  • 平台部署方便,管理容器的平台本身也基于容器部署,只要你有容器,非常简单就完成平台的部署
  • 平台扩展方便
  • 机构清晰

缺点

  • 容器管理容器:不方便排查问题,不方便维护
  • 启动集群缓慢
  • 证书1年有效期

现在kubeadm已经比较成熟了,官方也推荐使用kubeadm部署k8s集群

minikube

  • minikube适合用于部署本地kubernetes集群,此集群主要用于测试目的
  • minikube可以快速让你在单主机上部署kubernetes集群
  • 可以跨平台部署kubernetes集群(Linux、MAC、Windowns)

二进制部署方式

  • 纯人肉方式部署
  • 企业生产级别的部署方式
  • 部署时间长
  • 需要配置内容:
    • 证书
    • 服务配置文件
    • 使用systemd管理服务管理文件
    • kubeconfig

优点

  • 用服务来管理容器:组件直接运行在宿主机系统中
  • 启动集群的速度快
  • 证书有效期可以很长
  • 可扩展性非常高
  • 方便排查集群问题

缺点

  • 部署难度大
  • 部署步骤多

国内第三方部署工具

rke www.rancher.cn/

  • 是一个快速的,多功能的kubernetes集群部署工具
  • 仅通过一个配置文件就可以快速完成kubernetes集群部署
  • 方便在kubernetes中添加任何节点数量的主机

kubekey

image.png

  • kubeykey是KubeSphere基于Go语言开发的kubernetes集群安装工具,可以轻松、高效、灵活地单独或整体安装Kubernetes和KubeSphere,底层使用Kubeadm在多个节点上并行安装Kubernetes 集群,支持创建、扩缩和升级 Kubernetes 集群。

  • KubeKey 提供内置高可用模式,支持一键安装高可用 Kubernetes 集群。

  • KubeKey 不仅能帮助用户在线创建集群,还能作为离线安装解决方案。

  • KubeKey可以用于以下三种安装场景:

    • 仅安装 Kubernetes集群
    • 一键安装 Kubernetes 和 KubeSphere
    • 已有Kubernetes集群,使用ks-installer 在其上部署 KubeSphere

优点

  • 平台部署方便,管理容器的平台本身也基于容器部署,只要你有容器,可以非常简单就完成平台的部署
  • 平台扩展方便,通过agent机制,一句docker命令完成agent部署,快速增加你的服务器,同时也支持云主机
  • 应用部署方便,通过应用商店,可以迅速完成应用部署,而且还是像docker compose那样各个中间容器独立编排,可以随时扩容的
  • 自带账户权限,相比k8s没有账号管理,rancher自带账号权限体系,账号可以独立创建,也可以很方便地接入账号体系,对于公司使用是一大利器
  • 对开发极友好

缺点

容器管理容器:不方便排查问题,不方便维护

kubeasz

image.png

项目致力于提供快速部署高可用k8s集群的工具, 同时也努力成为k8s实践、使用的参考书;基于二进制方式部署和利用ansible-playbook实现自动化;既提供一键安装脚本, 也可以根据安装指南分步执行安装各个组件。

  • 集群特性 TLS双向认证、RBAC授权、多Master高可用、支持Network Policy、备份恢复、离线安装
  • 集群版本 kubernetes v1.20, v1.21, v1.22, v1.23
  • 操作系统 CentOS/RedHat 7, Debian 9/10, Ubuntu 16.04/18.04/20.04
  • 运行时 docker 19.03.x, 20.10.x containerd v1.5.8
  • 网络 calico, cilium, flannel, kube-ovn, kube-router
  • 项目代码托管网址:github.com/easzlab/kub…

公有云平台部署

公有云平台提供容器云服务

  • 阿里云 ACK

    image.png

  • 华为云 CCE

    image.png

  • 腾讯云 EKS

    image.png

在公有云平台部署

  • kubeadm
  • minikube
  • 二进制方式部署
  • rke
  • kubekey
  • kubeasz