2025年k8s版本区别(k8s升级版本)

k8s版本区别(k8s升级版本)公众号 鸣霄溪 容器编排与作业管理 Deployment 创建一个多复本应用首选的方式就是 Deplyment Deployment 内部使用 ReplicaSet 实现 Deployment 实际上是一个两层控制器 ReplicaSet StatefulSet StatefulSet 这个控制器的主要作用之一 就是使用 Pod 模板创建 Pod 的时候 对它们进行编号

大家好,我是讯享网,很高兴认识大家。



公众号:鸣霄溪

容器编排与作业管理

Deployment

    创建一个多复本应用首选的方式就是 Deplyment,Deployment 内部使用 ReplicaSet 实现。

    Deployment 实际上是一个两层控制器:

        ReplicaSet

        StatefulSet

                  StatefulSet 这个控制器的主要作用之一,就是使用 Pod 模板创建 Pod 的时候,对它们进行编号,并且按照编号顺序逐一完成创建工作。

                  而当 StatefulSet 的“控制循环”发现 Pod 的“实际状态”与“期望状态”不一致,需要新建或者删除 Pod 进行“调谐”的时候,它会严格按照这些 Pod 编号的顺序,逐一完成这些操作。

                  与此同时,通过 Headless Service 的方式,StatefulSet 为每个 Pod 创建了一个固定并且稳定的 DNS 记录,来作为它的访问入口。

                  实际上,在部署“有状态应用”的时候,应用的每个实例拥有唯一并且稳定的“网络标识”,是一个非常重要的假设。

                  StatefulSet 其实是一种特殊的 Deployment,只不过这个“Deployment”的每个 Pod 实例的名字里,都携带了一个唯一并且固定的编号。这个编号的顺序,固定了 Pod 的拓扑关系;这个编号对应的 DNS 记录,固定了 Pod 的访问方式;这个编号对应的 PV,绑定了 Pod 与持久化存储的关系。所以,当 Pod 被删除重建时,这些“状态”都会保持不变。

                  Headless Service

                  Persisted Volume Claim (PVC) 对象

                  Persisted Volume 对象

                  声明式 API 与 Kubernets 编程范式

                  在 Kubernetes 项目中,一个 API 对象在 Etcd 里的完整资源路径,是由:Group(API 组)、Version(API 版本)和 Resource(API 资源类型)三个部分组成的。


                  讯享网

                  Operator: 聪明的微创新

                  Operator 的工作原理:

                    Controller Manager

                        基于 etcd watch 的实现方式:

                        kube-proxy :

                        容器网络:Service 是如何被发现的?

                        Service 是由 kube-proxy 组件,加上 iptables 来共同实现的

                        访问 Service VIP 的 IP 包经过上述 iptables 处理之后,就已经变成了访问具体某一个后端 Pod 的 IP 包了。不难理解,这些 Endpoints 对应的 iptables 规则,正是 kube-proxy 通过监听 Pod 的变化事件,在宿主机上生成并维护的。

                        Informar 和 缓存机制 - ListAndWatch 机制

                        所谓 Informer,其实就是一个带有本地缓存和索引机制的、可以注册 EventHandler 的 client

                          kubernetes 提供了 client-go 以便使用 go 语言进行二次开发。

                            controller-runtime 是社区封装的一个控制器处理框架。

                              kubebuilder 基于 controller runtime 做了一些封装,目的是快速生成 operator 代码。

                                小讯
                                上一篇 2025-05-06 18:16
                                下一篇 2025-05-28 19:34

                                相关推荐

                                版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
                                如需转载请保留出处:https://51itzy.com/kjqy/170075.html