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到光通信、电路板、半导体材料的链路

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

实现服务的可用性。

相关推荐
小小洋洋3 小时前
记录一次docker报错无法访问文件夹,权限错误问题
运维·docker·容器
一只脑洞君4 小时前
Kubernetes(K8s)的简介
java·容器·kubernetes
妍妍的宝贝4 小时前
k8s 中存储之 PV 持久卷 与 PVC 持久卷申请
云原生·容器·kubernetes
程序那点事儿4 小时前
k8s 之安装metrics-server
云原生·容器·kubernetes
qq_427506084 小时前
linux和windows系统使用k8s控制节点的kubernetes资源
linux·运维·kubernetes
Zl1597531597534 小时前
k8s-pod的管理及优化设置
云原生·容器·kubernetes
敲代码不忘补水5 小时前
Docker 启动 Neo4j:详细配置指南和浏览器访问
docker·容器·neo4j·docker compose
微刻时光6 小时前
Docker基本操作命令
linux·运维·笔记·docker·容器
小旺不正经6 小时前
docker快速上手
运维·docker·容器
多多*6 小时前
OJ在线评测系统 微服务高级 Gateway网关接口路由和聚合文档 引入knife4j库集中查看管理并且调试网关项目
java·运维·微服务·云原生·容器·架构·gateway