飞天使-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 支持滚动更新和回滚,使得应用的更新和回滚变得更加容易。
相关推荐
EMTime16 小时前
Docker运行OpenWRT
运维·docker·容器
zyl8372118 小时前
Docker 使用手册
运维·docker·容器
Elastic 中国社区官方博客21 小时前
我们如何在 Elasticsearch Serverless 上将向量搜索吞吐量提升一倍
大数据·数据库·人工智能·elasticsearch·搜索引擎·云原生·serverless
maomao大哥闯天下21 小时前
K8s如何实现滚动更新、健康检查与探测机制
docker·容器·kubernetes
楼田莉子1 天前
Docker学习:Docker介绍及其架构介绍
运维·后端·学习·docker·容器·架构
张忠琳1 天前
【kubernetes v1.21】(一)Kubernetes 总览架构深度分析
云原生·架构·kubernetes
香气袭人知骤暖1 天前
PG数据库 Docker 容器自动备份方案
数据库·docker·容器
maomao大哥闯天下1 天前
K8s对象deployment、job、service应用详解
java·容器·kubernetes
IT策士1 天前
第 20 篇 搭建 Kubernetes 实验环境:Minikube 与 kubectl
云原生·容器·kubernetes
JackSparrow4141 天前
使用Ansible批量管理+更新产品环境服务器配置
运维·服务器·ci/cd·kubernetes·自动化·ansible·sre