飞天使-k8s知识点12-kubernetes散装知识点1-架构&有状态&资源对象分类

文章目录

k8s架构图
有状态和无状态服务
复制代码
区分有状态和无状态服务有利于维护yaml文件
因为配置不同
资源和对象
复制代码
命令行yaml来定义对象
对象规约和状态
复制代码
规约 spec
描述对象的期望状态

状态 status
对象的实际状态
k8s自己维护,尽可能让实际状态和期望状态一样
资源的对象-资源的分类
复制代码
元空间 
集群之上的一个概念
资源数据描述
每个资源都可以使用元数据

集群 
整个k8s集群,包含master和node节点
集群下的所有资源都能够使用

命名空间 
集群之下有命名空间,一个集群划分多个命名空间
逻辑意义上的集群,对集群更细致的划分
只能在命名空间内使用 
元数据型与集群型资源
复制代码
元数据型资源: HPA   PodTemplate LimitRange
HPA 
Horizontal Pod Autoscaler

是 Kubernetes 中的一个功能,用于自动调整集群中运行的 pod 的数量。HPA 根据实际的 CPU 利用率或者其他应用提供的自定义指标(如 HTTP 请求的速率)来决定是否需要扩展(增加)或收缩(减少)pod 的数量。

HPA 的工作原理是,首先定义一个目标,例如 CPU 利用率为 50%。然后 HPA 会定期(默认为 15 秒)检查 pod 的实际 CPU 利用率。如果实际利用率超过了目标(例如利用率达到了 70%),那么 HPA 就会创建更多的 pod 来分摊负载。反之,如果实际利用率低于目标(例如利用率只有 30%),那么 HPA 就会删除一些 pod,释放资源。

HPA 可以帮助你在负载变化时自动调整应用的容量,以此来提高资源利用率和应用的可用性。




PodTemplate
在 Kubernetes 中,PodTemplate 是一种模板,它包含了用于创建新 Pod 的规格。PodTemplate 本身并不表示在集群中运行的实体,而是被其他对象,如 ReplicaSet、Job、DaemonSet 等所引用。

PodTemplate 包含的 Pod 规格可以包括容器、卷、默认环境变量等信息。当创建一个如 ReplicaSet 或 Job 的对象时,这些对象会引用 PodTemplate,然后生成具有相同配置的 Pod。

这种设计模式使得 Kubernetes 可以以一种声明式的方式管理集群。你只需要定义你想要的状态(例如,我想要运行 10 个具有特定容器和环境变量的 Pod),然后 Kubernetes 就会自动创建和管理这些 Pod,以保证集群的实际状态与你定义的期望状态一致。


LimitRange
LimitRange 是 Kubernetes 中的一个对象,它用于限制一个命名空间中所有 Pod 或 Container 的资源使用上下限。这些资源包括 CPU、内存、存储、以及 Persistent Volume Claims (PVCs)。

LimitRange 可以确保在一个命名空间中,没有单个 Pod 或 Container 能够使用超出限定的资源,防止资源的滥用或者分配不均。比如,你可以设置一个 LimitRange,使得在一个命名空间中,单个 Pod 使用的 CPU 资源不得超过 2 核,内存资源不得超过 2GB。

LimitRange 也可以用于为没有特别指定资源请求和资源限制的 Pod 或 Container 设置默认的资源请求和资源限制。这样可以确保这些 Pod 或 Container 在调度时能够得到合理的资源分配。



集群级
Namespace
Node
clusterRole
ClusterRoleBinding
Namespace 都有自己的资源配额,可以独立管理,并且 Namespace 中的名称(如 Pod、Service 等)必须在 Namespace 内保持唯一。

Node: Node 是 Kubernetes 集群中的一个工作机器,这可以是一个虚拟机或物理机。每个 Node 都有 Kubelet 运行,它负责管理 Node 上的 Pod 和容器,并且与 Kubernetes Master 节点进行通信。

ClusterRole: ClusterRole 是一种 Kubernetes 对象,它定义了一组对集群资源的访问权限。ClusterRole 可以被绑定到任何用户或者服务账户,使它们获得定义在 ClusterRole 中的权限。

ClusterRoleBinding: ClusterRoleBinding 是一种 Kubernetes 对象,它将 ClusterRole 绑定到用户、组或者服务账户。这意味着,被绑定的用户或者服务账户将获得 ClusterRole 中定义的权限。
命名空间
复制代码
pod
RC、RS与Deployment

Pod: 在 Kubernetes 中,Pod 是最小的部署单元。一个 Pod 可以包含一个或多个紧密关联的容器,这些容器共享存储和网络资源。

RC (Replication Controller): Replication Controller 是 Kubernetes 的一个核心概念,它负责保证指定数量的 Pod 副本在集群中始终运行。如果有 Pod 停止或者出现故障,Replication Controller 会自动创建新的 Pod 来替代。

RS (ReplicaSet): ReplicaSet 是 Replication Controller 的升级版本,它支持更灵活的选择器。和 Replication Controller 一样,ReplicaSet 的主要目的是保证在任何时间点,集群中都有指定数量的 Pod 副本在运行。

Deployment: Deployment 是 Kubernetes 中用于描述期望的应用状态的对象。Deployment 会创建和更新 ReplicaSets,并通过 ReplicaSets 来创建和更新 Pods。Deployment 支持滚动更新和回滚,使得应用的更新和回滚变得更加容易。
相关推荐
明月_清风7 小时前
K8s 从入门到上手:核心概念+常用工具全解析
后端·kubernetes
阿里云云原生9 小时前
阿里云可观测 2026 年 4 月产品动态
云原生
qq_3643717210 小时前
基于 Docker 容器化环境配置
运维·docker·容器
塔克拉玛攻城狮10 小时前
详解cni插件cilium篇一:它为什么这么快?它还有哪些高级功能?
kubernetes·cilium
阿里云云原生11 小时前
Skills Registry 公测开启:为企业打造私有的 Skill 管理中心
云原生
吃胖点儿11 小时前
DevOps与自动化原理
云原生
GentleDevin11 小时前
Docker 运维常用命令大全
docker·容器·运维命令
运维全栈笔记11 小时前
基于Docker的MinIO单机部署与功能测试指南
运维·docker·容器
阿里云云原生12 小时前
HiClaw 发布 v1.1.0,提供 Kubernetes 集群部署实现,支持 Hermes Worker 运行时
kubernetes
心机之蛙qee12 小时前
docker的安装(RHEL9)
运维·docker·容器