k8s架构,从clusterIP到光电半导体,再从clusterIP到企业管理

clusterIP作为k8s中的服务,

也是其他三个服务的基础

复制代码
~]$ kubectl create service 
clusterip     externalname  loadbalancer  nodeport 

客户端的流量到service

service分发给pod,pod由控制器自动部署,自动维护

那么问题是service的可用性如何保证?

这里以clusterip这个服务举例。

clusterip作为流量的分发者,如果保证自身的高可用?

clusterip是一个虚拟服务

用户访问clusterip的流量

被分配到后端的pod

那么clusterip服务的稳定性如何保证呢?

用kube-proxy保证

kube-proxy调用ipvs内核

实现流量在内核级别的四层负载均衡

clusterip是kube-proxy调用ipvs模块虚拟出来的一个服务器

所以kube-proxy可用性ok

那么clusterip服务的可用性就ok


那么kube-proxy的高可用如何保证呢?

kube-proxy是以pod的形态存在

每个物理节点都有一个kube-proxy的pod

如果某个节点上的kube-proxy休息了

那么控制器就会自动在该节点新建一个kube-proxy的pod


那么在这个新建的过程中,哪怕只有1秒钟

会影响集群的流量分发吗

由于k8s集群的实际负责计算的pod是分布式的在多个节点上的

所以单个节点的kubeproxy的pod掉线

其他节点照常可以负责其他节点的流量分发和计算

不太影响整个集群

但是对于单个节点的流量分发会有少量影响的

但是这个影响对于整体服务来讲

是比较小的。

总之单个节点的kube-proxy的pod掉线小几秒

属于正常波动

而且这种情况发生的概率不大

为什么?

因为kubeproxy的pod不是管理员手工去管理的

kubeproxy的pod,由控制器daemonset来批量部署和维护

当一个节点上的kubeproxy的pod掉线了

daemonset控制器会立马用镜像重建一个新的kubeproxy的pod

仍旧是每个节点上一个kubeproxy的pod

所以,kubeproxy的高可用性由daemonset控制器来保证


那么daemonset控制器的可用性用什么保证呢?

用kube-controller-manager

控制器管理器

控制器管理器会监控着这些控制器

包括daemonset

同时,

prometheus监控着集群的各个组件

包括daemonset控制器

监控界面通过grafana展现

同时prometheus设置alertmanager告警系统

如果集群有组件故障

alertmanager通知管理员

并且可以提前设计预案

alertmanager告警之后

自动执行故障相应系统,以及特定的脚本。


那么prometheus的可用性怎么保证呢?

可以配置冗余

由管理员负责


管理员的管理工作的可用性怎么保证呢?

通过企业对于系统管理的审计

说白了,由部门领导管理


那么部门领导的工作的可用性怎么保证呢?

由公司副总管理


公司副总的工作的可用性怎么保证呢?

由公司老板管理


那么公司老板的监管工作的可用性怎么保证呢?

不用保证。

因为公司技术运营的好,老板多赚

公司技术运营监管的一般,老板少赚点而已

所以

技术到这一层就不用监管了

已经到达权益的主要所有者了

少赚还是多赚,老板自己看着办就行了。


clusterip到光、电、半导体的链路是怎样的?

clusterip把流量分发给pod

pod把任务交给容器

容器里面的进程找操作系统

说,帮我弄个这,帮我干个那

去找cpu干活

cpu拿到各种0和1

一顿操作

通过操作系统和主板上的半导体材料

和本机的各个硬件交互

通过网络和本机之外的资源交互

cpu说,跟硬件打交道的活

就交给cpu吧

应用层等消息就行。

这就实现了从clusterip到光通信、电路板、半导体材料的链路

然后再从物理层响应至应用层

实现服务的可用性。

相关推荐
冬奇Lab9 小时前
一天一个开源项目(第41篇):Workout.cool - 现代化开源健身教练平台,训练计划与进度追踪
docker·开源·资讯
天朝八阿哥15 小时前
使用Docker+vscode搭建离线的go开发调试环境
后端·docker·visual studio code
可观测性用观测云1 天前
云原生网关 Ingress-Nginx 链路追踪实战:OpenTelemetry 采集与观测云集成方案
nginx·kubernetes
阿虎儿2 天前
Docker安装(非sudo用户可用)
docker
fetasty3 天前
rustfs加picgo图床搭建
docker
蝎子莱莱爱打怪3 天前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
小p5 天前
docker学习7:docker 容器的通信方式
docker
小p5 天前
docker学习5:提升Dockerfile水平的5个技巧
docker
小p5 天前
docker学习3:docker是怎么实现的?
docker
小p6 天前
docker学习: 2. 构建镜像Dockerfile
docker