kubernetes
文章平均质量分 60
千度2016
小白
展开
-
Kubernetes 之 Secret
Secret 解决了密码、token、秘钥等敏感数据的配置问题,它避免了把这些敏感数据直接暴露在镜像或者 Pod 的配置文件中。但是它只是一种相对安全的策略,我们还是可以在容器内找到这些信息。原创 2024-06-03 13:13:16 · 244 阅读 · 0 评论 -
Kubernetes 之 ConfigMap
ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时,可以将其用作环境变量、命令行参数或者存储卷中的配置文件。通过使用 ConfigMap 可以将你的配置数据和应用程序代码分开。原创 2024-06-01 10:23:39 · 1417 阅读 · 0 评论 -
Kubernetes 之 DaemonSet 基本原理
DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本。当有节点加入集群时, 也会为他们新增一个 Pod。当有节点从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod。它最经常被使用在收集集群日志的用途上。原创 2024-05-31 13:24:44 · 391 阅读 · 0 评论 -
Kubernetes StatefulSet 扩缩容与升级
滚动更新将会以倒叙的方式逐次更新 Pod , 同时我们也可以用partition字段来分割更新部分与不更新部分。假设partition为2,副本数为3,则副本索引为 0,1,2。即更新部分为副本数(3-1)至 2,索引 2 更新;不更新部分索引 0 和 1。OnDelete 指的是不直接更新 Pod,只有在 Pod 被删除后才会被更新。原创 2024-05-30 19:21:27 · 277 阅读 · 0 评论 -
Kubernetes 之 StatefulSet基本原理
StatefulSet 是一个有状态的集合,不同于一般 Pod 的一致性,不同的 Stateful Set 创建的 Pod 之间存在数据上的差异。同时它们是有序的,这样它们在故障或删除后恢复,自身的名字也不会变化,以达到维护整个分布式系统的目的。例如在 Redis 主从集群中,我们不能用 Pod 模式来部署,以为主从容器之间的配置信息是不一样的,这时候我们就需要 Stateful Set 来实现我们的需求。原创 2024-05-30 09:48:26 · 404 阅读 · 0 评论 -
Kubernetes 硬盘持久化之 StorageClass
StorageClass 为管理员提供了描述存储"类"的方法。不同的类型可能会映射到不同的服务质量等级或备份策略,或是由集群管理员制定的任意策略。这个类的概念在其他存储系统中有时被称为"配置文件"。每个 StorageClass 都包含parameters和字段, 这些字段会在 StorageClass 需要动态制备 PersistentVolume 时会使用到。原创 2024-05-29 09:55:40 · 1179 阅读 · 0 评论 -
Kubernetes 硬盘持久化之 PV 和 PVC
持久卷申领(PersistentVolumeClaim,PVC)表达的是用户对存储的请求。概念上与 Pod 类似。Pod 会耗用节点资源,而 PVC 申领会耗用 PV 资源。Pod 可以请求特定数量的资源(CPU 和内存)。同样 PVC 申领也可以请求特定的大小和访问模式。原创 2024-05-28 20:18:18 · 794 阅读 · 0 评论 -
Kubernetes 硬盘持久化之 NFS 使用
NFS 全称是 Network File System (网络文件系统),即通过网络协议挂载一块远端的逻辑盘。原创 2024-05-27 21:21:52 · 243 阅读 · 0 评论 -
Kubernetes 之硬盘持久化和 EmptyDir 与 HostPath 挂载类型
EmptyDir 是 Pod 多容器之间共享的临时性沟通目录,它会随着 Pod 的删除而删除。它通常只是用来多容器共享数据之用。kind: Podmetadata:spec:volumes:emptyDir:/ # exitHostPath 只是将 Pod 中容器的目录映射到其所在的工作节点上,Pod 被删除后,该目录依旧存在于工作节点上。但是当恢复Pod节点的时候,它不一定存在于原来的工作节点上,所以这种挂在方式很不常用。原创 2024-05-26 21:42:32 · 441 阅读 · 0 评论 -
Kubernetes Service 之 ExternalName
ExternalName 用来定义在不同的命名空间想要引用其它命名空间 Service 的别名,使得本空间 Service 名字在本空间更有区分度。原创 2024-05-25 21:27:06 · 396 阅读 · 0 评论 -
Kubernetes Service 之原理与 ClusterIP 和 NodePort 用法
在 Kubernetes 中,由于Pod 是有生命周期的,如果 Pod 重启它的 IP 可能会发生变化以及升级的时候会重建 Pod,我们需要 Service 服务去动态的关联这些 Pod 的 IP 和端口,从而使我们前端用户访问不受后端变更的干扰。原创 2024-05-25 09:09:03 · 1148 阅读 · 0 评论 -
Kubernetes Deployment 之版本回退和灰度(金丝雀)发布
在版本发布的过程中,可能升级的版本存在问题,那么就需要版本回退。查看指定 Deployment 版本历史回退至第一个发布的版本。原创 2024-05-24 10:40:47 · 373 阅读 · 0 评论 -
Kubernetes Deployment 之扩缩容与滚动更新
扩缩容非常简单,我们可以直接调整 replica 副本数目,然后指定进行动态更新。下面将动态改为 1 个 Pod 和 3 个 Pod 的操作。原创 2024-05-24 09:01:14 · 204 阅读 · 0 评论 -
Kubernetes 之 Deployment
Deployment 是 Kubernetes 中最常用资源之一,为 ReplicaSet 和 Pod 的创建提供了一种声明式的定义方法。Kubernetes 通过定义一个Deployment 控制器会创建一个新的 ReplicaSet 资源,通过 ReplicaSet 资源创建对应 Pod 的副本数。同时,如果我们删除 Deployment 控制器,也会删除 Deployment 控制器下对应的 ReplicaSet 控制器和 Pod 副本,这也是声明式定义的一个特点。原创 2024-05-23 15:17:44 · 469 阅读 · 0 评论 -
Kubernetes 之 ReplicaSet
ReplicaSet 是 Kubernetes 中的一种副本控制器,其主要作用是控制其管理的 Pod 的预设副本数量。它会持续监听这些 Pod 的运行状态,在Pod发生故障时执行重启策略,当 Pod 数量减少时会重新启动新的 Pod 副本。但官方推荐不要直接使用 ReplicaSet,推荐用Deployment 取而代之,Deployment 是 ReplicaSet 的父集。ReplicaSet 无法灵活性升级回退和扩缩容,但 Deployment 支持了这两大功能。原创 2024-05-23 10:47:36 · 578 阅读 · 0 评论 -
Kubernetes 生命周期之三大探测
在 Kubernetes 中 Pod 是最小的计算单元,而一个 Pod 又由多个容器组成,相当于每个容器就是 Pod 的一个进程。容器在运行期间,可能因为某些意外情况致崩溃重启。为了监测容器运行的状态,Kubernetes 提供了三大探测机制和。这三大探测机制可以是容器安全的启动和退出,并平滑的加入网络给应用侧提供服务。原创 2024-05-22 16:30:28 · 495 阅读 · 0 评论 -
Kubernetes 生命周期之容器钩子
容器钩子是指容器在 Pod 运行过程中的触发事件,它可以用来做一些容器启动前准备和容器停止前准备。PostStart和PreStop。PostStart: 这个钩子在容器启动后立即被执行,但是它不能保证在容器Entrypoint脚本前执行,它们两个没有沟通的参数渠道。同时由于其在 Pod 中上下文是同步的,有可能因为PostStart运行或者挂起时间太长,容器无法达到Running状态Prestop。原创 2024-05-22 09:46:18 · 323 阅读 · 0 评论 -
Kubernetes Pod 生命周期之初始化容器
Init 容器是一种特殊容器,在 Pod 内的应用容器启动之前运行。Init 容器可以包括一些应用镜像中不存在的实用工具和安装脚本,以用来实现启动前检查依赖服务是否正常并生成初步配置文件。原创 2024-05-21 16:27:49 · 480 阅读 · 0 评论 -
Kubernetes 之 Pod 生命周期介绍
Pod 从创建到销毁的一整个过程被称为生命周期。在这个生命周期的过程中,Pod 历经初始化容器创建,Pod 启动后钩子事件、启动探测、准备完成探测和存活性探测等多个过程,直至终止前勾子事件停止 Pod。原创 2024-05-21 15:27:23 · 229 阅读 · 0 评论 -
Kubernetes 之 Pod 常见的状态和重启策略
Kubernetes 之 Pod 常见的状态和重启策略。原创 2024-05-20 15:46:36 · 827 阅读 · 0 评论 -
Kubernetes 之 Pod 容忍度与节点污点
节点污点taints和 Pod 容忍度是结合使用的。它给了节点选择 Pod 的权利,污点设置了effect参数来选择 Pod,如果 Pod 的容忍度级别不够,那么 Pod 将不会出现在该节点上,反之,则有可能被分配这个节点上。原创 2024-05-19 11:56:54 · 1240 阅读 · 0 评论 -
Kubernetes 之 Pod 之间的亲和性与反亲和性
Pod 反亲和性是与亲和性完全相反的定义,一旦发现它的约束条件匹配,那么这个 Pod 比与匹配 Pod 在不同的上的工作节点上。它主要可以用来保障不是热点区域和不需要高性能响应但很重要的业务不受干扰。原创 2024-05-18 10:09:26 · 469 阅读 · 1 评论 -
Kubernetes 之 Pod 标签、节点选择器和节点亲和性
我们在创建 Pod 资源的时候,Pod 会根据 Scheduler 进行调度,默认会调度到随机的一个工作节点。如果我们想要将 Pod 调度到指定节点或者调度到一些具有相同特点的 Node 节点,可以使用 Pod 中的nodeName或者字段来指定要调度到的 Node 节点。节点亲和性是 Pod 在调度过程中一系列调度约束规则,主要针对节点选择器的匹配,匹配度越高,则该节点执行该 Pod 的概率就越高。节点亲和性分为硬亲和性和软亲和性,硬亲和性代表必须满足,软亲和性在不满足约束规则的条件上,仍可以随机启动。原创 2024-05-18 10:08:54 · 518 阅读 · 0 评论 -
Kubernetes 之 Pod 基本原理
Pod是 Kubernetes 中的最小调度单元,k8s是通过定义一个Pod的资源,然后在Pod里面运行容器,容器需要指定一个镜像,这样就可以用来运行具体的服务。一个Pod封装一个容器,也可以封装多个容器。其类似于豌豆荚,容器则是里面的豆子。Pod 里的容器共享存储、网络等。我们可以把整个 pod 看作一台虚拟机,每个容器相当于运行在虚拟机的进程。Pod 是需要被调度到 k8s 集群的工作节点来运行的,具体调度到哪个节点,是根据 k8s scheduler 调度器实现的。原创 2024-05-18 10:08:23 · 334 阅读 · 0 评论 -
Kubernetes 之 Namespace
Kubernetes 可以构建多个逻辑域进行隔离,它们底层依赖于同一个物理集群, 这些虚拟域被称为命名空间。命名空间 Namespace 是 k8s 顶层级别的资源,可以给不同的管理员、租户、项目环境或项目创建对应的命名空间,例如,可以为 test、development、production 环境分别创建各自的命名空间。原创 2024-05-18 10:07:50 · 310 阅读 · 0 评论 -
基于 debian 12 利用 kubeadm 部署 k8s 1.29 版本
准备三台debian 12开放root账户允许其远程ssh登录打开将no修改为yes,以允许 root 用户远程登录。执行如下指令安装必备软件关闭三台机器的 swap关闭防火墙三台主机之间设置免密登录先在三台主机上执行ssh-keygen指令,然后一直回车直至结束再在三台虚拟机上/etc/hosts文件末尾加入如下三行解析最后在三台主机上分别执行如下指令修改三台主机内核参数,分别在三台机器上执行如下指令三台主机安装 docker 、containerd 和 crictl$($(&&echo。原创 2024-05-18 10:07:12 · 577 阅读 · 0 评论