大模块 小模块 概念 功能 控制器
Pod Pod 是 Kubernetes 的基本运行单位,
代表了在集群中运行的一个或多个容器的组合,
是传统容器的抽象和封装。
承受所有的工作负载
提供启动后和删除前的钩子功能
提供对 Pod 内服务的健康检查功能
提供容器组之间的共享功能
RC & RS 复制控制器,可以确保 Pod 副本数达到期望值,
与手动创建 Pod 方式的不同之处在于使用 RC & RS 维护的 Pod 在失败、删除、或终止时会自动替换。
提供 Pod 副本的自动扩缩容的功能 deployment 用于部署无状态应用,提供一种声明式的方式来描述应用的期望状态。 版本控制
弹性伸缩
滚动更新
自动灾难恢复
暂停 or 继续 StatefulSet 主要用于管理有状态应用的工作负载,如:Redis 集群、Kafka 集群等,
与 deployment 不同的是,每个 Pod 都有一个持久的标识符。
部署有状态应用
稳定的、持久的存储(删除或者扩缩 StatefulSet 并不会删除它关联的存储卷)
有序的、优雅的部署和扩缩容
有序的、自动的滚动更新
稳定的域名
DaemonSet DaemonSet 是一个确保全部或者某些节点上必须运行一个 Pod 的工作负载资源(守护进程),
当有节点加入集群时, 也会为他们新增一个 Pod。
在每个节点上运行集群守护进程
部署对集群至关重要的基础设施 Job/CronJob Job 是 Kubernetes 用来控制批处理型任务的资源对象。
CrobJob 则就是在 Job 上加上了时间调度,用来执行一些周期性的任务。
支持单个 or 多个任务并行执行
支持挂起 Job
定时任务(例如:周期备份、发邮件等等任务)
HPA 水平 Pod 自动缩放器。 自动扩缩容
指标监控
RuntimeClass 用于指定容器运行时的类型和配置。 将容器运行时的选择权交给了用户,
使其能够根据实际需求选择最合适的容器运行时
调度器
Label & Selector Label 对 k8s 中各个资源进行分类、分组,添加一个具有特别属性的标签
Selector 通过一个过滤的语法进行查找到对应标签的资源。 资源的标识和分类
资源的选择和过滤
资源间的关联关系
NodeSelector 节点选择器,用于将 Pod 调度到匹配 label 的 node 上。 可以动态调度到具有指定 Label 的节点上,
或者说调度到具有指定特性的物理机上
nodeAffinity & NodeAntiAffinity 节点亲和器和反亲和器(比 NodeSelector 更强大的节点选择器)。 资源隔离(将有冲突的服务部署在不同物理机)
性能优化(通信量较大的服务部署在同一台物理机)
实现服务容灾(同一个服务的副本部署在不同物理机)
资源灵活选择(如选择 sgx 节点) podAffinity & podAntiAffinity Pod 亲和器和反亲和器。 taint & tolerations 污点和容忍度。 避免某些节点被调度,比如:master
污点和容忍度(Toleration)相互配合,可以用来避免 Pod 被分配到不合适的节点上
存储
secret 是一种包含少量敏感信息例如密码、令牌或密钥的对象。 减少敏感信息的暴露面 configMap 用来存储配置文件的 kubernetes 资源对象。 以存储卷或 env 的方式注入配置信息
支持热更新
配置信息与容器的解耦
Volumes 属于存储类别,是用来声明在 Pod 中的容器可以访问的文件目录的,是一个抽象的对象。 容器间文件目录共享
为不同种类的卷提供了统一的接入方式
PV & PVC PersistentVolume(持久卷,简称 PV)是集群内,由管理员提供的网络存储的一部分
PersistentVolumeClaim(持久卷声明,简称 PVC)是用户的一种存储请求
PVC 与 PV 的绑定是一对一的映射
实现对存储的动态管理
实现存储与容器的解耦
实现持久化存储
抽象存储资源 网络 网络模型:
集群里的每个 Pod 都会有唯一的一个 IP 地址
Pod 里的所有容器共享这个 IP 地址
集群里的所有 Pod 都属于同一个网段
Pod 直接可以基于 IP 地址直接访问另一个 Pod,不需要做麻烦的网络地址转换(NAT)
共享 namespace : Pod 里面的容器共享 network namespace (IP and MAC address)
Pod-to-Pod 网络模型:Pod 直连
Service-to-Pod 网络模型:
Pod 根据需求动态扩缩、故障恢复时,IP 地址发生变化时可能无法访问,
k8s 抽象出 Service 当作一组 Pod 的入口,入口不会变化,解决了该问题
集群安全机制
认证 认证阶段负责识别客户端的身份。 方式:PKI、HTTP token、Service Account 授权 授权阶段判断请求是否具有相应的权限。 方式:ABAC(基于属性的访问控制)、RBAC(基于角色的访问控制) 准入控制 用于拦截(在认证和授权之后)对 API 的请求 如:PodSecurityPolicies、ResourceQuotas、NamespaceLifecycle 等 Pod 安全 主要包含一些限制容器内权限的机制 如:安全上下文、Pod 安全策略、最小权限原则 服务发现
Ingress Ingress 相当于一个 7 层的负载均衡器,是 kubernetes 对反向代理的一个抽象,它的工作原理类似于 Nginx。 提供 URL 路由、负载均衡、HTTPS 入口和名称基础的虚拟主机 Service 一种抽象,定义了访问一组 Pod 的方式。 相当于四层代理
公开集群内的 Web 服务
提供了一个稳定的网络接口


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/170773.html