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

news2024/11/18 11:40:51

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

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

实现服务的可用性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2178583.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL-MySQL访问

文章目录 前言一、使用步骤1.MYSQL *mysql_init(MYSQL *mysql);2.MYSQL *mysql_real_connectint mysql_query(MYSQL *mysql, const char *q);MYSQL_RES *mysql_store_result(MYSQL *mysql);my_ulonglong mysql_num_rows(MYSQL_RES *res);unsigned int mysql_num_fields(MYSQL_R…

秋招内推2025--招联金融

【投递方式】 直接扫下方二维码,或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus,使用内推码 igcefb 投递) 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…

CRC循环校验的功能

CRC (Cyclic Redundancy Check,循环冗余校验) 是一种常用的错误检测码,用于检测数据传输或存储过程中发生的错误。它通过在数据末尾添加一个校验码(CRC码)来实现。接收方通过同样的算法计算接收数据的CRC码,并将结果与…

DC00022基于ssm高校社团管理系统web社团管理系统java web+MySQL项目web程序设计

1、项目功能演示 DC00022基于ssm高校社团管理系统web社团管理系统java web项目MySQL 2、项目功能描述 社团管理系统分为普通用户、管理员 2.1 普通用户功能 01 系统登录、系统注册 02 系统首页、新闻公告、规章制度、社团活动、互动交流 03 修改密码 04 个人信息修改 05 我的…

Tair简介

概述 Tair是淘宝团队开源的高可用分布式KV存储引擎,采用服务端自动负载均衡方式,使客户端逻辑简单。Tair,即TaoBao Pair缩写,Pair表示一对、一双等意思,即Key-Value数据对。 Tair分为持久化和非持久化两种方式。非持…

C++ 发布包问题汇总

C 发布包问题汇总 1、64位系统 拷贝 C:\Windows\SysWOW64 文件夹下面的DLL 2、32位系统 拷贝C:\Windows\System32文件夹下面的DLL 3、 程序所需dll问题 使用vs调试,在调试界面会打印出加载的dll 4、拷贝dll问题 64位拷贝了32位的dll就会出现加载失败的问题&a…

Java语言之数据类型与变量

Java的数据类型主要分为两类 基本数据类型:整形(包括:字节型:byte、1个字节,短整型:short、两个字节,整形:int、4个字节,长整型:long、8个字节),…

swagger v2默认访问地址

SpringBoot项目启动默认访问地址:swagger-ui.html 2024-09-27 08:40:59.744 INFO 248900 --- [ main] o.a.coyote.http11.Http11NioProtocol : Starting ProtocolHandler ["http-nio-9090"] 2024-09-27 08:40:59.756 INFO 248900 --- […

三数之和为0

1. 问题描述 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元…

Vscode超好看的渐变主题插件

样式效果: 插件使用方法: 然后重启,之后会显示vccode损坏,不用理会,因为这个插件是更改了应用内部代码,直接不再显示即可。

GUPAO-AI大模型实战训练营-大模型原理及训练技巧、大模型微调的核心原理

在当今科技日新月异的时代,大模型已经成为人工智能领域的重要支柱。GUPAO-AI大模型实战训练营,正是为了深入解析这些庞然大物背后的原理,以及如何有效利用它们进行实际操作和微调。本文将带你走进大模型的殿堂,揭示其原理&#xf…

【重学 MySQL】四十二、单行子查询

【重学 MySQL】四十二、单行子查询 单行子查询的基本用法示例1:查找薪资高于公司平均水平的员工示例2:查找没有分配项目的员工示例3:使用单行子查询进行等值比较 注意事项 在MySQL中,子查询(Subquery)是一种…

VUE 整合 ECharts

一、vue 引入 ECharts依赖 npm install echarts --save 二、创建盒子 <div ref"chars" style"height: 500px;width:800px;"></div> 解释说明 ref"chars" 是 Vue.js 中一个非常有用的特性&#xff0c;用于给 DOM 元素或组件实例…

CrossOver24支持的游戏有那些

CrossOver刚刚更新了24版本&#xff0c;支持《地平线零之曙光》、《以撒的结合&#xff1a;重生》等游戏。一起来看看它有哪些更新吧&#xff01; 一、功能优化 - 更新 Wine 至最新的稳定版 Wine 9.0&#xff0c;引入了 7000多个更新和针对各种软件游戏的优化。 - 更新 Wine M…

Android平台GB28181实时回传流程和技术实现

规范解读 GB28181 中的 “INVITE” 是会话初始协议&#xff08;SIP&#xff09;中的一种请求方法&#xff0c;主要用于邀请一个或多个参与者加入特定的会话。在 GB28181 标准中&#xff0c;“INVITE” 请求通常用于发起媒体流的传输请求。当一个设备想要接收来自另一个设备的媒…

Linux上安装Jenkins并展示allure报告

1. 确认安装正确的java版本 到官网War Jenkins Packages查看Jenkins版本匹配的java版本&#xff0c;我这里选择安装java11 使用java --version命令是否已安装java版本 java --version 如上图所示&#xff0c;暂未安装java版本&#xff0c;我这里选择安装java11&#xff08;je…

基于SpringBoot+Vue+MySQL的在线酷听音乐系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着互联网技术的飞速发展&#xff0c;网络已成为人们日常生活中不可或缺的一部分。在线音乐服务因其便捷性和丰富性&#xff0c;逐渐成为用户获取音乐内容的主要渠道。然而&#xff0c;传统的音乐播放平台往往存在歌曲资源有限…

进程组、会话、守护进程和线程的概念

1.进程组和会话 1.1 概念和特性 进程组&#xff0c;也称之为作业。BSD于1980年前后向Unix中增加的一个新特性。代表一个或多个进程的集合。每个进程都属于一个进程组。在waitpid函数和kill函数的参数中都曾使用到。操作系统设计的进程组的概念&#xff0c;是为了简化对多个进…

微信小程序-数据模型与动态赋值

首先新建一个小程序项目. 这边有创建基础项目的流程:从0新建一个微信小程序实现一个简单跳转_小白开发小程序源代码-CSDN博客 一共两步: 1.建立页面的 数据模型 和 默认赋值: 默认赋值: 2.接收输入框的新文案,动态替换上面的文案展示 //文件 testUI.js增加方法:onInputChan…

当 ucx --with-cuda 时做了什么

1&#xff0c;找一只活麻雀&#xff0c;下载编译 ucx git clone https://github.com/openucx/ucx.git cd ucx/ git checkout v1.16.0 ./autogen.sh ./autogen.sh mkdir build cd build ../contrib/configure-devel --with-cuda/usr/local/cuda --without-rocm --without-java …