随笔分类 - Kubernetes专题精讲
摘要:如何提取和解码 Kubernetes 中的 Prometheus 配置 一、背景 在Kubernetes环境中,Prometheus是一种广泛使用的监控解决方案,用于收集和存储时间序列数据。Prometheus的配置通常存储在Kubernetes的Secret资源中,有时为了安全起见,这些配置会被压
阅读全文
摘要:批量导出 Kubernetes 命名空间下的资源 Manifest 及 CRD 资源 一、需求背景 在 Kubernetes 集群的日常管理和维护中,经常需要备份或迁移集群中的资源。为了高效地进行这一操作,本脚本旨在批量导出指定命名空间下的多种 Kubernetes 资源(如 Deployment、
阅读全文
摘要:自定义 API Server 扩展 Kubernetes 系统 API 接口的另一种常用办法是使用自定义的 API Server。相比较 CRD 来说,使用自定义 API Server 更加灵活,例如可以自定义资源类型和子资源、自定义验证及其他逻辑,甚至于在 Kubernetes API Serve
阅读全文
摘要:自定义资源类型(CRD) Kubernetes 系统的扩展和增强既包括扩展 API Server 所支持的资源类型及相关声明式功能的实现,以及消除集群的单点以实现集群的高可用等,也包括如何将系统增强为一个完整意义上的 PaaS 平台,并以 DevOps 文化为驱动改善工作流程等。 Kubernete
阅读全文
摘要:Pod优先级和抢占式调度 对于运行各种负载(如Service、Job)的中等规模或者大规模的集群来说,出于各种原因,我们需要尽可能提高集群的资源利用率。而提高资源利用率的常规做法是采用优先级方案,即不同类型的负载对应不同的优先级,同时允许集群中的所有负载所需的资源总量超过集群可提供的资源,在这种情况
阅读全文
摘要:污点和容忍度 污点 taints(英[teɪnt] 美[teɪnt]) 是定义在节点之上的键值型属性数据,用于让节点拒绝将 Pod 调度运行于其上, 除非该 Pod 对象具有接纳节点污点的容忍度。而容忍度 tolerations 是定义在 Pod 对象上的键值型属性数据,用于配置其可容忍的节点污点,
阅读全文
摘要:Pod资源亲和调度 出于高效通信的需求,偶尔需要把一些 Pod 对象组织在相似的位置(同一节点、机架、区域或地区等),如某业务的前端 Pod 和后端 Pod 等,此时可以将这些 Pod 对象间的关系称为亲和性。 偶尔,出于安全或分布式等原因也有可能需要将一些 Pod 对象在其运行的位置上隔离开来,如
阅读全文
摘要:节点亲和调度 节点亲和性,是调度程序用来确定 Pod 对象调度位置的一组规则,这些规则基于节点上的自定义标签和 Pod 对象上指定的标签选择器进行定义。 节点亲和性允许 Pod 对象定义针对一组可以调度于其上的节点的亲和性或反亲和性,不过,它无法具体到某个特定的节点。例如,将 Pod 调度至有着特殊
阅读全文
摘要:Kubernetese调度器概述 API Server 接受客户端提交 Pod 对象创建请求后的操作过程中,有一个重要的步骤是由调度器程序(kube-scheduler)从当前集群中选择一个可用的最佳节点来接收并运行它,通常是默认的调度器(default-scheduler)负责执行此类任务。对于每
阅读全文
摘要:Calico网络插件 Calico 是一个开源网络和网络安全解决方案,适用于容器、虚拟机和基于本地主机的工作负载。Calico 支持广泛的平台,包括 Kubernetes、OpenShift、Mirantis Kubernetes Engine (MKE)、OpenStack 和裸机服务。(官网翻译
阅读全文
摘要:网络策略 网络策略(Network Policy)是用于控制分组的 Pod 资源彼此之间如何进行通信,以及分组的 Pod 资源如何与其他网络端点进行通信的规范。它用于为 Kubernetes 实现更为精细的流量控制,实现租户隔离机制。 Kubernetes 使用标准的资源对象 "NetworkPol
阅读全文
摘要:Flannel网络插件 各 Docker 主机在 docker0 桥上默认使用同一个子网,不同节点的容器很可能会得到相同的地址,于是跨节点的容器间通信会面临地址冲突的问题。另外,即使人为地设定多个节点上的 docker0 桥使用不同的子网,其报文也会因为在网络中缺乏路由信息而无法准确送达。事实上,各
阅读全文
摘要:Kubernets网络模型及CI插件 ——(Docker网络模型、K8S网络模型、Pod网络实现方式、常见CNI插件有哪些) Docker 的传统网络模型在应用日趋复杂的实际业务场景时必将导致复杂的几何级数上升,由此,Kubernetes 设计了一种网络模型,它要求所有容器都能够通过一个扁平的挽留过
阅读全文
摘要:准入控制器(LimitRange、ResourceQuota 和 PSP) 在经由认证插件和授权插件分别完成身份认证和权限检查之后,准入控制器将拦截那些创建、更新和删除相关的操作请求以强制实现控制器中定义的功能,包括执行对象的语义验证、设置缺失字段的默认值、限制所有容器使用的镜像文件必须来自某个特定
阅读全文
摘要:基于角色的访问控制:RBAC RBAC(Role-Based Access Control,基于角色的访问控制)是一种新型、灵活且使用广泛的访问控制机制,它将权限授予 "角色"(role)之上。 一、RBAC授权插件 RBAC 是一种操作授权机制,用于界定 "谁"(subject)能够或不能够 "操
阅读全文
摘要:X.509数字证书认证 Kubernetes 支持的 HTTPS 客户端证书认证、token 认证及 HTTP basic 认证几种认证方式中,基于 SSL/TLS 协议的客户端证书认证以其安全性高且易于实现等特性,而成为主要使用的认证方式之一。 SSL/TLS 最常见的使用场景是将 X.509 证
阅读全文
摘要:服务帐号管理与应用(ServiceAccount) 运行过程中,Pod 资源里的容器进程在某些场景需要调用 Kubernetes API 或其他类型的服务,而这些服务通常需要认证客户端身份,如调度器、Pod控制器或节点控制器,甚至是获取启动容器的镜像访问的私有仓库 Harbor 服务等。 服务帐号就
阅读全文
摘要:访问控制 在用户租户的系统上,认证和授权都是两个必不可少的功能。认证用于身份鉴别,授权是用于实现权限分派。 Kubernetes 以插件化方式实现了这两种功能,且分别存在多种可用的插件。 API Server 是 Kubernetes 集群系统的唯一网关入口,像 kube-controller-ma
阅读全文
摘要:StatefulSet控制器——案例:etcd集群 Kubernetes 的所有对象都需要持久化存储于 etcd 存储系统中,以确保系统重启或故障恢复后能将它们予以还原。 一、创建 Service 资源 StatefulSet 资源依赖于 Headless Service 为各 Pod 资源提供名称
阅读全文