k8s 基础理论汇总

发布时间 2023-09-15 10:39:59作者: 鱼丸粗面没鱼丸

1. k8s 有哪些常用组件,他们功能是什么

  •  etcd 保存了整个集群的状态;
  • apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机 制;
  • controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
  • scheduler 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上;
  • kubelet 负责维护容器的生命周期,同时也负责 Volume(CVI)和网络(CNI)的管理;
  • Container runtime 负责镜像管理以及 Pod 和容器的真正运行(CRI);
  • kube-proxy 负责为 Service 提供 cluster 内部的服务发现和负载均衡

 

 

2. 容器有哪些优点

  • 敏捷的应用程序创建和部署: 与虚拟机镜像相比,容器镜像更易用、更高效。
  • 持续开发、集成和部署: 提供可靠与频繁的容器镜像构建、部署和快速简便的回滚
  • 开发与运维的关注分离: 在构建/发布时即创建容器镜像,从而将应用与基础架构分离
  • 开发、测试与生产环境的一致性
  • 可观测:不仅显示操作系统的信息和度量,还显示应用自身的信息和度量
  • 云和操作系统的分发可移植性
  • 以应用为中心的管理: 从传统的硬件上部署操作系统提升到操作系统中部署应用程序。
  • 松耦合、分布式、弹性伸缩、微服务: 应用程序被分成更小,更独立的模块,并可以动态管理和 部署 - 而不是运行在专用设备上的大型单体程序
  • 资源隔离:可预测的应用程序性能。
  • 资源利用:高效率和高密度。

3. pod 有哪些默认命名空间,作用是什么

  • PID 命名空间:Pod 中的不同应用程序可以看到其他应用程序的进程 ID。
  • 网络命名空间(network):Pod 中的多个容器能够访问同一个IP和端口范围。
  • IPC命名空间:Pod 中的多个容器能够使用 SystemV IPC 或 POSIX 消息队列进行通信。
  • UTS命名空间:Pod 中的多个容器共享一个主机名。
  • Volumes(共享存储卷):Pod 中的各个容器可以访问在 Pod 级别定义的 Volumes

4.  pause容器作用?

  • 它是pod中Linux名称空间共享的基础
  • pause容器作为你的pod中所有容器的“父容器”
  • 启用了PID(进程ID)命名空间共享后,它为每个pod充当PID 1,并接收僵尸进程。子进程异常退出服务回收资源。