k8s资源
k8s中的资源分类
在Kubernetes(k8s)中,资源是管理和操作的核心对象。这些资源被抽象出来,使得用户可以通过API进行增删改查等操作。k8s中的资源可以根据其功能和特性分为以下几类:
1. 工作负载型资源(Workload)
工作负载型资源主要用于定义和管理容器化的应用程序。
- Pod:Kubernetes中最基本的可调度单位,可以包含一个或多个容器,这些容器共享存储和网络资源。
- ReplicaSet:确保集群中始终运行着指定数量的Pod副本,是Deployment的基础。
- Deployment:提供声明式的更新能力,用于管理应用的生命周期,包括滚动更新和回滚。
- StatefulSet:为有状态应用提供管理,确保每个Pod都有一个稳定的唯一标识和持久存储。
- DaemonSet:确保所有(或某些)节点上运行一个Pod的副本,常用于系统日志、监控等服务。
- Job:用于完成一次性任务的资源,确保Pod成功执行并完成其工作。
- CronJob:用于定时执行Jobs,类似于Linux的cron。
2. 服务发现及负载均衡型资源(Service Discovery and Load Balancing)
服务发现及负载均衡型资源用于为应用程序提供网络访问和负载均衡。
- Service:定义应用的服务端点,用于在集群内部或外部访问应用。Service可以实现负载均衡和服务发现。
- Ingress:提供了外部访问集群内服务的路由规则,通常与负载均衡器或反向代理结合使用。
3. 配置与存储型资源(Configuration and Storage)
配置与存储型资源用于定义应用程序所需的配置和数据存储。
- ConfigMap:用于将配置信息存储在键值对中,便于Pod的配置管理。
- Secrect:用于存储敏感信息,如密码、密钥等。
- 存储卷(Volume):用于将持久化数据存储在节点上,提供Pod之间的共享和持久化存储。
- 持久化卷声明(PersistentVolumeClaim):用于请求存储资源,与具体的存储系统结合使用。
- 存储类(StorageClass):用于定义存储系统的类型和参数,与持久化卷声明结合使用。
4. 集群级资源(Cluster-Scoped)
集群级资源用于管理整个集群,包括命名空间、角色和角色绑定等。
- Node:表示集群中的节点,用于调度Pod到特定节点上运行。
- Namespace:用于将资源划分到不同的逻辑组中,实现多租户环境下的资源隔离。
- Role和RoleBinding:用于定义权限控制规则,授权用户或服务账户访问集群中的资源。
- ClusterRole和ClusterRoleBinding:用于定义集群范围内的权限控制规则,适用于跨命名空间的访问控制。
5. 元数据型资源(Metadata)
元数据型资源用于描述资源的属性,如标签、注释等。
- Label:用于标记资源,用于对资源进行分类和选择。
- Annotation:用于添加额外的元数据信息,与Label类似但作用范围更广。
6. 其他资源(Other Resources)
其他资源包括集群级资源以外的其他资源,如自定义资源(Custom Resource)、网络策略等。
评论区