K8s组件全解析,你需要知道的一切秘密( 四 )

  • rkt(Rocket): rkt 是由 CoreOS 开发的容器运行时,具有一些特点,如强调安全性、简化的镜像格式等 。
  • Kata Containers: Kata Containers 是一个开源项目 , 将虚拟机和轻量级容器技术相结合,提供更高的隔离性和安全性 。
  • gVisor: gVisor 是 google 开源的一个容器运行时,提供了沙箱机制,增强了容器的安全性 。
  • 8、CoreDNS / kube-dnsCoreDNS 和 kube-dns 都是 Kubernetes 集群中用于域名解析(DNS)的服务 。它们的作用是将 Pod 名称和 Service 名称解析为相应的 IP 地址 , 从而实现在集群内部进行服务发现和网络通信 。
    这两者的功能相似,但有些差异 。下面我会为你详细解释它们的特点和用途:
    kube-dns:kube-dns 是 Kubernetes 最早引入的 DNS 解决方案,它由三个部分组成:
    • kube-dns Server(SkyDNS): 这是一个 DNS 服务器,负责在 Kubernetes 集群内为服务提供域名解析 。它维护着一个 DNS 记录,将 Service 名称映射到相应的 Pod IP 地址 。
    • etcd:kube-dns 使用 etcd 来存储和管理 DNS 记录 。这些记录包括 Service 和 Pod 的域名映射关系 。
    • Sidecar 容器: 为了让 Pod 能够访问 kube-dns,kube-dns 在每个节点上部署一个名为 "kube-dns" 的 Sidecar 容器 。这个容器监听 Pod 中的 DNS 查询,并将其转发给 kube-dns 服务器 。
    CoreDNS:CoreDNS 是一个可插拔的、现代化的 DNS 服务器,逐渐替代了 kube-dns , 成为 Kubernetes 的默认 DNS 解决方案 。它具有以下特点:
    • 模块化架构: CoreDNS 使用模块化架构,允许通过插件来扩展和定制 DNS 功能 。这使得它更加灵活和易于扩展 。
    • 灵活的配置: CoreDNS 使用 Corefile 文件来配置域名解析规则,配置语法更加直观和易于理解 。
    • 支持多种后端: CoreDNS 支持多种后端数据源 , 包括文件、etcd、Kubernetes API 等,这使得它可以更好地集成到不同的环境中 。
    • 性能: CoreDNS 被设计为轻量级且高性能的 DNS 服务器,具有更好的性能表现 。
    9、Node在 Kubernetes 中 , "Node" 是指集群中的一个工作节点(Worker Node) 。工作节点是集群中的计算资源,负责运行容器化应用程序和管理与之相关的资源 。每个节点都是一个独立的物理机器或虚拟机,它们一起构成了 Kubernetes 集群的基础架构 。
    每个节点上都运行了一些关键组件,其中最重要的是 kubelet 。以下是节点的主要组成部分和功能:
    • Kubelet:kubelet 是运行在每个节点上的代理,负责与 Kubernetes 控制平面通信 , 并确保节点上的容器和 Pod 按照预期运行 。它会根据从 API Server 获取的 Pod 定义来创建和管理容器 。
    • Container Runtime: 容器运行时是负责在节点上创建和运行容器的软件 。常见的容器运行时包括 Docker、containerd、CRI-O 等 。
    • Kube-proxy:kube-proxy 负责维护节点上的网络规则和转发规则,以支持服务发现和负载均衡 。它为 Pod 提供了网络代理功能 。
    • CNI 插件: CNI(Container Network Interface)插件负责配置和管理容器的网络连接 。它们确保 Pod 能够与集群内部和外部进行通信 。
    • 容器存储卷插件: 这些插件负责将存储卷(例如 Persistent Volume)挂载到容器中,以便应用程序可以访问持久化的数据 。
    • Node Agent: 节点代理是运行在节点上的一些辅助组件,用于收集节点的健康状况、资源利用情况等信息,并向控制平面报告状态 。
    • 资源管理器: 资源管理器(如 kubelet)监控节点上的资源使用情况,确保不超出节点的资源限制 。
    • 操作系统和硬件: 每个节点都运行有操作系统和底层硬件 , 它们提供了计算、存储和网络资源,用于运行容器化应用程序 。
    10、Dashboard几款k8s web管理界面工具: