有了这篇 Kubernetes 的介绍,它的原理秒懂!
kubernetes 架构
Api Server:主要提供资源操作的统一入口,这样就屏蔽了与 Etcd 的直接交互。功能包括安全、注册与发现等。 Scheduler:负责按照一定的调度规则将 Pod 调度到 Node 上。 Controller:资源控制中心,确保资源处于预期的工作状态。
kubelet:主要工作包括管理容器的生命周期、结合 cAdvisor 进行监控、健康检查以及定期上报节点状态。 kube-proxy: 主要利用 service 提供集群内部的服务发现和负载均衡,同时监听 service/endpoints 变化并刷新负载均衡。
从创建 deployment 开始
首先是 kubectl 发起一个创建 deployment 的请求 apiserver 接收到创建 deployment 请求,将相关资源写入 etcd;之后所有组件与 apiserver/etcd 的交互都是类似的 deployment controller list/watch 资源变化并发起创建 replicaSet 请求 replicaSet controller list/watch 资源变化并发起创建 pod 请求 scheduler 检测到未绑定的 pod 资源,通过一系列匹配以及过滤选择合适的 node 进行绑定 kubelet 发现自己 node 上需创建新 pod,负责 pod 的创建及后续生命周期管理 kube-proxy 负责初始化 service 相关的资源,包括服务发现、负载均衡等网络规则
Pod
容器编排
水平扩缩容
更新/回滚
滚动更新
kubernetes 中的网络
node 到 pod 之间可以通 node 的 pod 之间可以通 不同 node 之间的 pod 可以通
微服务—service
pod 的 ip 不是固定的,利用非固定 ip 进行网络调用不现实 服务调用需要对不同 pod 进行负载均衡
app=xxx
的标签,同时为该微服务创建一个标签选择器为app=xxx
的 service。kubernetes 中的服务发现与网络调用
服务间调用
service-name.namespace-name.svc.cluster.local
,指向 clusterIp 地址。所以一般使用过程中,我们直接调用 service-name 即可。服务外访问
链接:https://fredal.xin/what-is-kubernetes
(版权归原作者所有,侵删)
评论