k8s名词总结
名词解释
Pod:Pod是Kubernetes中的最小部署单元,通常一个Pod中运行一个或多个紧密相关的容器。Pod中的容器共享网络和存储资源。
节点(Node):节点是运行Pod的物理或虚拟机。节点可以是Master节点,也可以是Worker节点。Master节点负责整个集群的管理和调度,而Worker节点则用于实际运行应用程序。
服务(Service):服务是定义一组Pod访问策略的抽象,它允许内部或外部的通信访问到Pod集合。
部署(Deployment):部署是对Pod和ReplicaSet(副本集)的声明性更新。部署允许你描述应用的生命周期,比如哪些镜像使用、多少副本等。
ReplicaSet:ReplicaSet的目的是保持一组指定数量的Pod副本在任何时候都处于运行状态。它通常被Deployment用来管理Pod的副本。
命名空间(Namespace):命名空间是一个虚拟的集群,用于Kubernetes资源的逻辑分隔。它可以用来隔离不同的团队或项目的资源。
ConfigMap:ConfigMap是用来存储配置信息的键值对,可以用来存储配置文件、命令行参数等信息,使应用程序容器化更加灵活。
Secret:Secret是一种用来存储敏感信息的对象,如密码、OAuth令牌和ssh密钥。使用Secret可以避免将敏感数据暴露在镜像或配置文件中。
Volume:Volume是一个可以挂载到Pod中一个或多个容器的目录,用于解决数据持久化和共享数据的问题。
Ingress:Ingress是对外暴露Kubernetes服务的一种方法,它可以提供负载均衡、SSL终端和基于名称的虚拟托管。
控制器管理器(Controller Manager):在Master节点上运行的进程,负责调度Kubernetes控制器,如ReplicaSet、Deployment、StatefulSet等。
调度器(Scheduler):调度器是Kubernetes中的一个组件,负责分配Pod到适当的节点上。
StatefulSet:StatefulSet是用于管理有状态应用的一种工作负载API对象。与Deployment不同,StatefulSet为每个Pod副本维护一个持久的标识符,保证部署和扩缩时的顺序和唯一性。
DaemonSet:DaemonSet确保所有(或者某些特定的)节点上运行一个Pod的副本。当有新节点加入到集群中时,DaemonSet会自动在这些节点上添加Pod。
Job:Job创建一个或多个Pod,并确保指定数量的Pod成功终止。一旦Pod成功完成,Job跟踪记录成功完成的Pod。
CronJob:CronJob管理基于时间的Job,即在指定时间或间隔重复运行的任务。它类似于UNIX系统的cron作业。
资源配额(Resource Quota):资源配额是对命名空间可以使用的资源总量(如CPU、内存)的限制。它可以确保一个命名空间不会消耗超过分配给它的资源份额。
Horizontal Pod Autoscaler (HPA):HPA自动调整Pod的数量,基于CPU使用或其他选择的指标,以确保性能和资源利用率最优化。
API Server:API Server是Kubernetes控制面的核心组件,它是集群中所有组件交互的中心节点。它提供了Kubernetes API的实现,所有的操作和通信都是通过API Server进行的。
etcd:etcd是一个轻量级、分布式的键值存储,用于存储所有集群数据,实现Kubernetes的后备存储需求。
Kubelet:Kubelet是在每个节点上运行的代理,它监视由API Server指派给节点的Pod,确保容器运行在这些Pod中。
Kube-proxy:Kube-proxy是Kubernetes网络服务的组成部分,它在节点上运行,负责维护节点的网络规则,并执行连接转发。
Helm:Helm是Kubernetes的包管理工具,用于管理Kubernetes应用。Helm允许开发者和操作团队定义、安装和升级Kubernetes应用。
Affinity and Anti-Affinity:Affinity 和 Anti-Affinity 规则允许你指定Pod之间的亲和性(affinity)或排斥性(anti-affinity),以控制Pod应该如何被调度到集群的哪些节点上。
Taints and Tolerations:Taints(污点)允许一个节点拒绝所有不匹配的Pod,除非这些Pod具有相应的Tolerations(容忍)。这是一种节点选择策略,以确保特定的节点不会运行不希望的Pod。
Persistent Volume (PV) and Persistent Volume Claim (PVC):Persistent Volume是集群中的一段存储,由管理员提供。Persistent Volume Claim是用户对存储的请求。PVC消费PV资源,以便在Pod中使用。
StorageClass:StorageClass提供了一种描述存储类别的方法,可以根据不同的服务质量级别、备份策略或任何由管理员确定的策略来动态配置Persistent Volumes。
Network Policy:网络策略定义了Pod之间如何互相通信的规则。通过定义一系列的网络策略,可以更细致地控制集群内的网络访问。
Service Account:服务账户为Pod运行时提供了一个身份,用于访问Kubernetes API,当应用需要与Kubernetes API交互时,服务账户提供必要的认证信息。
RBAC (Role-Based Access Control):RBAC是一种基于角色的访问控制机制,用于控制用户和服务账户对Kubernetes API资源的访问。
Custom Resource Definition (CRD):CRD允许你通过添加自定义资源来扩展Kubernetes API。这些自定义资源表现得就像标准的Kubernetes组件,可以被API Server动态地处理。
Aggregated Layer:聚合层使得你可以添加额外的、特定于应用的API到Kubernetes核心API之上,这允许第三方软件以插件的形式与Kubernetes无缝集成。
Pod Disruption Budget (PDB):Pod Disruption Budget是一种策略,它限制了因为维护等原因可能同时被杀死的Pod数量,以保证服务的高可用性。
Init Containers:Init容器是在应用程序容器启动之前运行的特殊容器,用于执行一些前置任务,比如设置环境、配置文件等。