自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lin2ur的博客

Yaml 工程师

  • 博客(14)
  • 收藏
  • 关注

原创 k8s: 基于消息队列长度自动扩容业务 Pods (HPA)

HPA (Horizontal Pod Autoscaler) 是 Kubernetes 提供的一种自动扩容机制,它可以根据指定的指标自动调整 Pods 的副本数量以满足应用的负载需求。在 1.6 版本之前,HPA 只支持基于 CPU 和内存的指标,即根据 Pod 的 CPU 和内存使用情况来进行扩容,但这种方式并不能全面反映应用的实际负载情况,例如,一个 Web 应用(I/O 密集型)可能更多地依赖磁盘或网络带宽,而这些资源的使用情况可能不会直接反映在 CPU 或内存指标上

2024-09-23 18:03:07 775

原创 扩展-K8S-03-Operator

如同业务开发第一步是设计数据库表结构一样,开发 Operator 的第一步是设计自定义资源,调用create api命令后 kubebuilder 会在文件中生成自定义资源对应的结构体代码,我们要做的是修改这个结构体,随后调用 kubebuilder 生成安装到集群的 CRD,下面来看package v1import (//...是自定义资源的根结构体,和大多数 Kubernetes 对象一样包含有metadataspecstatus字段,先来看描述用户期望状态的spec字段对应的的。

2024-04-06 16:36:08 629 1

原创 使用 zerotier 打通云上与本地网络并搭建 k8s 集群

最近不少云厂商都推出了云主机包年优惠活动,虽然配置不高但好在有公网 IP,恰好家里有一台 Mac mini 在吃灰,花了三杯咖啡钱买了一年某云的云主机打算将其和家里的 Mac mini 组成 k8s 集群,方便平时学习和测试同时也能通过云主机的公网 IP 访问到 Mac mini 上运行的服务。为了方便讲解下面以ecs和macmini表示两台主机,先来看看两台主机的网络信息:ecsmacmini两台主机处于不同的网络中,其中ecs。

2024-01-10 15:21:02 1229

原创 速通 Prometheus 监控体系:从业务埋点到指标可视化再到告警(一)

Prometheus本文只会对关键环节进行介绍不会花费太多篇幅在细节上,虽然大多数情况下 Prometheus 会部署在 Kubernetes 集群中,但为了降低学习门槛本文将使用 Docker Compose 进行部署,完整的部署文件放在,准备好 Docker Compose,我们开始吧!

2024-10-24 10:13:43 352

原创 k8s: nginx-ingress-controller 多副本部署实现全局限流

介绍一种基于ngx_http_auth_request_module模块实现全局限流的方法,它是 Nginx 的官方模块并且nginx-ingress-controller默认包含,因此我们无需对 nginx-ingress-controller 进行任何修改。

2024-10-12 17:59:10 1062

原创 使用 JavaScript 增强 Nginx 实现可编程配置

Nginx 作为一款高性能的反向代理服务器和负载均衡器,广泛应用于处理大量并发连接和静态内容的服务。其高效的事件驱动架构使得 Nginx 能够在资源有限的情况下,提供卓越的性能和稳定性。然而,Nginx 的配置文件nginx.conf虽然灵活且功能强大,却还是存在一些局限性。首先nginx.conf是静态配置,意味着任何配置的更改都需要重新加载服务 (reload),这在快速变化的环境中可能导致服务中断或延迟;其次如果需要在请求处理过程中进行一些复杂的逻辑处理,nginx.conf无法满足需求。

2024-09-28 09:07:06 1194

原创 k8s: 使用 KEAD 基于业务指标自动扩容 Pods 副本

KEDA 提供了一种基于事件驱动的自动扩容方案,KEDA 支持丰富的事件来源,例如:ActiveMQ 队列长度、Redis List 长度、MySQL 查询结果等。KEDA 会直接访问这些事件源无需额外的指标采集工作,这对于一些没有指标采集需求的项目来说是非常友好的。接下来我们还是基于上篇文章的生产者 - 消费者场景,来看看如何使用 KEDA 来实现自动扩容。

2024-09-25 08:33:54 1092

原创 使用 Nginx 镜像网站实现「文档自由」

到这里针对 Kubernetes 官网的镜像网站就搭建好了,以上只是针对单个网站提供一个思路,实际情况可能会更复杂,灵活使用 Nginx 的指令可以解决大部分问题。

2024-07-15 16:19:33 1396

原创 告别Docker-使用ko快速构建Golang应用镜像

大多数情况下 ko 都能很好地满足我们的需求,但是 ko 也有一些局限性,无法更多地定制化镜像,比如无法在镜像中预设环境变量,无法像 Docker 一样在构建过程中执行命令安装依赖等,不过我们在构建基础镜像的过程中完成这些操作。

2024-06-29 16:05:58 424

原创 使用-Nginx-GeoIP2-获取客户端地理位置及限制指定地区访问

在日常工作中有时候我们需要获取用户所在的地区以便做一些特殊处理,比如根据地区展示不同的内容,或者限制某些地区的访问等。本文将介绍如何使用 Nginx + GeoIP2 模块获取用户所在地区以及限制指定地区访问。

2024-04-24 15:48:25 1155 2

原创 k8s-使用-NetworkPolicy-屏蔽恶意-IP-访问

虽然大多数情况下都不会造成安全问题,但是也会对服务造成一定的影响,比如日志被刷爆、服务被拖慢等。可以用来限制 Pod 的出入站流量,一般用于在多租户集群中隔离不同租户的网络流量,也可以用来限制外部目标访问 Pod 的流量。默认情况下 Pod 的出入站流量都是开放的,即任何 Pod 都可以被集群内的其它 Pod 或通过 Service 被集群外的目标访问,Pod 也能访问集群内外的任何目标,的 Pod,其它 Pod 的访问将被拒绝,由此可以看出 NetworkPolicy 是一种白名单策略。

2024-04-22 16:59:49 507

原创 扩展 K8S: 02. 调度器

在这篇文章中我们来探索 k8s 核心组件「调度器」的扩展方法。首先来了解一下调度器的工作流程并实现一个「MVP」版本的调度器;接着来了解 k8s 默认调度器的功能以及默认调度器的扩展机制;最后实现一个根据节点网速调度 Pod 的调度器

2024-03-01 16:34:35 1123 1

原创 扩展 K8S: 01. 动态准入控制

k8s 作为当下最受欢迎的容器编排系统除了拥有强大的调度能力外还提供了非常多的扩展机制极大地提高了 k8s 的能力上限,也促就了 k8s 丰富的生态环境。接下来我们一起探索最常用的通常情况下这两个问题都可以通过修改配置解决,例如:latest tag 的问题可以使用 Linter 工具检查;境外仓库的问题可以通过修改镜像仓库地址为国内镜像仓库地址解决。但这两种解决方式都需要人工介入,下面来看看如何使用动态准入控制机制来自动化地解决这两个问题。

2023-12-22 15:44:13 477

原创 使用 kustomize 修改 k8s 资源文件

在日常工作中我们经常会用到其他开发者编写好的 k8s 资源配置文件来部署应用,这些配置文件可能是放在 Git 仓库也可能是封装成 helm chart,无论是哪种分发形式我们在安装之前或多或少都会对这些配置文件进行一些修改,比如注入数据库连接相关的环境变量,修改镜像版本等。kustomize 可以非常优雅地解决上述问题,它使用声明式的配置来对 k8s 资源配置文件进行自定义,本文只介绍与相关的内容。kustomize 的安装过程非常简单这里不过多赘述,参照说明安装即可。

2023-12-07 17:10:35 253 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除