2024-04-22k8s: 使用 NetworkPolicy 屏蔽恶意 IP 访问当我们在 Kubernetes 集群中部署了一些服务并对外暴露时,可能会遇到一些恶意访问的情况,比如暴力破解、恶意扫描等。虽然大多数情况下都不会造成安全问题,但是也会对服务造成一定的影响,比如日志被刷爆、服务被拖慢等。公有云厂商一般会提供一些安全组、网络 ACL 等功能来限制某些 IP 地址访问,只不过每次都需要登录到云平台进行操作比较繁琐,而且不同云厂商的操作方式也不一样,日后要进行迁移就... 阅读全文…
2024-03-22扩展 K8S: 03. OperatorOperator 是一种用来扩展 Kubernetes API 的方法,它能够将复杂的的应用程序封装成易于管理和自动化的 API 对象。假设我们要在集群中部署一个高可用 MySQL 集群,这个过程需要使用到非常多的 Kubernetes 对象,例如 StatefulSet、Service、ConfigMap、HorizontalPodAutoscaler 等等。即使有 Helm 这类工具能简... 阅读全文…
2024-02-21扩展 K8S: 02. 调度器上一篇文章介绍了 通过 Webhook 扩展 k8s 的方法,在这篇文章中我们来探索 k8s 核心组件「调度器」的扩展方法。首先来了解一下调度器的工作流程并实现一个「MVP」版本的调度器;接着来了解 k8s 默认调度器的功能以及默认调度器的扩展机制;最后实现一个根据节点网速调度 Pod 的调度器。 引用官方文档中对调度器的描述: 在 Kubernetes 中,调度是指将 Pod 放置到合适... 阅读全文…
2024-01-05使用 zerotier 打通云上与本地网络并搭建 k8s 集群最近不少云厂商都推出了云主机包年优惠活动,虽然配置不高但好在有公网 IP,恰好家里有一台 Mac mini 在吃灰,花了三杯咖啡钱买了一年某云的云主机打算将其和家里的 Mac mini 组成 k8s 集群,方便平时学习和测试同时也能通过云主机的公网 IP 访问到 Mac mini 上运行的服务。为了方便讲解下面以 ecs 和 macmini 表示两台主机,先来看看两台主机的网络信息: ec... 阅读全文…
2023-12-15k8sgolang扩展 K8S: 01. 动态准入控制k8s 作为当下最受欢迎的容器编排系统除了拥有强大的调度能力外还提供了非常多的扩展机制极大地提高了 k8s 的能力上限,也促就了 k8s 丰富的生态环境。接下来我们一起探索最常用的 动态准入控制 机制,最后实现一个简单的动态准入控制器来解决两个常见的问题: 编写配置时使用了 latest tag 镜像导致 Pod 下一次启动时拉取到了新版本的镜像 使用境外仓库的镜像时由于网络原因拉取失败,... 阅读全文…
2023-12-02k8s使用 kustomize 修改 k8s 资源文件在日常工作中我们经常会用到其他开发者编写好的 k8s 资源配置文件来部署应用,这些配置文件可能是放在 Git 仓库也可能是封装成 helm chart,无论是哪种分发形式我们在安装之前或多或少都会对这些配置文件进行一些修改,比如注入数据库连接相关的环境变量,修改镜像版本等。但有时候我们会遇到这样的的问题: 将 Git 仓库拉取下来直接修改配置文件后,上游仓库有更新导致与本地代码冲突 要修改... 阅读全文…