
Kubernetes
文章平均质量分 95
Kubernetes 简称为 K8s,它是一个开源的,用于管理云平台中多个主机上的容器化的应用。
G皮T
计算机科学与技术本科,计算机技术硕士,现任职于某互联网公司,担任测试开发工程师。优快云云原生领域优质创作者、博客专家。书籍《大数据测试开发工程师的第一本书》正在积极撰写中,敬请期待。微信公众号:大数据与AI实验室。《Java 百“练”成钢》连载中,欢迎关注!
展开
-
【Kubernetes】K8s 实践之旅
Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化,它拥有庞大且快速发展的生态系统,Kubernetes 服务、支持和工具随处可见。原创 2024-09-02 00:18:35 · 502 阅读 · 0 评论 -
【Kubernetes】Kubernetes 概述
Kubernetes 是一个可移植的、可扩展的、用于管理容器化工作负载和服务的开源平台,它简化(促进)了声明式配置和自动化。它有一个庞大的、快速增长的生态系统。Kubernetes 的服务、支持和工具随处可见。原创 2023-08-12 17:54:08 · 2711 阅读 · 1 评论 -
【Kubernetes】微内核的分布式操作系统 Kubernetes
作为分布式操作系统,Kubernetes(包括其前代产品 Google Borg)的出现远远晚于 UNIX、Linux、Windows 等著名的单机操作系统,Kubernetes 架构设计自然地继承了很多单机操作系统的珍贵遗产,微内核架构就是这些遗产中最重要的一份。在本文接下来的部分,我们将专注于微内核(microkernel)这个概念及其对 Kubernetes 架构的影响。原创 2023-08-13 00:16:27 · 1748 阅读 · 1 评论 -
【Kubernetes】Pod、Container、Node、Cluster
Kubernetes 是一个开源容器编排平台,管理着一系列的主机或者服务器,它们被称作是节点(Node)。每一个节点运行了若干个相互独立的 Pod。Pod 是 Kubernetes 中可以部署的最小执行单元,说白了它就是一个或者多个容器的集合。其中运行了我们应用的某一部分核心组件,比如数据库、Web 服务器等等。原创 2023-11-25 21:56:42 · 1490 阅读 · 0 评论 -
【Kubernetes】Pod 的概念、使用方法、容器类型
Pod 是 Kubernetes 中的一个逻辑单位,它代表集群中正在运行的一个进程,是 Kubernetes 集群中的一个应用实例,由一个或者多个容器组成。在 Pod 中还可以包含数据的持久化存储、网络配置等资源。Pod 支持多种容器的执行环境,而 Docker 则是 Pod 最常见的执行环境。Pod 也支持用其他容器引擎作为执行环境。原创 2024-07-27 14:56:42 · 2209 阅读 · 0 评论 -
【Kubernetes】Pod 的生命周期(一):Pod 阶段与状况、容器的状态与重启策略
本篇博客讲述 Pod 的生命周期。 Pod 遵循预定义的生命周期,起始于 Pending 阶段, 如果至少其中有一个主要容器正常启动,则进入 Running,之后取决于 Pod 中是否有容器以失败状态结束而进入 Succeeded 或者 Failed 阶段。原创 2024-05-06 23:06:25 · 1658 阅读 · 0 评论 -
【Kubernetes】Pod 的生命周期(二):Pod 的健康检查之容器探针
本篇博客讲述 Pod 的生命周期。 Pod 遵循预定义的生命周期,起始于 Pending 阶段, 如果至少其中有一个主要容器正常启动,则进入 Running,之后取决于 Pod 中是否有容器以失败状态结束而进入 Succeeded 或者 Failed 阶段。原创 2024-05-06 23:08:16 · 1012 阅读 · 1 评论 -
【Kubernetes】Pod 状态速查表
在执行创建 Pod 过程中,命令行已经执行,Pod 已经被 K8s 系统接受,但仍有一个或多个容器未被创建,可以通过 kubectl describe 查看处于 Pending 状态的原因。原创 2024-01-11 23:59:14 · 3581 阅读 · 0 评论 -
【Kubernetes】Pod 的调度策略
Pod 的调度是指,Kubernetes 在创建 Pod 时,将其创建到最合适的 node 节点上,然后由 node 节点上的 kubelet 来运行 Pod。在默认情况下,调度器 scheduler 会根据特定的算法和策略将 Pod 调度到 node 节点上,这样可以满足绝大多数的需求。例如,调度 Pod 到资源满足要求的 node 节点上运行;或者分散到不同 node 节点上,以达到资源的均衡使用。原创 2024-07-27 21:53:01 · 1047 阅读 · 0 评论 -
【Kubernetes】Pod 资源调度之亲和性调度
Kubernetes 的默认调度器以预选、优选、选定机制完成将每个新的 Pod 资源绑定至为其选出的目标节点上,不过,它只是 Pod 对象的默认调度器,默认情况下调度器考虑的是资源足够,并且负载尽量平均。在使用中,用户还可以自定义调度器插件,并在定义 Pod 资源配置清单时通过spec.schedulerName指定即可使用,这就是亲和性调度。原创 2024-07-06 14:07:05 · 1344 阅读 · 0 评论 -
【Kubernetes】Pod 驱逐
抢占是这样一个过程:如果一个新的 Pod 需要被调度,但是没有任何合适的节点拥有足够的资源,那么 kube-scheduler 将通过驱逐终止一些优先级较低的 Pod 来检查新的 Pod 是否可以成为那个节点的一部分。原创 2024-03-30 18:37:54 · 1816 阅读 · 0 评论 -
【Kubernetes】Pod 的配置管理(一):ConfigMap
为了解决这样的问题,Kubernetes 提供了自己的解决方案,它将配置信息作为一种独立的资源存入配置中心,并将其以注入的方式提供给 Pod 使用。如果更新了配置中心中的配置信息,则 Pod 会自动加载更新后的配置信息。Kubernetes 主要通过 ConfigMap 和 Secret 两种方式来实现配置信息的管理。原创 2024-07-28 18:46:49 · 1701 阅读 · 0 评论 -
【Kubernetes】Pod 的配置管理(二):Secret
Secret 也是 Kubernetes 配置管理的一种方式,它采用 Base 64 编码机制保存配置信息。与 ConfigMap 不同的是,Secret 中包含敏感的信息,例如用户的登录密码、Token 等。这些敏感信息使用 Secret 来保存,可以更好地控制它们的用途,并降低意外暴露的风险。在成功创建 Secret 后,可以通过环境变量或数据卷的方式在 Pod 中使用它。原创 2024-07-31 22:53:49 · 840 阅读 · 0 评论 -
【Kubernetes】Deployment 控制器
通过使用 Deployment 控制器,开发人员可以部署 Pod、设置 Pod 的副本、实现 Pod 的升级与回滚。在 YAML 文件中描述清楚了 Deployment 控制器的目标是什么,Deployment 控制器会自动完成对 Pod 和 ReplicaSet 的管理。Kubernetes 可以直接运行一个新的 Deployment 控制器,也可以用一个新的 Deployment 控制器替换旧的 Deployment 控制器。原创 2024-08-03 14:10:25 · 956 阅读 · 0 评论 -
【Kubernetes】Deployment 的创建和使用(实战)
通过使用 Deployment 控制器,开发人员可以部署 Pod、设置 Pod 的副本、实现 Pod 的升级与回滚。在 YAML 文件中描述清楚了 Deployment 控制器的目标是什么,Deployment 控制器会自动完成对 Pod 和 ReplicaSet 的管理。Kubernetes 可以直接运行一个新的 Deployment 控制器,也可以用一个新的 Deployment 控制器替换旧的 Deployment 控制器。原创 2024-08-04 11:39:22 · 1535 阅读 · 0 评论 -
【Kubernetes】Deployment 的状态
通过使用 Deployment 控制器,开发人员可以部署 Pod、设置 Pod 的副本、实现 Pod 的升级与回滚。在 YAML 文件中描述清楚了 Deployment 控制器的目标是什么,Deployment 控制器会自动完成对 Pod 和 ReplicaSet 的管理。Kubernetes 可以直接运行一个新的 Deployment 控制器,也可以用一个新的 Deployment 控制器替换旧的 Deployment 控制器。原创 2024-08-04 12:38:13 · 906 阅读 · 0 评论 -
【Kubernetes】Deployment 的清理策略及编写规则
在 Deployment 中配置 spec.revisionHistoryLimit 字段,可以指定其清理策略。该字段用于指定 Deployment 保留旧 ReplicaSet 的个数,即更新 Pod 前的版本个数。该字段的默认值是 10。原创 2024-08-05 22:00:34 · 619 阅读 · 0 评论 -
【Kubernetes】应用的部署(一):金丝雀部署
金丝雀部署也被叫作灰度部署。金丝雀部署过程:先让一部分用户继续使用旧版本,而另一部分用户开始使用新版本;如果新版本没有发生问题,则逐步扩大新版本的使用范围直到使用旧版本的用户都使用新版本。原创 2024-08-05 23:55:59 · 1007 阅读 · 0 评论 -
【Kubernetes】应用的部署(二):蓝绿部署 & 滚动部署
蓝绿部署:同时部署旧版本和新版本(旧版本被叫作蓝色版本,新版本被叫作绿色版本);在绿色版本中对应用进行测试,待测试完全通过后,将应用从蓝色版本路由到绿色版本,然后将绿色版本变成新的生产环境。原创 2024-08-10 23:34:42 · 1406 阅读 · 0 评论 -
【Kubernetes】Service 概念与实战
在 Kubernetes 中部署的应用可能对应一个或者多个 Pod,而每个 Pod 又具有独立的 IP 地址。Service(服务)能够为一组功能相同的 Pod 提供统一不变的访问地址,使得集群具有稳定的 IP 地址(即 Cluster IP 地址),从而使在集群内部能够通过该 Cluster IP 地址将客户端请求路由到集群中的一个 Pod 上,从而实现客户端与 Pod 的通信。原创 2024-08-11 17:27:06 · 1316 阅读 · 0 评论 -
【Kubernetes】Service 类型:NodePort、ClusterlP、LoadBalancer、ExternalName
如果要使用外部的负载均衡器来访问应用(如 Google Cloud、AWS 和 OpenStack 等),则可以通过使用 LoadBalancer 类型的 Service 将 Kubernetes 集群中的 IP 地址和端口号自动加入公有云的 LoadBalancer 中,从而异步地实现负载均衡。原创 2024-08-11 23:59:13 · 1451 阅读 · 0 评论 -
【Kubernetes】虚拟 IP 与 Service 的代理模式
由于 Service 的默认发布类型是 ClusterlP,因此也可以把 ClusterIP 地址叫作虚拟 IP 地址。在 Kubernetes 创建 Service 时,每个节点上运行的 kube-proxy 会自动为 Service 分配一个虚拟 IP 地址,即通过转发代理 kube-proxy 来实现路由转发功能。kube-proxy 在具体实现流量代理转发与负载均衡时,有 3 种模式。原创 2024-08-17 15:21:22 · 1205 阅读 · 3 评论 -
【Kubernetes】集群外部的请求访问集群内应用的最佳方式:Ingress
Ingress 的本质是,定义了一组从域名(或 URL)到 Service 的路由转发规则。Ingress 不会公开端口信息和所使用的协议,而是通过配置 HTTP 或 HTTPS 的路由规则,来实现从集群外部访问集群内应用的 URL 并实现负载均衡功能。原创 2024-08-18 11:31:11 · 1487 阅读 · 0 评论 -
【Kubernetes】K8s 持久化存储方式
由于容器是一种无状态的服务,所以容器中的文件在宿主机上表现出来的都是临时存放(当容器崩溃或者重启时,容器中的文件会丢失)。另外,Kubernetes 也需要在 Pod 之间实现数据共享。为了解决这些问题,Kubernetes 与 Docker 一样,也通过使用数据卷的方式来实现数据持久化。原创 2024-08-25 16:17:47 · 2159 阅读 · 1 评论 -
【Kubernetes】持久卷 PV
数据卷是在创建 Pod 时通过挂载目录来实现数据的共享和持久化的。但是在一个大型系统中,这种方式是非常不利于管理的,因为数据卷把数据的持久存储和供应使用封装在一起了那么,能否将数据的持久存储和供应使用分别进行管理和使用呢?为了解决这个问题,Kubernetes 提供了持久卷(Persistent Volume,PV)和持久化声明(Persistent Volume Claim,PVC)。原创 2024-08-31 23:53:20 · 1444 阅读 · 0 评论 -
【Kubernetes】持久卷声明 PVC
通过使用持久卷声明(PVC),用户可以将实际的存储需求告诉给 Kubernetes,然后由 Kubernetes 在已有的持久卷(PV)中进行查找。当寻找到合适的持久卷(PV)时,Kubernetes 会将它提供给持久卷声明(PVC)使用。原创 2024-09-01 13:33:11 · 1463 阅读 · 0 评论 -
【Kubernetes】持久卷的动态供给 Dynamic Provisioning
在一个大规模的 Kubernetes 集群里,可能有成千上万个持久卷声明(PVC),这就意味着运维人员必须实现创建出这个多个持久卷(PV)。此外,随着项目的需要,会有新的 PVC 不断被提交,那么运维人员就需要不断的添加新的、满足要求的 PV,否则新的 Pod 就会因为 PVC 绑定不到 PV 而导致创建失败。而且通过 PVC 请求到一定的存储空间也很有可能不足以满足应用对于存储设备的各种需求。原创 2024-09-01 23:48:40 · 1167 阅读 · 0 评论 -
【Kubernetes】K8s 的安全框架和用户认证
Kubernetes 作为一个分布式的虚拟化集群管理工具,保证其集群的安全性就显得非常重要。由于 API Server 是访问集群资源的唯一入口,因此 Kubernetes 的安全机制都是围绕保护 API Server 来设计的。原创 2024-09-08 01:31:12 · 1393 阅读 · 0 评论 -
【Kubernetes】K8s 的鉴权管理(一):基于角色的访问控制(RBAC 鉴权)
基于角色的访问控制(Role-Based Access Control,RBAC),通过为用户赋予不同的角色来控制其访问 Kubernetes 集群资源。它允许用户动态配置不同的角色策略。基于角色的访问控制需要使用 rbac.authorization.k8s.io API 组来执行。原创 2024-09-08 15:24:56 · 1527 阅读 · 1 评论 -
【Kubernetes】K8s 的鉴权管理(二):基于属性 / 节点 / Webhook 的访问控制
基于属性的访问控制(Attribute-Based Access Control,ABAC)通过将属性组合在一起来定义用户可以访问的范围。其策略文件是一个具有多行 JSON 格式的文件,该文件中的每一行都是一个策略(即一个 JSON 对象)。原创 2024-09-10 00:17:21 · 1770 阅读 · 0 评论 -
【Kubernetes】服务账号 Service Account
服务账号(Service Account)是为了方便 Pod 中的进程调用 Kubernetes API 资源或访问其他外部服务而设计的。原创 2024-09-15 18:27:41 · 1492 阅读 · 0 评论 -
【Kubernetes】什么是 kubectl
在学习如何更有效地使用 kubectl 之前,您应该对它是什么以及它如何工作有一个基本的了解。从用户的角度来看,kubectl 是你控制 Kubernetes 的驾驶舱。它允许您执行所有可能的 Kubernetes 操作。从技术角度来看,kubectl 是 Kubernetes API 的客户端。原创 2023-12-30 18:07:14 · 2045 阅读 · 0 评论 -
【Kubernetes】kubectl 常用命令
kubectl 是 Kubernetes 提供的命令行管理工具。通过使用 kubectl,可以管理和操作 Kubernetes。原创 2023-12-30 01:42:42 · 1230 阅读 · 0 评论 -
【Kubernetes】如何使用 kubectl 操作 cluster、node、namespace、pod
在列出、描述、修改或删除其他命名空间中的对象时,需要给 kubectl 命令传递 --namespace(或 -n)选项。如果不指定命名空间,kubectl 将在当前上下文中配置的默认命名空间中执行操作。而当前上下文的命名空间和当前上下文本身都可以通过 kubectl config 命令进行更改。原创 2024-01-09 21:54:15 · 1653 阅读 · 0 评论 -
【Kubernetes】用 Helm 来简化 K8s 应用管理
K8s 是一个分布式的容器集群管理系统,它将集群中的所有资源都抽象成 API 对象,并且使用声明的方式来创建、修改、删除这些对象。在微服务盛行的今天,如果使用这种方式将导致大量 API 声明文件的编写维护,使运维工作量爆发式增长,并且对每个微服务应用都需要编写对应的 YAML 配置文件,极容易出错,维护困难。Helm 就是为解决这些问题而诞生的。原创 2024-05-25 17:15:45 · 1312 阅读 · 0 评论 -
【Kubernetes】基于 KubeSphere 的 Kubernetes 生产实践之旅
KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器平台,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。原创 2023-11-26 12:56:50 · 2391 阅读 · 0 评论