最近又迫切的想进一步了解kubernetes,现在粗略的看了一下kubernetes。 现在对kubernetes 有了一个相对全面的了解,基本上把整个架构体系,运转流程梳理清楚了, 这也只能说管中窥豹。

自己梳理完成后就不得不感慨,整套系统结构层次清晰,这没有多年积累是基本上是不可能实现的任务。

kubernetes是容器编排治理系统, 涉及各项资源非常多, 非常杂乱。 kubernetes怎么做得呢?

我的理解,其实还是标准化、抽象化、模块化来实现的。

我的理解把各项资源抽象化, 网络、磁盘、服务、 容器全部是抽象的出来的。

怎么理解呢?那磁盘举例,其实不能叫磁盘应该叫持久化,保持持久化,简单的理解就是数据最终写到哪里?

在 k8s 中都成为volumn, 可以是本地磁盘, 可以是对象存储,可以是阿里云、腾讯云的对象存储, 这些都没有问题。 只要实现了对应的volumn 的接口注册、 挂在、卸载等接口就OK了。

在这里就形成了三个概念 PV、PVC、StorageClass。 StorageClass告诉我们改用哪个持久化方案, PV 持久话的具体实现, 而PVC这是在PV的基础上我们用户层面该如何申请持久话的条件。

同理service 和 Deployment/Statefulset 也是一样, 不管是Deployment还是Statefulset 可以理解成后端服务, 后端服务,没有访问地址自然就无法访问了, 那用户要访问后端服务怎么办, 我们常见处理方式, 把后端服务加入到负载均衡、直接访问服务器的IP, 等等, 其实service 也是一样的,就是指定用户如何访问后端服务器的。

service可以理解成L4, 那么L7 代理就是 ingress。同样可以和Deployment关联。

其实k8s没有那么复杂,多想想自己再实体机或者虚拟机的工作中场景,发现k8s都是具备的, 只是内部数据交互通过apiserver来实现。s

回到前面所说,为什么这里提到标准化?其实在运维里头最难的的是标准化,指定后实际应用也会走行, k8s确实通过模型很好的拆分了资源, 大家按照我的标准搭建服务就是OK。

在这里也仅仅是自己的一点心得。其实k8s不管是那个知识点都有很多细节, 如果都写一到,恐怕有点难, 这里只是起个提纲,后续我们一起学习,有不妥之处请多指教。