首页 > 其他分享 >在K8S中,Kubernetes的组件有哪些?

在K8S中,Kubernetes的组件有哪些?

时间:2024-08-20 10:49:40浏览次数:11  
标签:容器 Kubernetes 集群 组件 Pod K8S 节点

Kubernetes(K8s)是一个复杂的系统,由多个核心组件组成,这些组件协同工作来实现容器化应用的部署、扩展和管理。下面是 Kubernetes 的主要组件及其功能:

1.控制平面组件

控制平面负责管理集群的状态,包括调度、部署和维护集群中运行的容器化应用。控制平面组件通常运行在一个或多个控制节点上,这些组件包括:

  1. API Server

    • 负责处理来自客户端的 API 请求,如 kubectl 命令或其他工具。
    • 是集群的核心,负责保存集群状态,并与其他控制平面组件交互。
  2. etcd

    • 分布式键值存储,用于保存集群的状态数据,如配置、服务定义、Pod 状态等。
  3. Scheduler

    • 负责监视新创建的未分配的 Pod,并将它们分配到合适的节点上。
  4. Controller Manager

    • 包含一组控制器进程,负责执行各种集群级别的任务,例如:
      • ReplicaSet 控制器:确保集群中有指定数量的 Pod 副本。
      • Deployment 控制器:管理应用的部署和更新过程。
      • StatefulSet 控制器:用于管理有状态应用的部署。
      • DaemonSet 控制器:确保所有(或某些)节点都运行一个 Pod 的副本。
      • Job 控制器:管理完成一定工作的 Pod,如批处理作业。
  5. Cloud Controller Manager(可选):

    • 如果 Kubernetes 集群运行在云环境中,则 Cloud Controller Manager 负责与云提供商的 API 交互,管理云资源,例如负载均衡器、外部 IP 地址等。
2.节点组件

节点组件运行在每个工作节点上,负责管理节点上的容器化应用。这些组件包括:

  1. kubelet

    • 负责在节点上运行 Pod 和容器。
    • 监听 API Server 发送的命令,并执行本地容器操作,如创建、修改或删除容器。
  2. kube-proxy

    • 负责实现 Kubernetes 服务(Services)的概念,通过网络代理和负载均衡机制来实现服务发现和网络流量转发。
  3. 容器运行时

    • 如 Docker、containerd 或 CRI-O 等,负责创建和运行容器。
    • Kubernetes 通过 Container Runtime Interface (CRI) 与容器运行时通信。
3.附加组件

除了上述组件外,还有一些其他重要的组件:

  1. kubectl

    • Kubernetes 的命令行工具,用于与集群进行交互,执行常见的管理任务,如部署应用、查看状态、调试等。
  2. CoreDNS

    • DNS 服务,为 Kubernetes 服务提供域名解析,使 Pod 和服务可以通过名称来相互发现。
  3. Network Plugin

    • 负责实现 Kubernetes 网络策略,如 Calico、Flannel 或 Weave Net 等,确保 Pod 间以及 Pod 与外部网络之间的通信。
  4. Storage Class 和 Persistent Volumes (PV) / Persistent Volume Claims (PVC)

    • 用于管理持久存储资源,如卷和存储类,使得 Pod 可以请求和使用持久存储。
4.总结

综上所述,Kubernetes 的核心组件分为控制平面组件和节点组件两大类,控制平面组件负责管理集群的整体状态,而节点组件则负责在各个节点上实际运行容器化应用。这些组件协同工作,实现了 Kubernetes 的强大功能,如自动部署、自我修复、负载均衡和服务发现等。

标签:容器,Kubernetes,集群,组件,Pod,K8S,节点
From: https://www.cnblogs.com/huangjiabobk/p/18369014

相关文章

  • 在K8S中,在主机和容器上部署应用程序有什么区别?
    在Kubernetes中部署应用程序有两种主要的方式:直接在主机上部署(也称为裸金属或非容器化部署)和在容器中部署。这两种方式有着本质的区别,下面将详细介绍它们的特点和应用场景。1.直接在主机上部署应用程序特点:直接运行:应用程序直接安装在操作系统上,没有额外的容器层。资源利......
  • 在K8S中,Kubernetes与Docker有什么关系?
    Kubernetes和Docker都是现代云原生技术栈的重要组成部分,但它们各自解决的问题领域不同。下面详细介绍它们之间的关系以及区别:1.DockerDocker是一个流行的容器化平台,它允许开发者将应用程序及其依赖打包成一个轻量级、可移植的容器。这样做的好处包括:隔离性:每个容器都有自......
  • 在K8S中,Kube-proxy有什么功能?
    Kube-proxy是Kubernetes中的一个核心组件,它运行在每个节点上,负责实现Kubernetes服务(Services)的概念。Kube-proxy主要有以下功能:1.主要功能服务发现:Kube-proxy实现了服务发现机制,使得Pod能够通过服务名找到对应的服务端点(Endpoints)。负载均衡:当Pod需要访问......
  • 分布式系列之限流组件
    概述在高并发场景下,请求量瞬间到达,后端服务器即使有缓存、集群主备、分库分表、容错降级等措施,也有可能扛不住这请求量,因此可考虑引入限流组件。限流的目的:防止恶意请求流量或流量超出系统承载。应用场景:网关层校验流量,拦截非法请求,或直接抛弃部分流量(后来的流量,如秒杀系统)实......
  • k8s 手动更新 seldon core ca证书
    前言seldoncore报错:x509:certificatehasexpiredorisnotyetvalid:currenttime这是因为seldoncore默认的证书有效期为一年,需要helm重新安装才行,或者在安装seldoncore时启用了certManager自动更新证书helminstallseldon-coreseldon-core-operator--namespac......
  • 云原生周刊:Kubernetes v1.31 发布
    开源项目推荐KardinalKardinal是一个用于在共享Kubernetes集群中创建超轻量级临时开发环境的框架。AnteonAnteon(以前称为Ddosify)是一个开源的、基于eBPF的Kubernetes监控和性能测试平台。KubetuiKubetui是一个用于监控Kubernetes资源的终端用户界面(TUI)工具。......
  • K8S部署redis集群,并导入单机版redis数据到集群
    可能格式不怎么好看,就是提供一个思路1、编写一个config文件,给挂载到k8s容器里。这个文件是从网上找的,这个脚本没什么改的,redis的配置文件,可以根据自己的需求做修改添加config.yaml文件apiVersion:v1kind:ConfigMapmetadata:name:redis-cluster-configdata:fix-ip.......
  • k8s的工具kubens的使用
      kubens安装和使用linux系统curl-Lhttps://github.com/ahmetb/kubectx/releases/download/v0.9.1/kubens-o/bin/kubenschmod+x/bin/kubenskubens<命名空间名称>  mac系统brewinstallkubectxkubens<命名空间名称>    使用说明k8s每次查看指定命......
  • k8s实践——命名空间隔离+request-key机制解决CSI内核态域名解析
    0x01背景Pod需要使用远程存储的PV,由同k8s集群内的服务提供的存储服务。一开始的做法是:CSI中解析Service的clusterIP。然后使用clusterIP挂载PV卷。但因为走clusterIP时,经过多次转换:clusterIP到PodIP经过了1次NATPodIP到最终服务。经过1次转发,具体性能损耗跟CNI实现......
  • k8s实践——HPA实践实例
    0x01水平自动扩缩HPA指statefulset和deployment这些负载,可以根据系统的负载压力,自动扩容应对业务高峰,并在低峰时自动缩容,降低资源消耗。0x02准备要求已经有一个1.23以上的k8s集群,在其中部署metrics-server。示例用的1.25,运行时为containerd。kubectlapply-fhttps://githu......