Kubernetes的核心概念

  1. Kubernetes的主要功能

    Kubernetes是一个自动化的容器编排平台,负责应用的部署、应用的弹性以及应用的管理,这些都是基于容器的。

    核心功能:
    • 服务的发现与负载的均衡

    • 容器的自动装箱,也叫作scheduling,就是“调度”,把一个容器放到某个集群中的某台机器上,Kubernetes会帮助我们去做存储的编排,让存储的生命周期与容器的生命周期有一个连接

    • 容器的自动恢复。对不可用的容器进行恢复

    • 应用的自动发布与应用的自动回滚,以及应用相关的配置密文的管理

    • 对于job类型的任务,Kubernetes可以做批量执行

    • Kubernetes支持水平伸缩,Kubernetes会监测业务上所承担的负载,如果某个业务的CPU利用率过高或者响应时间过长,可以对这个业务进行一次扩容

  2. Kubernetes的架构

    Kubernetes架构是一个典型的二层架构和server-client架构。Master作为中央的管控节点,会与node进行连接。

    所有UI、Clients等用户组件只会和Master连接,把希望的状态或者想执行的命令告诉Master,再由Master下发给相应的node节点,再进行最终的执行。

    Kubernetes架构的Master

    包括四个主要组件:API Server、Controller、Schedule、etcd
    在这里插入图片描述

    ​ **API Server:**处理API操作,Kubernetes中的所有组件都会与API Server进行连接,组件与组件之间一般不进行独立的连接, 都依赖于API Server进行消息的传送

    ​ **Controller:**控制器,用来完成对集群状态的一些管理。例如Kubernetes的自动恢复和水平伸缩

    ​ **Schedule:**调度器,完成调度的操作

    ​ **etcd:**分布式存储系统

    Kubernetes架构的Node

    ​ Node是真正运行业务负载的,每个业务负载会以Pod的形式运行

    ​ 一个Pod运行一个或多个容器,真正运行pod的是Node最关键的组件kuberlet,它通过API Server接收到所需要的Pod运行的状 态,然后提交到Container Runtime

    ​ Kubernetes不会直接进行网络的存储操作,用户或者云厂商需要写相应的Storage Plugin或者Network Plugin去完成存储操作或网络操作

    img

    用户可以通过 UI 或者 CLI 提交一个 Pod 给 Kubernetes 进行部署,这个 Pod 请求首先会通过 CLI 或者 UI 提交给 Kubernetes API Server,下一步 API Server 会把这个信息写入到它的存储系统 etcd,之后 Scheduler 会通过 API Server 的 watch 或者叫做 notification 机制得到这个信息:有一个 Pod 需要被调度。

    这个时候 Scheduler 会根据它的内存状态进行一次调度决策,在完成这次调度之后,它会向 API Server report 说:“OK!这个 Pod 需要被调度到某一个节点上。”

    这个时候 API Server 接收到这次操作之后,会把这次的结果再次写到 etcd 中,然后 API Server 会通知相应的节点进行这次 Pod 真正的执行启动。相应节点的 kubelet 会得到这个通知,kubelet 就会去调 Container runtime 来真正去启动配置这个容器和这个容器的运行环境,去调度 Storage Plugin 来去配置存储,network Plugin 去配置网络。

  3. Kubernetes的核心概念与它的API
    • 第一个概念:Pod

      Pod是KUbernetes中一个最小调度以及资源单元

      由一个或多个容器组成

      定义容器运行的方式(Command、环境变量)

      提供给容器共享的运行环境(网络、进程空间)

    • 第二个概念:Volume

      用来管理Kubernetes存储,声明在Pod的容器中可访问的文件目录

      可以被挂载在Pod中一个或多个容器的指定路径下

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-08HXa5Fz-1632980684098)(C:\Users\zz\AppData\Roaming\Typora\typora-user-images\image-20210930111701426.png)]

      支持多种后端存储的,如本地存储、分布式存储、云存储

    • 第三个概念:Deployment

      定义一组 Pod 的副本数目、以及这个 Pod 的版本。一般用 Deployment 这个抽象来做应用的真正的管理,而 Pod 是组成 Deployment 最小的单元。

      通过控制器维持Pod的数目,自动恢复失败的Pod

      通过控制器以指定的策略控制版本,滚动升级、重新生成、回滚

    • 第四个概念:Service

      提供访问一个或多个Pod实例的稳定访问地址

      支持多种访问方式实现:ClusterIP、NodePort、LoadBanlancer

    • 第五个概念:Namespace

      Namespace用来做一个集群内部的逻辑隔离,包括鉴权、资源管理

      同一个Namespace下的资源需要命名的唯一性,不同Namespace下的资源可以重名

    • Kubernetes的API

      Kubernetes的API是由HTTP+JSON组成的:用户访问的方式是HTTP,访问的API中的内容是JSON格式的

      API-Label:一组Key:Value,可以被selector查询,资源集合的默认表达方式

      通过 label,kubernetes 的 API 层就可以对这些资源进行一个筛选,那这些筛选也是 kubernetes 对资源的集合所表达默认的一种方式。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值