• Kubernetes—k8s介绍


    k8s是什么

    官方介绍:
    Kubernetes 也称为 K8s(中间8个字母,省略好记),是用于自动部署、扩缩和管理容器化应用程序的开源系统。它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。Kubernetes 源自Google 15 年生产环境的运维经验,同时凝聚了社区的最佳创意和实践。

    使用 Kubernetes部署任何应用都是小菜一碟。只要应用可以打包成镜像,能够容器部署,Kubernetes就一定能启动它。
    不管什么语言、什么框架写的应用(如:Java, Python, Node.js),Kubernetes都可以在任何环境中安全的启动它,如:物理服务器、虚拟机、云环境。
    
    • 1
    • 2

    kubernetes的主要概念

    kubernetes架构中主要分为两个角色:Master和Worker Node。在这两个角色中,都分别存在多个组件来支持Kubernetes的内部逻辑。

    Pod

    Pod是kubernetes中最小的调度单位,可以把他理解成在集群上运行的进程。
    pod在英文中是豆荚的意思,也就是说k8s的管理调度最小单位是以“豆荚”来进行的,豆荚里面的一个一个豆子就是一个个的容器。
    Pod里面可以运行单个容器或者运行多个需要协同工作的容器。
    Pod运行在一个Worker Node中,这个Worker Node可以是物理机,也可以是虚拟机。
    一个Worker Node中可能会有很多个Pod同时运行。
    多个Pod可以协同工作。
    在这里插入图片描述
    在Pod中,有一个容器叫pause,这个是当前pod中所有容器的父容器,也叫基础容器。
    pause启用PID的命名空间,pause的PID为1。
    pause负责Pod中的容器的健康检查。
    如果我们在Pod中部署两个容器,分别叫Container1和Container2。那么Container1和Container2就会共享pause容器的网络栈,他们之间的通讯就会更快。他们之间的关系是这样的:
    在这里插入图片描述

    ReplicaSet

    ReplicaSet是一个副本集,简称RS。
    它的作用就类似于Pod的负载均衡器。
    通常情况下,ReplicaSet用于实现Pod的高可用性。
    就是说呢,如果有Pod异常退出,会自动创建新的 Pod 来代替;并且自动回收异常退出的Pod。
    在这里插入图片描述

    Deployment

    Deployment一般是用于滚动部署更新的组件。
    更新Deployment的时候,会自动创建ReplicaSet,并自动启动新的pod
    Deployment会自动实现ReplicaSet的创建和销毁的过程,并自动对新老Pod进行替换。
    在这里插入图片描述

    Label

    Label是以key/value键值对的方式存在,比如app:nginx。
    Label就像一个标签,可以贴到很多对象上。比如Pod,Service,Node,ReplicaSet等等。Label可以在创建对象的时候贴上去;也可以在对象创建以后再添加或者修改。
    贴上Label以后,我们就可以通过调用Label,来调用对象。
    每个Label必须是唯一的。
    在这里插入图片描述

    Service

    Service是一个抽象的api对象。
    Service可以成为多个后端Pod代理。
    Service可以通过Selector指定Label名称,通过Label Selector来调用对象,比如调用Pod。Service可以通过ClusterIP,让外部的客户端client可以直接访问到内部的Pod。
    我们可以把Service理解成一个桥梁,对内串联Pod或Pod组,对外串联客户端。
    Service的本质是一个四层代理服务。
    在这里插入图片描述

    Kubernetes 架构及组件

    Kubernetes架构

    Kubernetes借鉴了Borg的设计理念,比如Pod、Service、Labels和单Pod单IP等。
    Kubernetes的整体架构跟Borg非常像,如下图所示
    在这里插入图片描述
    在这里插入图片描述

    kubernetes组件

    一个kubernetes集群主要是由控制节点(master)、工作节点(node)构成,每个节点上都会安装不同的组件。
    Master Node是主节点,也叫控制节点。Worker Node是工作节点。有时候,也会直接把主节点叫做Master,工作节点叫做Node。

    组件名称组件作用
    master集群的控制平面,负责集群的决策 ( 管理 ),是整个Kubernetes的控制中心
    ApiServer资源操作的唯一入口,接收用户输入的命令,提供认证、授权、API注册和发现等机制
    Scheduler负责集群资源调度,按照预定策略将pod调度到相应节点上
    ControllerManager负责维护集群状态,比如程序部署安排、故障检测、自动扩展、滚动更新等
    Etcd键值对数据库,保存整个集群的状态,储存K8S集群所有重要信息(持久化)
    node集群的数据平面,负责为容器提供运行环境 ( 干活 )
    Kubelet负责维护容器的生命周期,即通过控制docker,来创建、更新、销毁容器,同时也负责Volume(CVI)和网络(CNI)的管理
    KubeProxy负责提供集群内部的服务发现和负载均衡
    Docker负责节点上容器的各种操作
  • 相关阅读:
    前端ES6相关的面试题
    qt操作sqlite数据库
    YOLOv5实战:如何添加RepVgg模块
    Adv. Intell. Syst. | 青岛大学发表基于深度学习和宿主信息嵌入的微生物组多标签疾病检测研究...
    第二证券|疫情扰动叠加需求不足,11月制造业PMI回落至48%
    Vue3 + 百度地图实现位置选择,获取地址经纬度
    LetCode刷题[简单题](5)按摩师,迭代出最优解(卡尔曼滤波也是类似迭代)
    我的创作纪念日
    PAM从入门到精通(五)
    MFC嵌入Qt窗口详细指导
  • 原文地址:https://blog.csdn.net/qq_50685659/article/details/127014818