跳到主要内容

基本概念

VKS(VKS,Virtual Kubernetes Service)是GPU云弹性容器集群(虚拟Kubernetes集群)服务。在使用弹性容器集群之前,用户可能需要了解该产品所涉及的概念。本文为用户介绍弹性容器集群的常用名词的基本概念,以便于用户更好地使用弹性容器集群。

集群 (Cluster)

Kubernetes集群是由一组物理或虚拟机组成的集合,这些机器被称为节点(Nodes)。集群分为两类节点:主节点(Master Node)和工作节点(Worker Nodes)。主节点负责管理和调度整个集群,而工作节点运行实际的应用程序容器。

节点 (Node)

节点是Kubernetes集群中的单个机器(可以是物理机或虚拟机)。每个节点包含必要的服务以运行Pod,并与主节点通信。节点上运行的关键组件包括kubeletkube-proxy和服务容器引擎(如Docker)。

容器(Container)

容器是打包应用及其运行依赖环境的技术,是运行应用程序的核心单元。一个节点可运行多个容器,通常运行在一个Pod中。

Pod

Pod是集群中的最小可部署单元,可以包含一个或多个紧密相关的容器。一个Pod代表了集群上正在运行的一个进程,所有Pod内的容器共享网络命名空间、IP地址和卷。

  • 查看对应命名空间下Pod状态的命令如下所示。
kubectl.exe  get pod -n [deepseek]
  • 进入对应的Pod的命令如下所示。
kubectl exec -it [prepare-deploy-74f545496-9bl62] -n [deepseek] -- bash

ReplicaSet

ReplicaSet确保指定数量的Pod副本在任何给定时间都在运行。如果某个Pod失败了,ReplicaSet会自动创建一个新的Pod来替代它,主要用于保证应用程序的高可用性和可靠性。

工作负载(Workload)

类型描述
无状态工作负载(Deployment)Deployment 是 Kubernetes 中非常重要的资源类型之一,特别适合用来管理那些不需要持久化存储的应用服务。通过它,运维人员能够更高效地进行应用的部署、维护和升级工作。
有状态工作负载(StatefulSet)StatefulSet提供一种可靠的方式来管理需要保持状态的应用程序,确保程序可以在Kubernetes集群中能够持续稳定地运行。
守护进程集(DaemonSet)DaemonSet确保每个节点(或指定节点)运行一个Pod,不同于Deployment,它会在所有符合条件的节点上部署所需的Pod,适用于集群日志收集和监控等场景。
任务(Job)通过Kubernetes的Job资源,用户可以执行一次性任务,并能以并行的方式启动多个Pod来加速处理。
自定义资源(CustomResourceDefinitions,CRD)用户可以通过CRD添加第三方工作负载资源。CRD资源允许您定义定制资源。

Service

Service是一种抽象方式,定义了一组Pod的逻辑集合和访问这组Pod的策略。Service提供了稳定的IP地址和DNS名称,使得其他服务可以通过它找到并访问这些Pod。常见的服务类型包括ClusterIP(仅限集群内部访问)、NodePort(开放一个端口供外部访问)和LoadBalancer(使用云提供商的负载均衡器)。

Namespace

Namespace是在同一个物理集群内划分资源的方式。它帮助组织对象并将它们隔离到不同的项目或团队中。默认情况下,Kubernetes有三个命名空间:defaultkube-system(系统组件使用)和kube-public(公开信息存放处)。 使用弹性容器集群资源创建NameSpace的示例命令如下所示。

kubectl create namespace [deepseek]

ConfigMap

用来存储配置数据,以便将其注入到容器中作为环境变量、命令行参数或配置文件。

Secret

专门用于存储敏感信息,如密码、OAuth令牌等,且默认情况下会被加密存储。使用弹性容器集群资源创建Secret资源的示例命令如下所示。

kubectl apply -f [deepseek-secret.yaml]

Volume

Volume是持久化存储的一种形式,允许数据跨Pod重启而不会丢失。Kubernetes支持多种类型的卷,包括本地存储、网络存储(如NFS、iSCSI)以及云存储(如AWS EBS、GCE PD)。

Ingress

Ingress是一种API对象,用于管理对集群中服务的HTTP(s)访问规则。通常用于提供基于域名的路由和SSL终止等功能。

Service Export

在弹性容器集群中,在无法直接使用NodePort方式暴露服务的情况下。对于需要外部访问的服务,可以使用ServiceExporter。ServiceExporter是弹性容器集群中用于将服务暴露到外部的组件,将其与需要对外提供服务的Service绑定,为用户提供外部访问的地址。

  • 创建ServiceExport资源的命令如下所示。
kubectl apply -f [ray-svcExporter-chat.yaml]
  • 资源创建成功后,查看ServiceExporter信息的命令如下所示。
kubectl describe serviceExporter [ray-svc-chat-exporter]  -n [deepseek]
提示

用户在使用上述命令时,请将“[ ]”中的参数替换为实际所需的资源参数。