k8s云原生技术栈(脑图)

Kubernetes (K8s) 是一种开源的容器编排引擎,用于自动化应用程序容器的部署、扩展和操作。它由Google设计并捐赠给Cloud Native Computing Foundation(CNCF)进行维护。Kubernetes 提供了一个强大的平台,用于构建和管理容器化应用程序的解决方案。

  • K8s基础概念

    • Kubernetes集群架构

      • Master节点组件

        • API Server

        • Kubernetes API 服务器的主要实现是 kube-apiserver。 kube-apiserver 设计上考虑了水平扩缩,也就是说,它可通过部署多个实例来进行扩缩。 你可以运行 kube-apiserver 的多个实例,并在这些实例之间平衡流量。

        • Scheduler

        • kube-scheduler 是控制平面的组件, 负责监视新创建的、未指定运行节点(node)的 Pods, 并选择节点来让 Pod 在上面运行。

        • 调度决策考虑的因素包括单个 Pod 及 Pods 集合的资源需求、软硬件及策略约束、 亲和性及反亲和性规范、数据位置、工作负载间的干扰及最后时限。

        • Controller Manager

        • kube-controller-manager 是控制平面的组件, 负责运行控制器进程。

        • 从逻辑上讲, 每个控制器都是一个单独的进程, 但是为了降低复杂性,它们都被编译到同一个可执行文件,并在同一个进程中运行。

        • Etcd

        • 一致且高可用的键值存储,用作 Kubernetes 所有集群数据的后台数据库。

      • Node节点组件

      • 节点组件会在每个节点上运行,负责维护运行的 Pod 并提供 Kubernetes 运行环境。

      • Kubernetes 通过将容器放入在节点(Node)上运行的 Pod 中来执行你的工作负载。 节点可以是一个虚拟机或者物理机器,取决于所在的集群配置。 每个节点包含运行 Pod 所需的服务; 这些节点由控制面负责管理。

      • 通常集群中会有若干个节点;而在一个学习所用或者资源受限的环境中,你的集群中也可能只有一个节点。

        • Kubelet

        • kubelet 会在集群中每个节点(node)上运行。 它保证容器(containers)都运行在 Pod 中。

        • kubelet 接收一组通过各类机制提供给它的 PodSpec,确保这些 PodSpec 中描述的容器处于运行状态且健康。 kubelet 不会管理不是由 Kubernetes 创建的容器。

        • Kube-Proxy

        • kube-proxy 是集群中每个节点(node)上所运行的网络代理, 实现 Kubernetes 服务(Service) 概念的一部分。

        • kube-proxy 维护节点上的一些网络规则, 这些网络规则会允许从集群内部或外部的网络会话与 Pod 进行网络通信。

        • 如果操作系统提供了可用的数据包过滤层,则 kube-proxy 会通过它来实现网络规则。 否则,kube-proxy 仅做流量转发。

        • 容器运行时(Container Runtime)

        • 这个基础组件使 Kubernetes 能够有效运行容器。 它负责管理 Kubernetes 环境中容器的执行和生命周期。

        • Kubernetes 支持许多容器运行环境࿰

你可能感兴趣的:(云原生,kubernetes,容器)