k8s面试题

  1. k8s组件有哪些?
    1、etcd: 提供数据库服务,保存了整个集群的状态;
    2、kube-apiserver: 提供了资源操作的唯一入口,并提供认证,授权,访问控制,API 注册和发现等机制;
    3、kube-controller-manager: 负责维护集群的状态,比如故障检测,自动扩展,滚动更新等;
    4、cloud-controller-manager: 是与底层云计算服务商交互的控制器;
    5、kub-scheduler: 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上;
    6、kubelet: 负责维护 Pod 的生命周期,同时也负责 Volume 和网络的管理;
    7、kube-proxy: 负责为 Service 提供内部的服务发现和负载均衡,并维护网络规则;
    8、container-runtime: 是负责管理运行容器的软件,比如 docker。

Master:
kube-apiserver: 暴露 kubernetes 所有 API, 为 api 对象验证并配置数据.API Server 提供 REST 操作和到集群共享状态的前端,所有其他组件通过它进行交互;
kube-controller-manager: 通过 apiserver 监控整个集群的状态,并确保集群处于预期的工作状态;
kube-scheduler: 负责工作节点上工作负载的分配和管理;
Node:
kubelet: 定时汇报当前节点的状态给 apiserver; 获取 pod 的期望状态,调用对应的容器平台接口达到这个状态;镜像和容器的清理工作,保证节点上镜像不会占满磁盘空间,退出的容器不会占用太多资源;
kube-proxy: 该进程可以看做是 service 的透明代理和负载均衡器。其核心功能是将某个 service 的访问请求转发到后端的某个 Pod 上。有 Userspace,Iptables,IPVS 三种实现方式,默认 IPVS。

  1. 简述k8s的工作过程?
    Kubernetes 各个组件中的通信都是以 HTTPS 方式进程的.Kubernetes 各个组件均使用 watch 机制跟踪检查 API Server 上相关变动
    1、kubectl 客户端工具会校验请求资源合法性,并将相关资源对象封装成 HTTP 请求,以加密方式发送给 kube-apiserver;
    2、kube-apiserver 接收到 HTTPS 请求后,对请求来源进行认证,然后进行授权及准入控制的校验。校验通过后,将修改写入 etcd. 响应客户端的同时,调用 kube-controller-manager 进行处理;
    3、kube-controller-manager 对集群中资源对象副本 ReplicaSet 进行检查。如果已经达到预期状态,则不作调整;否则调用 kube-schedule 进行处理;
    4、kube-scheduler 收到信号后进行调度,包括预选 / 优选调度,并将结果返回给 API Server, 后写入 etcd. 如果资源不够,资源对象会进入 Pending 等待状态;
    5、kubelet 根据调度结果调用 CRI (Container Runtime Interface) 执行 Pod 资源创建 / 回收操作。

3、

posted @ 2024-05-23 16:21  柒柒然  阅读(39)  评论(0编辑  收藏  举报