K8s面试必问:请介绍下K8s的组件有哪些?以及各自的作用?

K8s组件介绍(面试常问)

当你部署完 Kubernetes,便拥有了一个完整的集群。K8s集群中的每台机器称为一个节点,运行容器化应用程序。每个集群至少有一个工作节点。

节点会托管Pod(一组容器) 控制平面管理集群中的节点和 Pod。 在生产环境中,控制平面通常跨多台计算机运行, 一个集群通常运行多个节点,提供容错性和高可用性。

K8s集群由以下组件构成:

在这里插入图片描述

  • 控制平面组件(Control Plane Components) 相当于服务端

    控制平面组件会为集群做出全局决策,比如资源的调度。 以及检测和响应集群事件。控制平面组件可以在集群中的任何节点上运行。不过为了简单起见,我们一般会只运行在Master上,并且不会在此服务器上运行用户容器。

    • APIserver所有组件的入口。所有的组件都要经过APIserver(司令部)

      APIserver是k8s最重要的核心组件之一,它是k8s集群管理的统一访问入口,提供了RESTful API接口,实现了认证、授权和准入控制等安全功能;APIserver还是其他组件之间的数据交互和通信的枢纽,其他组件彼此之间并不会直接通信,其他组件对资源对象的增、删、改、查和监听操作都是交由api-server处理后,api-server再提交给etcd数据库做持久化存储,只有api-server才能直接操作etcd数据库,其他组件都不能直接操作etcd数据库,其他组件都是通过api-server间接的读取,写入数据到etcd。

    • etcd:k8s所有集群数据的后台数据库

    • scheduler:调度器,负责调度和计算,计算哪些节点(node)上资源够创建新的pod

    • controller-manager:根据scheduler计算结果,控制客户端上的kubelet创建pod

  • node 客户端

    • kubelet:创建pod(相当于docker run)

      kubelet 会在集群中每个节点(node)上运行。 它保证容器(containers)都运行在 Pod 中。kubelet 接收一组通过各类机制提供给它的 PodSpec,确保这些 PodSpec 中描述的容器处于运行状态且健康。 kubelet 不会管理不是由 Kubernetes 创建的容器。

    • kube-proxy:提供网络

      kube-proxy 是集群中每个节点(node)上所运行的网络代理, 实现 Kubernetes 服务(Service) 概念的一部分。简单理解此进程是Service的透明代理兼负载均衡器,其核心功能是将到某个Service的访问请求转发到后端的多个Pod实例上。

    • container runtime:容器运行时,K8s支持多种容器运行环境,如docker 、 containerd 、CRI-O 等

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值