码迷,mamicode.com
首页 > Web开发 > 详细

VMware vSphere 7.0 with Kubernetes 架构

时间:2020-05-05 21:46:02      阅读:624      评论:0      收藏:0      [点我收藏+]

标签:启动   center   监控   引入   命名   vcenter   环境   -o   直接   

在 vSphere 集群上启用vSphere with Kubernetes后,它会在 Hypervisor 层内创建一个 Kubernetes 控制层面。此层包含支持在 ESXi 中运行 Kubernetes 工作负载的特定对象。

图 2-1. vSphere with Kubernetes常规架构
技术图片

       为 vSphere with Kubernetes启用的集群称为Supervisor 集群。它在 SDDC 层上运行,包含用于计算的 ESXi、用于网络连接的 NSX-T Data Center 以及 vSAN 或其他共享存储解决方案。共享存储用于 vSphere Pod、Supervisor 集群中运行的虚拟机以及Tanzu Kubernetes 集群中的 Pod 的持久卷。创建 Supervisor 集群后,作为 vSphere 管理员,您可以在 Supervisor 集群中创建名为 Supervisor 命名空间的命名空间。作为 DevOps 工程师,您可以运行由 vSphere Pod中运行的容器组成的工作负载,并创建 Tanzu Kubernetes 集群。

图 2-2. Supervisor 集群的架构
技术图片

Kubernetes 控制层面虚拟机。在属于Supervisor 集群的主机上共创建了三个 Kubernetes 控制层面虚拟机。三个控制平面虚拟机已负载平衡,因为每个虚拟机都有自己的 IP 地址。此外,还会将一个浮动 IP 地址分配给其中一个虚拟机。vSphere DRS 确定控制层面虚拟机在 ESXi 主机上的确切放置位置,并在需要时进行迁移。vSphere DRS 还与控制层面虚拟机上的 Kubernetes 调度程序集成,以便 DRS 确定 vSphere Pod的放置位置。作为 DevOps 工程师,当您调度 vSphere Pod时,请求将通过常规 Kubernetes 工作流进入 DRS,从而最终确定放置位置。

Spherelet。将在每个主机上创建一个名为 Spherelet 的额外进程。它是一种以本机方式传输到 ESXi 的 kubelet,允许 ESXi 主机加入 Kubernetes 集群。

Container Runtime Executive (CRX)。从 Hostd 和vCenter Server角度来看,CRX 与虚拟机类似。CRX 包括一个可与 Hypervisor 协同工作的准虚拟化 Linux 内核。CRX 使用与虚拟机相同的硬件虚拟化技术,且其周围具有虚拟机边界。使用直接引导技术,以允许 CRX 的 Linux 客户机在未通过内核初始化的情况下启动主初始化进程。这样可使 vSphere Pod以近乎容器的速度快速引导。

虚拟机服务、集群 API 和 VMware Tanzu? Kubernetes Grid? 服务是在 Supervisor 集群上运行的模块,它们使得能够置备和管理 Tanzu Kubernetes 集群。

Supervisor 命名空间

            命名空间设置 vSphere Pod和使用 Tanzu Kubernetes Grid 服务创建的Tanzu Kubernetes 集群可以运行的资源边界。最初创建命名空间时,它在Supervisor 集群内具有无限资源。作为 vSphere 管理员,您可以设置 CPU、内存、存储以及可在命名空间中运行的 Kubernetes 对象数量的限制。将为 vSphere中的每个命名空间创建一个资源池。存储限制在 Kubernetes 中表示为存储配额。

图 2-3. Supervisor 命名空间
技术图片

            为了向 DevOps 工程师提供对命名空间的访问权限,作为 vSphere 管理员,您可将权限分配给与 vCenter Single Sign-On关联的标识源中的可用用户或用户组。
            创建命名空间并为其配置资源和对象限制以及权限和存储策略后,作为 DevOps 工程师,您可以访问该命名空间以运行 Kubernetes 工作负载和使用 Tanzu Kubernetes Grid 服务创建 Tanzu Kubernetes 集群。

vSphere Pod

            vSphere with Kubernetes引入了一个名为vSphere Pod 的新构造,它等效于 Kubernetes Pod。vSphere Pod是一个占用空间较小的虚拟机,可运行一个或多个 Linux 容器。每个vSphere Pod根据其容纳的工作负载精确地调整大小,并拥有与该工作负载对应的确切资源预留。它会分配待运行工作负载所需的确切存储、内存和 CPU 资源量。

图 2-4. vSphere Pod
技术图片

vSphere Pod是 vCenter Server 中的对象,因此支持工作负载的以下功能:

强隔离。每个 vSphere Pod都有一个 Linux 内核,该内核提供与vCenter Server 中的其他工作负载和对象的隔离。Linux 内核基于 Photon OS。

资源管理:vSphere DRS 处理 vSphere Pod在 Supervisor 集群 上的放置位置。

高性能:vSphere Pod会获得与虚拟机相同级别的资源隔离,既能消除邻居吵闹的问题,又能保持快速启动和减少容器开销。

诊断。作为 vSphere 管理员,您可对工作负载使用可用于 vSphere 的所有监控和自检工具。

vSphere Pod与 Open Container Initiative (OCI) 兼容,并且可从任何操作系统运行容器(前提是这些容器也与 OCI 兼容)。

图 2-5. vSphere Pod 网络连接和存储
技术图片
vSphere Pod根据存储的对象使用三种存储,它们是临时 VMDK、持久卷 VMDK 和容器映像 VMDK。作为 vSphere 管理员,您可在Supervisor 集群级别为容器映像缓存、临时 VMDK 和 Kubernetes 控制平面虚拟机的放置位置配置存储策略。在命名空间级别,您可以为持久卷以及Tanzu Kubernetes集群中虚拟机的放置位置配置存储策略。

            对于网络连接,vSphere Pod和通过 Tanzu Kubernetes Grid 服务创建的Tanzu Kubernetes 集群的虚拟机使用 NSX 提供的拓扑。

Tanzu Kubernetes集群

            Tanzu Kubernetes集群是由 VMware 打包、签名和支持的开源 Kubernetes 软件的完整分发版。在 vSphere with Kubernetes环境中,您可以使用 Tanzu Kubernetes Grid Service在 Supervisor 集群上置备Tanzu Kubernetes 集群。您可以使用 kubectl和 YAML 定义以声明方式调用 Tanzu Kubernetes Grid Service API。
            Tanzu Kubernetes集群驻留在Supervisor 命名空间中。您可以使用与用于标准 Kubernetes 集群的相同工具,以相同的方式将工作负载和服务部署到Tanzu Kubernetes集群。

图 2-6. Tanzu Kubernetes集群的 vSphere with Kubernetes 架构
技术图片

更多IT解决方案,敬请访问:www.ihelpyou.com.cn

VMware vSphere 7.0 with Kubernetes 架构

标签:启动   center   监控   引入   命名   vcenter   环境   -o   直接   

原文地址:https://blog.51cto.com/13807923/2492468

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!