云原生(第一篇)k8s-组件说明

news2024/9/25 9:37:09

k8s是什么?

go语言开发的开源的跨主机的容器编排工具;全称是kubernetes;

k8s的组件:

master:

①kube-apiserver 所有服务统一的访问入口,无论对内还是对外;

②kube-controller-manager 资源控制中心,负责管理pod的资源对象和部署的控制器,确保资源在预期值;

③kube-scheduler 管理pod的资源调度,根据调度算法给pod放入合适的node中;

etcd:kubernetes的数据库,以键值对的形式将数据储存在分布式数据库中,只有apiserver有读写权限;

worker node:

④kubelet 管理和创建pod中的容器,和容器引擎交互,管理容器的生命周期。检测node的资源信息和pod的运行状态,发送给master的apiserver
 

⑤kube-proxy 是service的载体,是pod的网络代理,实现负载均衡和服务发现,同时监听service/endpoints的变化刷新负载均衡的策略

⑥容器引擎,运行容器的

控制器:

1、node controller 节点控制器,在节点发生故障时及时发现和响应;
2、replication controller 副本控制器,控制副本数达到客户的期望值;
3、endpoints controller 端点控制器,负载均衡和服务发现使用
4、service account & token controller 账户和令牌控制器,在创建命名空间时添加默认账户和api访问令牌
5、resourcequota controller 资源限制控制器
6、namespace controller 命名空间控制器,管理namespace的生命周期

K8S创建Pod的工作流程?

1、用户通过客户端发送创建pod的请求到master节点上的apiserver
2、apiserver会先把相关的请求信息写入到etcd中,再找controller-manager根据预设的资源模板创建pod清单
3、然后controller-manager会通过apiserver去找scheduler为新创建的pod选择最适合的Node节点
4、scheduler会通过调度算法的预选策略和优选策略筛选出最适合的Node节点
5、然后再通过apiserver找到对应的Node节点上的kubelet去创建和管理pod
6、kubelet会直接跟容器引擎交互来管理容器的生命周期
7、用户通过创建承载在kube-proxy上的service资源,写入相关的网络规则,实现对pod的服务发现和负载均衡

kubernetes的资源对象:

k8s可以进行增删改查的操作并持久化存储在etcd中,k8s可以根据etcd的预期值和现实中的资源情况进行自动控制和自动纠错;

①pod,是k8s最小/最简单的基本单位。
一个pod是一个集群中正在运行的进程。
pod中的容器(一个或多个)共享命名空间。
pod中的容器可以通过localhost互相访问,也可以进行挂载数据卷,不同的pod不可以。

②pod控制器,是pod启动的一种模板,保证pod按照客户的资源预期值启动。

③label标签 自带也可手动设置标签,便于分类管理资源。
键值对的方式,一个资源对象可以有多个label,一个label也可以给多个资源对象使用。可以被删除和添加

④label selector 标签选择器,根据标签筛选资源对象。

⑤service,每个pod会有一个单独的ip和端口,但是pod有生命周期,ip和端口会变化。
根据标签选择器去选择标签,就可以获取到变化的endpoints,刷新负载均衡了

⑥ingress,七层代理,service只可以四层,对外访问时使用,负责集群内外通讯。

控制器:

1、deployment 无状态应用部署,管理和控制pod和replicaset,管理他们的预期值不变。
相当于deployment是总包,replicaset是小包,干活的是pod,replicaset控制pod的数量,达到用户的预期值。
2、daemonset,保证每个节点都有一个pod运行,可以根据节点的状态添加或删除pod
3、statefulset ,部署有状态应用
4、job:部署一次性任务的pod,pod执行完任务就会自动退出,只部署一次
5、cronjob:周期性的部署一次性任务的pod

资源配置信息:
Apiversion  每种资源对象在K8S中所使用的 api 接口版本 
Kind        资源对象的类型
Matedate    资源对象的元数据,比如 资源名称name    命名空间namespace   标签label   
Spec        资源对象的资源配置清单,比如 副本数  镜像名  数据卷  资源限制   标签选择器label selector
Status      资源对象当前的运行状态信息

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

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

相关文章

java8新特性---lambda表达式

1、 Lambda是什么? Lambda 是一个匿名函数,我们可以把 Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提…

linux配置git账号密码

HTTP/HTTPS Linux 在Linux环境下使用http/https协议clone/pull GitLab仓库的代码遇到这个问题。以下解决方案也适合GitHub或其他仓库如码云,coding。 解决方案: 在home目录下创建.git-credentials文件vim .git-credentials,输入形如https:…

重装pycharm后一直在Updating indexes

今天卸载pycharm社区版,安装好pycharm专业版之后,右下角一直显示Updating indexes 解决步骤: 先卸载pycharm;打开cmd,键入regedit,打开“注册表编辑器”;在“注册表编辑器”中按ctrlF&#xff…

spring是如何解析@Transactional属性的

1、查看value调用 发现并无地方调用 2、查看 transactionManager调用 发现并无地方调用 3、直接查看transaction被解析方法 SpringTransactionAnnotationParser#parseTransactionAnnotation(java.lang.reflect.AnnotatedElement) 4、查看返回的解析类 Tra…

C++——二分法求多项式曲线区间极值

二分法求多项式曲线区间极值 二分法求解,设置left为左边界,right为右边界,则解一定位于left和right之间,当左右边界之间的差值小于某一精确度时,就认为找到了解。具体操作如下,若是先减后增,首先…

Unity UGUI 实现一个拖拽一个物体到另一个物体上 并返回两个物体是否相交或者是否在对方物体的中心点

Unity版本 2021.3.25f1c1 首先创建一个碰撞管理器 ColliderNodeManager.cs 具体代码实现如下 using System; using UnityEngine;/// <summary> /// 碰撞检测管理器 /// </summary> public class ColliderNodeManager : MonoBehaviour {public static ColliderN…

Qt错误: warning: ignoring old recipe for target ‘childwnd.o‘.

Qt中这样的错误 &#xff1a; 错误原因 &#xff1a; 工程文件, 也就是 *.pro文件, 其中的源文件*.cpp, 头文件*.h, ui文件*.ui以及资源文件*.qrc 重复了, 删掉就好. *.pro文件就是这玩意 &#xff1a; *.pro文件中的文件重复&#xff1a; 如果还是出现这样的错误警告&#…

Flutter中的Alignment是怎么回事?

我们知道Flutter中的Container有个alignment的属性&#xff0c;我们可以设置一些topLeft,center之类的位置名字的值&#xff0c;也可以设置Alignment(x,y)这种具体数值的值。那么Align子widget的位置跟x、y是什么关系呢&#xff1f;以水平方向为例&#xff0c;我们知道x-1表示子…

vs+qt 给打包程序添加图标

1、在创建的qt工程文件中添加如下代码&#xff1a; this->setWindowIcon(QIcon(":/new/prefix1/ico"));//设置软件图标 this->setWindowTitle("XXX软件名 ");//设置软件标题 运行后软件的左上角会有图标 2、让编译成的exe带图标 生成…

dup、dup2、F_DUPFD、dup3、F_DUPFD_CLOEXEC:实例

本实例将输出和错误输出&#xff0c;重定向到文件outlog.txt文件。 dup实现 测试代码&#xff1a; #include <sys/types.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h>…

基于win10环境搭建图片服务器的两种方式

简述 这几天接到一种需求&#xff0c;需要在window环境搭建图片服务&#xff0c;去网上搜一下&#xff0c;最终想出两种方式一种是Nginx方式 &#xff0c;一种是公司常用的iis服务方式&#xff0c;最终使用iis方式&#xff0c;这里简单记录一下。 Nginx nginx方式很简单&#…

机器学习模型优化器Adam报错:ValueError: decay is deprecated in the new Keras optimizer

文章目录 深度学习模型优化器报错&#xff1a;报错原因&#xff1a; 解决方案&#xff1a; 深度学习模型优化器报错&#xff1a; ValueError: decay is deprecated in the new Keras optimizer, pleasecheck the docstring for valid arguments, or use the legacy optimizer,…

5G已难拉动收入增长,运营商对于高投入的5G左右为难

随着三大运营商的5G用户数突破10亿&#xff0c;5G已很难拉动ARPU的增长了&#xff0c;表现出来的业绩就是增长快速放缓&#xff0c;工信部披露的数据显示移动数据业务收入增长已接近于零。 工信部发布了“2023年1&#xff0d;5月份通信业经济运行情况”显示三大运营商的移动数据…

Java(六):Eureka项目搭建、数据请求

Eureka项目搭建、数据请求 Eureka简介Eureka项目创建1、新建Maven项目2、只保留Maven项目的依赖文件3、创建子模块&#xff08;Eureka服务模块&#xff09;4、修改pom.xml5、创建并修改配置文件6、添加Eureka注解7、运行8、创建其他服务9、修改pom.xml10、创建并修改配置文件11…

Mac网络扫描工具iNet Network Scanner

iNet Network Scanner是一款适用于 macOS 系统的网络扫描工具&#xff0c;可以帮助用户快速识别和监控局域网中连接的设备和服务。该软件提供了直观的界面和丰富的功能&#xff0c;支持多种网络协议和扫描选项&#xff0c;并具有高度的可定制性和灵活性。 iNet Network Scanner…

javaee 任务调度 定时任务 schedule

任务调度可以实现指定的时间执行某个任务&#xff0c;比如每一分钟执行一次&#xff0c;指定时间执行一次。 MyTimeTask package com.yyy.schedule;import java.text.SimpleDateFormat; import java.util.TimerTask;public class MyTimeTask extends TimerTask {//重写run方法…

Springboot上传图片和回显示图片

本次演示的是直接使用Springboot上传到服务器而不是七牛云等oss,springboot对于前端传输的文件数据类型格式的封装为MultipartFile,前端上传的图片是被存在服务端的缓存区的,当controller处理的时候,缓存区就被清空,所以需要转存,使用transferTo Api 前端采用elementui 直接上传…

开源之夏2023中选结果公示,504名高校生将投入开源项目贡献

中国科学院软件研究所与openEuler社区联合主办的开源之夏活动项目申请阶段告一段落&#xff0c;中选学生名单已公布。前往官网项目列表即可查看项目中选情况https://summer-ospp.ac.cn/org/projectlist开源之夏今年已进行至第四届&#xff0c;成为每年暑期前最受高校开发者关注…

SAP从入门到放弃系列之订单创建-概念-Part1

目录导航 概述订单创建一、通过计划订单创建生产订单1.1、计划订单转为生产订单-part11.2、计划订单转为生产订单-part2操作方式&#xff1a; 二、通过物料或者复制方式创建三、创建无物料的订单四、通过销售订单创建生产订单五、通过项目创建销售订单 概述 根据不同的需求&am…

【深度学习】深入理解Batch Normalization批标准化

机器学习领域有个很重要的假设&#xff1a;独立同分布假设&#xff08;IID&#xff09;&#xff0c;就是假设训练数据和测试数据是满足相同分布的&#xff0c;这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。那BatchNorm的作用是什么呢&#xff1f;BatchN…