k8s组件

初衷

最近面试总是被问:k8s有哪些组件?这些组件它们的功能分别是什么?

想着就记录一下。

架构

一个典型的Kubernetes集群由多个工作节点(worker node)和一个集群控制平面(controlplane,即Master),以及一个集群状态存储系统(etcd)组成。Kubernetes的系统架构大致如下图所示:

在这里插入图片描述

Master组件

Master节点负责整个集群的管理工作,为集群提供管理接口,并监控和编排集群中的各个工作节点。

Maser组件如下:

  • API Server

    API Server是整个集群的网关,它负责输出RESTful风格的Kubernetes API,它是发往集群的所有REST操作命令的接入点,并负责接收、校验并响应所有的REST请求,结果状态被持久存储于etcd中。

  • controller-manager(控制器管理器)

    功能主要包括生命周期功能和API业务逻辑

    • 生命周期功能:包括Namespace创建和生命周期、Event垃圾回收、Pod终止相关的垃圾回收、级联垃圾回收及Node垃圾回收等。
    • API业务逻辑:例如,由ReplicaSet执行的Pod扩展等。
  • etcd

    Kubernetes集群的所有状态信息都以键值数据持久存储于存储系统etcd中,它提供了监听(watch)机制

    ,用于监听和推送变更。

    etcd是由CoreOS基于Raft协议开发的分布式键值存储,可用于服务发现、共享配置以及一致性保障(如数据库主节点选择、分布式锁等)。注意,etcd是独立的服务组件,并不隶属于Kubernetes集群自身

  • schedule(调度器)

    Scheduler根据集群内各节点的可用资源状态,以及要运行的容器的资源需求做出调度决策。另外,Kubernetes还支持用户自定义调度器。

Node组件

Node负责提供运行容器的各种依赖环境,并接受Master的管理,各节点负责以Pod的形式运行容器。

每个Node主要由以下几个组件构成:

  • kubelet

    kubelet是运行于工作节点之上的守护进程,它从API Server接收关于Pod对象的配置信息并确保它们处于目标状态。kubelet会在APIServer上注册当前工作节点,定期向Master汇报节点资源使用情况,并通过cAdvisor监控容器和节点的资源占用状况。

  • 容器引擎

    容器运行时环境每个Node都要提供一个容器运行时(Container Runtime)环境,它负责下载镜像并运行容器。kubelet并未固定链接至某容器运行时环境,而是以插件的方式载入配置的容器环境。这种方式清晰地定义了各组件的边界。目前,Kubernetes支持的容器运行环境至少包括Docker、RKT、cri-o和Fraki等。

  • kube-proxy

    每个工作节点都需要运行一个kube-proxy守护进程,它能够按需为Service资源对象生成iptables或ipvs规则,从而捕获访问当前Service的ClusterIP的流量并将其转发至正确的后端Pod对象。

核心附件

  • KubeDNS

    在Kubernetes集群中调度运行提供DNS服务的Pod,同一集群中的其他Pod可使用此DNS服务解决主机名。Kubernetes自1.11版本开始默认使用CoreDNS项目为集群提供服务注册和服务发现的动态名称解析服务。

  • Dashboard

    Kubernetes集群的全部功能都要基于Web的UI,来管理集群中的应用甚至是集群自身。

  • Heapster
    容器和节点的性能监控与分析系统,它收集并解析多种指标数据,如资源利用率、生命周期事件等。新版本的Kubernetes中,其功能会逐渐由Prometheus结合其他组件所取代。

  • Ingress Controller

    Service是一种工作于传统层的负载均衡器,而Ingress是在应用层实现的HTTP(s)负载均衡机制。不过,Ingress资源自身并不能进行“流量穿透”,它仅是一组路由规则的集合,这些规则需要通过Ingress控制器(Ingress Controller)发挥作用。目前,此类的可用项目有Nginx、Traefik、Envoy及HAProxy等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值