最近有点太忙了,所以更新比较慢,然后之前 Go 进阶训练营更新的有点太久了,准备换换脑子,虽然我工作上一直和 Kubernetes 打交道但是还一直没有更新过这一块的相关内容,所以就有了接下来的这个系列。
PS: 对于这一块作者本身也是一个初学者,有所错漏,在所难免,希望发现的大佬可以帮助指正,万分感谢
Kubernetes扩展: Operator 这个系列文章主要面向的是对 Kubernetes 的基本概念已经有了一定的了解,想对 Kubernetes 进行一些扩展开发或者是对 Kubernetes 的工作模式能够有更深入了解的同学(PS:和我差不多)。这个小系列会更新 9 – 10 篇文章,这是第一篇 Operator概述: 如何对 Kubernetes 进行扩展,接下来两周工作日每天会更新一篇,想要及时获取更新可以移动到文章底部关注微信订阅号。
Kubernetes 有哪些扩展点?
Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用[^1]。
虽然现在 Kubernetes 已经是容器编排的事实标准,其本身的功能也非常丰富并且灵活,但是也不能满足所有人的需求,在遇到 Kubernetes 提供的能力无法满足我们需求的时候,我们就可以利用其强大的扩展能力进行定制。
从客户端到底层容器运行时,绝大部分地方 Kubernetes 都为我们预留了扩展点,我们从上往下一个一个的来看
1. kubectl
kubectl 是我们平时和 Kubernetes 交互使用的最多的客户端工具,常见的运维操作都会通过 kubectl 来完成,kubectl 为我们提供了插件机制来方便扩展。
kubectl 插件其实就是以kubectl-为前缀的任意可执行文件 ,执行 kubectl 插件的时候可以通过 kubectl 插件名 参数 的方式运行插件。
就像 Ubuntu 使用 apt 管理软件,mac 可以使用 brew 一样,kubectl 也有类似的插件管理工具 krew [^4] 查找是否已经存在我们需要的插件