1.kubernetes作用及组件

容器管理集群名称叫做k8s

容器的编排工具:swarm,kubesphere,open shift,kubernetes【市场占比大】

一.kubernetes介绍

1.kubernetes是什么?

由谷歌公司开源的应用,基于go语言编写

简称k8s

2.kubernetes作用

服务发现和负载均衡

这个服务发现就是整个k8s集群,中有web服务,缓存服务,MySQL服务,如何让这三个服务之间相互通信呢?

就是使用k8s的coreDNS插件,把服务的IP和服务的名称,记录在coreDNS中。

如果这个服务的IP地址发生了变化,对应在coreDNS中这个服务对应的IP地址也会发生变化,此时不同服务之间互相通信就是直接跟服务名通信就可以。也就是说在整个k8s集群中我不需要知道这个服务的IP地址是什么,知道这个服务的名称就可以直接进行通信。

存储编排

存储编排就是数据的持久化,在k8s集群中做容器数据的持久化的时候,不仅支持使用本地目录进行持久化操作,还支持使用外部的NFS等这样的增设文件系统,来为集群中的容器做数据的持久化。不用担心这个集群怎么连接存储,所有的一切都由后台连接完成。

动部署和回滚

自动部署的意思是只需要创建一个容器,然后指定一下初始化副本就能一下创建出多个所需要的容器,回滚的意思就是指升级的时候,如果升级失败,集群就会自动回滚到升级之前的状态。

资源调度分配

 也就是说的CPU,内存等资源的分配。

自我修复

创建容器的时候,必须要事先说明好,我这个容器在我集群中的固定个数,比如说总共有三个容器,当一个容器挂了,就会新创建一个容器,当两个容器挂了,就会新创建两个容器,总是保持这个容器在我集群中的总个数。

总而言之,kubernetes的目的就是让容器部署应用变得更简单,高效。

二.kubernetes架构

如上图所示,一个k8s集群从最粗略的角度来说,应该有master节点,node节点,ETCD数据库。

而关于集群节点,本身的管理操作都是由master的节点来完成的。

包括这个集群要去连接ETCD数据库,要去保存这个集群中的相关信息。比如这个node节点的IP地址是什么,这个容器的IP是什么,这个node节点的名称是什么,所有的信息都要存到这个ETCD数据库,而这些信息由谁负责向ETCD数据库中传输,这些工作都是master节点的工作。

所以说master的作用就是整个集群的管理工作。

而node节点,就是容器的工作地点,

而ETCD数据库就是用来记录这个集群中的工作信息的。

如果这个ETCD数据库挂了整个集群就垮了,所以在整个k8s集群中最重要的就是ETCD数据库。

如上图所示,对集群做任何管理的时候都使用这个kubectl命令来实现。

当主节点master节点搭建好之后,这个master节点上应该最少有三个组件,

首先的kube-apiserver的作用:主要做三件事。第一件事就是通过kubectl工具向kube-apiserver发送请求说,要创建容器,这个请求就是由kube-apiserver来接收。kube-apiserver还具有验证用户是否是合法用户的功能,如果这个用户是合法用户才会执行之后的请求。【接收客户端请求,并且验证客户端身份】第二件事就是kube-apiserver作用还包括向ETCD数据库获取集群的状态信息,向ETCD数据库记录集群的状态信息。【与etcd数据库进行交互,读写集群状态信息】第三件事就是kube-apiserver还要负责接收所有node节点的注册请求。【接收node节点上的kubelet发送过来的注册请求。】

k8s身份验证:

1.基于token(令牌)

2.基于证书的方式

3.基于http basic的方式

kubernetes dashboard 组件提供的web页面

kube-scheduler组件的作用:调度客户端操作请求,选择合适的node节点运行资源

kube-controller-manager控制器的管理器【管理集群控制器】,的作用:是用来管理控制器的,一个集群创建好,之后所有的功能的实现都是通过某几个控制器来实现的。

最牛逼的控制器就是RS replication  set【副本控制器】【副本控制集群】【控制容器的副本】

如果RS检测到一个容器挂了,就会重新创建新的容器,

例如replication controller负责维护容器的副本数量。

node节点:节点中的docker engine这个是容器的管理工具——docker服务。

k8s一共支持两种容器管理工具即docker和rks。

在node节点上的kubelet组件就是用来调用我node节点上的容器引擎来创建容器的,

在k8s集群中创建容器的操作是由kubectl将请求发送给kube-apiserver,然后这个apiserver将请求

发送给kube-scheduler,然后这个kube-scheduler选择一个节点,将这个创建容器的请求发送给node上的kubelet组件,然后这个组件将创建容器的请求发送给node节点上的docker engine,最后node节点上的kubelet组件将创建容器成功或者是创建容器失败的信息发送给apiserver

前面我们提到node节点的注册请求是由主节点上的apiserver组件来接收,但是这个请求是由node节点上的kubelet组件发送出来的。

在node节点上的kube-proxy组件的作用是在多个容器之间实现负载均衡的,

比如说创建了4个容器,我想要使用这4个容器来帮我提供数据库服务的负载均衡,那么是谁在这4个容器之间帮我们来转发请求呢?是node节点上的kube-proxy组件

构建k8s集群的时候,建议最少创建3个node节点。

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

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

相关文章

【AcWing】算法基础课-动态规划

目录 1、闫式DP分析法 2、背包问题 2.1 01背包问题 朴素版本 优化版本 2.2 完全背包问题 朴素版本 优化版本 2.3 多重背包问题 朴素版本 二进制优化 2.4 分组背包问题 3、线性DP 3.1 数字三角形 3.2 最长上升子序列 3.3 最长公共子序列 4、区间DP 5、数位统计…

白天用的投影仪哪款好?掌握这个亮度参数谁敢忽悠你

人们追求松弛人生的同时,也着眼于高品质的家庭娱乐体验,高端家用投影仪以其大屏幕的视觉冲击力和便捷的移动性,应运成为众多家庭客厅、卧室的新宠。而在挑选家用投影仪时,亮度作为衡量其性能的重要指标之一,直接影响着…

七牛云OSS的使用

图片上传 一、七牛云oss介绍 1.1 图片存储介绍 在实际开发中,我们会有很多处理不同功能的服务器。例如: 应用服务器:负责部署我们的应用 数据库服务器:运行我们的数据库 文件服务器:负责存储用户上传文件的服务器…

重新构想定性数据分析:使用 NVivo 15 实现 AI、反思和备忘录

NVivo 是研究出版物中引用最多的定性数据分析软件 (QDA 软件),使用 NVivo v15 最新主要版本从定性和混合方法数据中发现更多信息,融合 Lumivero AI Assistant 更快地识别主题、运行高级查询和发现基于证据的见解,让您在更短的时间内获得严谨的研究结果。…

C++【string的模拟实现】

在前文我们讲解了string类接口使用(C【string类的使用】(上),C【string类的使用】(下)),本片文章就来模拟实现string类。 注:本文实现的是string的部分重点内容,目的是为了更好的了解string&…

zabbix安装配置与使用

zabbix Zabbix的工作原理如下: 监控部分: Zabbix Agent安装在各个需要监控的主机上,它以主配置的时间间隔(默认60s)收集主机各项指标数据,如CPU占用率、内存使用情况等。 通讯部分: Agent会把收集的数据通过安全通道(默认10051端口)发送到Zabbix Server。Server会存储这些数…

7.3、实验三:RIPv2的基本配置

源文件: 7.3、实验三:RIPv2的基本配置: https://url02.ctfile.com/d/61945102-63684790-45f44b?p2707 (访问密码: 2707) 一、目的 能够使用RIPv2路由协议 二、实验要求 1.要求 使用RIPv2协议,使得PC0 和 Service0能够通信,…

石岩田心村的地面停车点(月卡350)

​我之前一直以为城中村里的地面停车场会比上屋地铁口的联天停车场便宜一些。没想到这个田心村月卡也是350元哈。比对面的园岭村还贵,元岭村月卡我记得才260元。 田心村停车场标识牌 序号 收费项目 收费标准 1 小车临时停放 10元/小时,超过1小时加收…

大模型学习笔记------CLIP模型的再思考

大模型学习笔记------CLIP模型的再思考 1、CLIP模型与Prompt(提示)的思考2、CLIP模型与ResNet等分类模型的根本区别3、结束语 上文已经讲 CLIP(Contrastive Language-Image Pretraining)这个模型,也讲了我的一些思考。但是,随着深…

Spring之依赖注入(DI)和控制反转(IoC)——配置文件、纯注解

依赖注入 依赖注入(Dependency Injection,简称 DI)与控制反转(loC)的含义相同,只不过这两 个称呼是从两个角度描述的同一个概念。对于一个 Spring 初学者来说,这两种称呼很难理解, 下面我们将通过简单的语言来描述这两个概念。 当Java对象&…

外网访问 Immich 照片管理软件

Immich 是一个自托管的照片和视频备份的平台,它允许用户在私有服务器上存储、管理和分享他们的照片,视频等媒体文件。 第一步,本地部署安装 Immich 1,检查 Docker 服务状态,确保 Docker 正常运行。 systemctl statu…

Linux网络命令:它用于实时监控网络接口的状态变化的命令 ip monitor详解

目录 一、概述 二、使用 1、语法 2、对象类型 3、常用选项 4、获取帮助 三、 示例 1. 监视链路层变化 2. 监视所有的网络变化 3. 仅监视路由表的变化 4. 监视特定网络接口的状态变化: 5. 监视网络接口地址的变化 四、实际应用 五、其他事项 一、概述 …

QT仿QQ聊天项目,第三节,实现主界面(好友列表)

目录 一,主界面示例 二,主界面控件组成 三,好友列表实现 1,好友列表的实现原理 2,实现示例代码 一,主界面示例 二,主界面控件组成 三,好友列表实现 1,好友列表的实现…

查找连表的倒数第k个节点

居安思危 何解? 1、假如有1、2、3三个节点,找倒数第二个,实际是整数第几个? 3-21 2 : 及 length - k 1 ,所以先遍历找节点长度,在遍历找所需节点 // 今天这不是力扣的var findNode function(head , k){…

练习LabVIEW第三十九题

学习目标: 刚学了LabVIEW,在网上找了些题,练习一下LabVIEW,有不对不好不足的地方欢迎指正! 第三十九题: 程序开始运行后要求用户输入密码,密码正确时字符串显示控件显示 “欢迎进入”&#x…

AI浪潮将席卷一切:本·霍洛维茨的AI战略与发展观点

近年来,人工智能(AI)的快速发展已经成为全球科技与经济变革的核心驱动力。从自驾汽车到生成式对话系统,AI正以前所未有的速度改变我们的生活、工作方式以及社会结构。然而,作为硅谷著名风险投资公司a16z的联合创始人&a…

windows下位机远程调试

一、前言 发布到下位机的程序在某种操作下出现异常,一种有效的远程调试手段能更快的帮助我们定位问题和解决问题。 VS结合Remote Debugger可以让下位机程序像运行在上位机上一样打断点调试,非常方便。 二、调试环境部署 1、设置下位机程序运行所在目录共…

C++ 多态原理

用一个题目引入&#xff1a; 现有代码&#xff1a; class Base { public:virtual void func(){cout << "Base:func()" << endl;} protected:int _a1;char _bx; }; void test1() {Base obj;cout << sizeof(obj) << endl; } 32位平台上输出的…

Javaweb梳理8——数据库设计

Javaweb梳理8——数据库设计 8 数据库设计8.1 数据库设计简介8.2 表关系(一对多)8.3 表关系&#xff08;多对多&#xff09;8.4 表关系&#xff08;一对一&#xff09; 8 数据库设计 8.1 数据库设计简介 软件的研发步骤 数据库设计概念 数据库设计就是根据业务系统的具体需…

TypeError: Cannot read properties of undefined (reading ‘__asyncLoader‘)

项目场景&#xff1a; vue3element-plus 项目场景&#xff1a;vue3element-plustsvite的技术栈开发的后台&#xff0c;一个后台列表页面&#xff0c;使用了ElTable组件 问题描述 页面提示报一个好像是异步的问题 runtime-core.esm-bundler.js:2261 Uncaught (in promise) Ty…