随笔分类 - 黄嘉波-笔记汇总 / Kubernetes:
摘要:在Kubernetes(k8S)中,Secret是一种用于存储和管理敏感信息的对象资源类型。它的主要作用是: 安全存储:将密码、API密钥、TLS证书、SSH密钥等敏感数据以加密形式存储在集群内部,而不是直接暴露在配置文件或容器镜像中。 保密传输:当Secret被挂载到Pod时,虽然数据是以明文形式
阅读全文
摘要:在Kubernetes(k8S)中,Role-Based Access Control(RBAC)是一种强大的权限管理和访问控制机制。它允许集群管理员细粒度地控制用户、组或服务账户对Kubernetes API资源的访问权限。 特点和优势: 细粒度授权: RBAC提供了一种基于角色的灵活授权模式,可
阅读全文
摘要:在Kubernetes(k8s)中,准入控制机制(Admission Control)是一个关键的安全和策略执行层。它位于API Server层级,在接收到对集群资源的创建、更新或删除请求后、但实际操作存储在etcd中的数据之前的一个环节。 准入控制器是一系列插件式的组件,它们会对发送到API Se
阅读全文
摘要:在Kubernetes (k8s) 中,确保集群的安全性需要从多个层面进行考虑和实施措施。以下是一些关键的策略和实践: 网络安全: 网络策略(Network Policies):定义Pod间的网络通信规则,控制进出Pod的流量。 防火墙与访问控制:配置节点防火墙限制对集群节点不必要的外部访问,仅允许
阅读全文
摘要:在Kubernetes集群中,kubelet是工作节点上的核心服务,它负责确保Pods及其容器按照预期的状态运行。为了实现这一目标,kubelet依赖于内置的cAdvisor组件来进行资源监控。cAdvisor(Container Advisor)是一个开源的容器监控工具,它集成在kubelet内部
阅读全文
摘要:在Kubernetes(k8s)中,Scheduler是一个核心组件,它的主要作用是负责集群中的Pod调度。具体来说: Scheduler的作用: 资源分配:根据每个Pod的资源请求(如CPU、内存),以及节点当前的可用资源情况,选择合适的Node来运行Pod。 满足约束条件:考虑Pod的调度约束条
阅读全文
摘要:在Kubernetes(k8S)中,kubelet是一个核心组件,它负责管理单个计算节点上的容器运行时环境。kubelet的主要功能和作用包括: Pod生命周期管理: kubelet会接收来自API Server的指令,确保本节点上运行的Pod达到期望的状态。这包括创建、启动、停止或删除Pod中的容
阅读全文
摘要:在Kubernetes(k8S)中,Scheduler使用两种主要的算法阶段来决定将Pod绑定到哪个worker节点上: 预选算法 (Predicates) 预选阶段的主要目标是过滤掉不满足调度条件的节点。Scheduler会根据一系列预定义的预选策略对所有可用节点进行筛选。这些策略可能包括但不限于
阅读全文
摘要:在Kubernetes (k8S) 中,各个模块与API Server的通信通常通过以下方式进行: RESTful API: Kubernetes API Server 提供了一个统一的 RESTful 接口用于集群内所有组件之间的通信。任何想要操作集群资源(如Pods、Services、Confi
阅读全文
摘要:在Kubernetes(k8s)中,负载均衡器是一种网络组件,用于将外部或内部网络流量均匀地分发到一组服务后端的Pod实例上,以确保高可用性、资源利用率以及响应速度。 Kubernetes中的负载均衡主要体现在以下几个方面: Service资源类型: Kubernetes内置了负载均衡功能,通过创建
阅读全文
摘要:在Kubernetes(k8s)中,容器镜像的下载策略主要体现在Pod的imagePullPolicy字段上。以下是三种不同的镜像下载策略: Always: 默认情况下,如果Pod模板中的镜像标签为 latest 或者没有指定标签,Kubernetes会默认使用此策略。 策略说明:每次创建Pod时都
阅读全文
摘要:在Kubernetes(k8s)中,Ingress是一种资源对象,它定义了从集群外部到集群内部服务的HTTP(S)路由规则。简单来说,Ingress提供了一种将外部网络请求转发到集群内不同Service的方式,并可以根据URL、主机名或其他HTTP元数据进行路由决策。 Ingress控制器是实现这些
阅读全文
摘要:在Kubernetes (k8s) 中,要让外部客户端能够访问集群内的服务,通常有以下几种方式: NodePort: 创建一个类型为NodePort的服务,这会在每个工作节点上开放一个特定端口(系统自动分配或用户指定的范围内的端口),并将流量转发到对应Service背后的Pod。外部客户端可以通过任
阅读全文
摘要:在Kubernetes(k8s)中,Headless Service是一种特殊类型的Service,它不会被分配一个ClusterIP(集群内部的虚拟IP地址),而是直接将服务背后的Pod IP地址暴露给客户端。当创建Headless Service时,其spec.clusterIP字段设置为"No
阅读全文
摘要:在Kubernetes (k8s) 中,Service可以使用多种策略来分发流量到后端Pod。以下是一些主要的分发策略: ClusterIP (默认策略): Service会获取一个仅集群内部可访问的虚拟IP(ClusterIP),kube-proxy组件根据Service定义的SessionAff
阅读全文
摘要:在Kubernetes(k8s)中,Service是用于定义一组Pod的访问策略和机制的资源对象。以下是Kubernetes Service支持的主要类型: ClusterIP: 这是默认的服务类型。创建一个仅集群内部可访问的虚拟IP地址(VIP)。应用程序只能通过内部集群DNS名称从集群内的其他P
阅读全文
摘要:在Kubernetes (k8s) 中,自动扩容机制主要用于根据资源使用情况动态调整Pod副本的数量,以确保服务的稳定性和高效性。主要实现这一功能的组件是Horizontal Pod Autoscaler(HPA)。 Horizontal Pod Autoscaler工作原理如下: 监控指标: HP
阅读全文
摘要:Kubernetes (k8S) 中的 DaemonSet 是一种控制器资源,它具有以下关键特性: 每个节点运行一个实例: DaemonSet 确保集群中的每个节点(满足特定条件的节点)上都运行一个Pod副本。这意味着无论何时创建或加入新的节点到集群中,DaemonSet都会自动为新节点调度和管理一
阅读全文
摘要:在Kubernetes (k8s) 中,Deployment 的升级策略主要指的是在更新 Pod 副本以部署新的容器镜像或配置时所采用的方法。主要有两种内置的升级策略: 滚动更新(RollingUpdate): 这是 Deployment 默认使用的升级策略。 在滚动更新中,Deployment 控
阅读全文
摘要:在Kubernetes (k8s) 中,Deployment升级过程是一个受控且平滑的过程,用于将应用的新版本无缝地替换旧版本。以下是Deployment进行滚动升级的基本步骤: 更新Deployment配置: 首先,你需要更新Deployment的yaml配置文件,例如更改镜像标签到新版本的应用程
阅读全文