Kubernetes 介绍

K8S是什么

  • Kubernetes 是一个开源的容器编排引擎,用来对【容器化应用】进行自动化【部署、 扩缩和管理】,该项目托管在 CNCF
  • 为什么要基于容器对应用进行部署?
    1、容器占用资源少,之间互相隔离,有各自的文件系统,不会相互影响
    2、相对于虚拟机,容器能快速部署和迁移

K8S特性

Kubernetes 介绍_第1张图片

K8S组件

Kubernetes 介绍_第2张图片

第一部分:控制平面组件

  • 控制平面组件跨多台计算机运行,用于管理集群中的【工作节点】和【Pod】, 一个集群通常运行多个节点来提供容错性和高可用性
  • 控制平面组件会为集群做出全局决策,资源的调度、检测和响应集群事件等等

1、kube-apiserver(整个集群的唯一入口)

Kubernetes API 服务器是 Kubernetes 控制平面的前端,负责公开 Kubernetes API 来处理接受请求的工作,主要实现是 kube-apiserver,
kube-apiserver 可通过部署多个实例来进行扩缩

2、etcd 存储

一致且高可用的键值存储服务,用作 Kubernetes 所有集群数据的后台数据库

3、kube-scheduler(负责集群的资源调度)

kube-scheduler 是控制平面的组件, 负责监视新创建的、未指定运行节点(node)的 Pods, 并选择节点来让 Pod 在上面运行

4、kube-controller-manager(负责维护集群的运行状态)

kube-controller-manager 是控制平面的组件, 负责运行控制器进程。比如故障检测、自动扩展、滚动更新等,保证资源到达期望值

5、kubectl

K8S命令行工具(CLI),是用户和管理员必备的管理工具

第二部分:Node 组件

1、kubelet(负责维护容器的生命周期)

kubelet 会在集群中每个节点(node)上运行。 它保证容器(containers)都运行在 Pod 中

2、kube-proxy(负责Pod对外访问的网络代理)

  • kube-proxy 是集群中每个节点(node)上所运行的网络代理, 是实现 Kubernetes 服务(Service) 的一部分
  • kube-proxy 维护节点上的一些网络规则, 这些网络规则会允许从集群内部或外部的网络会话与 Pod 进行网络通信
  • 如果操作系统提供了可用的数据包过滤层,则 kube-proxy 会通过它来实现网络规则, 否则,kube-proxy 仅做流量转发
  • 目前service流量调度方式有三种方式:userspace(废弃,性能很差)、iptables(性能差,复杂,即将废弃)、ipvs(性能好,转发方式清晰)

3、容器运行时(负责运行容器的软件)

例如 containerd、 CRI-O 以及 Kubernetes CRI (容器运行环境接口) 的其他任何实现

K8s集群架构

主节点,不跑任务(不需要很高性能),通常一个就好,也可以开多个主节点来提高集群可用度
工作节点(由主节点管理,可以是虚拟机或物理计算机),跑任务(机器性能要好),通常都有很多个,可以不断加机器扩大集群

单Master(测试环境)

Kubernetes 介绍_第3张图片

多Master(生产环境)

Kubernetes 介绍_第4张图片

集群实现方式

方式1、Minikube(只能实现单机,本地测试使用)

方式2、kubeadm(快速搭建,可应用于生产)

方式3、二进制文件(难度系数最大,性能最好)

自集群管理

  • Rancher侧重于对原生K8s集群的维护
  • KubeSphere对CICD的东西都做了一些整合,Rancher需要单独部署
  • KubeSphere将大量云原生相关组件整合进来,相对来说更符合云原生发展的理念
  • Rancher能够整合多种基础设施(公有云/私有云等),应用更为广泛,而KubeSphere结合自家青云体验更佳
  • 运维人员更青睐于Rancher,开发人员更喜欢KubeSphere。

1、KubeSphere

官网

KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器平台,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台

2、Rancher(面向企业私有化部署)

官网

Rancher 是一个为使用容器的公司打造的容器管理平台【 Kubernetes 管理工具】,使得开发者可以随处运行 Kubernetes(Run Kubernetes Everywhere),满足 IT 需求规范,赋能 DevOps 团队

  • Run Kubernetes Everywhere
    Kubernetes 已经成为容器编排标准,Rancher 用户可以选择使用 Rancher Kubernetes Engine(RKE)或云 Kubernetes 服务(例如 GKE、AKS 和 EKS)创建 Kubernetes 集群,还可以导入和管理使用任何 Kubernetes 发行版或安装程序创建的现有 Kubernetes 集群

  • Rancher 支持对其控制的所有 Kubernetes 集群进行集中认证、访问控制和监控

  • 赋能 DevOps 团队
    Rancher 为 DevOps 工程师提供简单直接的用户界面,以管理其应用负载。用户不需要对 Kubernetes 有非常深入的了解,即可使用 Rancher。Rancher 应用商店包含一套实用的 DevOps 开发工具。Rancher 获得了多种云原生生态系统产品的认证,包括安全工具、监控系统、容器镜像仓库、存储和网络驱动等

三方集群(包含安装和管理)(付费)

1、ACK(阿里巴巴云)

2、TKE (腾讯)

3、Microsoft Azure

4、GKE(谷歌)

你可能感兴趣的:(Kubernetes,kubernetes,docker)