Kubernetes常见名词简析/解释/解析

一、名词概念解析
集群
集群顾名思义,集体群体,指一组节点,这里的节点所指的可以是物理服务器或者虚拟机,在这些机器上装载了k8s环境,那么这一组机器就是一个k8s集群;
图来自云课堂课件Master

  • Master - 管理集群的一个节点,主节点;协调集群中的所有活动,例如调度应用程序、维护应用程序的所需状态、扩展应用程序和滚动更新。

  • 除master外的其他node(工作节点),集群中的工作机器;
    每一个工作节点都需要有一个kubelet服务,这是与master节点或k8s环境(pod和容器)的通讯代理;

  • 处理master节点下发到当前节点的任务,按照podSpec描述来管理Pod和其他容器(主要通过调用apiserver来进行通讯)

默认监听:10250 、10255、10248、4194 四个端口

  • 10250 kubelet API Port
    kubelet与apiserver的通讯端口,工作节点定期去请求apiserver来获取master的下发的任务,节点可通过该端口来获取node的资源及状态

  • 10248 健康检查端口
    kubelet的健康检查端口,kubelet的启动参数配置–healthz-port 和 --healthz-bind-address 可指定监听的地址和端口
    e.g. curl http://xxx.xx.xx.xx:10248/healthz

  • 4194 cAdvisor 监听
    可获取该节点的环境信息及node上的容器状态等,管理界面url:http://localhost:4194
    启动参数 --cadvisor-port 指定
    e.g. curl http://xxx.xxx.xx:4194/metrics

  • 10255 只读的API
    该接口只以只读的形式暴露pod和node信息,访问改端口不需要认证与授权
    获取pod的接口
    e.g. curl http://xxx.xx.xx.xx:10255/pods
    获取节点信息接口(磁盘、网络、CPU、内存等信息)
    e.g. curl http://xxx.xx.xx.xx:10255/spec
    Pod
    紧密关联的容器集合,k8s调度的基本单位。支持一个pod里多个容器共享网络及文件系统,pod使用manifest(yaml或json)来定义
    Label
    识别kubernetes对象的标签,以key/value的方式附加到对象上;label与对象的关系可以是一对多;如多个pods都可使用同一个标签;
    Namespace
    直译 - 名称空间 - 是对一组资源和对象的抽象集合,比如可以用来将系统内部的对象划分不同的项目组或用户组;
    常见的pods、services、deployments等都属于某一个namespace(默认是default);
    而Node、PersistenVolumes等则不属于任何的namespace;
    Deployment

  • Deployment确保任何时候都有指定数量的Pod的副本在运行;例为某个pod创建了Deployment并指定了3个副本;则会创建3个pod,并且持续监控它们;如果某个pod不响应,则deployment会替换它们,保持总数为3

  • 若之前不响应的Pod恢复了,那么现在就有四个Pod的。此时deployment会将其中一个终止保持总数是3、如果在运行中的副本总数改为5,那么deployment会立即启动2个新的pod,保证总数为5.deployment还支持回滚和滚动升级;
    Service

  • Service 是应用服务的抽象,通过labels为应用提供负载均衡和服务发现。匹配labels的Pod IP 和端口列表组成endpoints,由kube-proxy负责将服务ip负载均衡到这些endpoints上。

  • 每个 Service 都会自动分配一个 cluster IP(仅在集群内部可访问的虚拟地址)和 DNS 名,其他容器可以通过该地址或 DNS 来访问服务,而不需要了解后端容器的运行。
    图文引用长沙云课堂课件
    二、基本概念与组件
    master - 控制节点包含的组件有如下:

  • kube-apiserver 集群控制的入口,提供HTTP REST服务

  • kube-controller-manager: Kubernetes集群中资源对象的自动化控制中心

  • kube-scheduler 负载Pod的调度

  • Node k8s集群中的工作节点,工作负载由master节点分配,主要是运行容器应用。
    其中Node节点包含以下组件

    • kubelet:负责Pod的创建、启动、监控、重启、销毁等工作,同时与master节点协作,实现集群管理的基本功能。
    • Kube-proxy: 实现kubernetes Service 的通信和负载均衡运行容器化(Pod)应用
  • Pod k8s最基本的调度单元,每个pod由一个或多个业务容器和一个根容器(Pause)组成。一个pod表示一个应用的实例。

  • ReplicaSet 是Pod副本的抽象,解决Pod的扩容和伸缩

  • Deployment 表示部署,在内部使用ReplicaSet来实现。可以通过deployment来生成相应的ReplicaSet来完成Pod的创建

  • Service 是k8s最重要的资源对象,可对应微服务架构中的微服务,定义了服务的访问入口,服务的调用者通过这个地址访问后端的pod实例。svc通过label selector和后端的Pod建立关系,deployment保证pod副本的数量,也是保证服务的伸缩性
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38774492/article/details/107931331