kubernetes架构

  1. kubernetes cluster由master和node组成,节点上运行着若干kubernetes服务
  2. Master节点:
    1. master是kubernetes cluster的大脑,运行着的Daemon服务包括kube-apiserver,kube-scheduler,kube-controller-manager,etcd和Pod网络(如flannel)
    2. API Service(kube-apiserver):api server提供了HTTP/HTTPS RESTful API。即kubernetes API。API Server是kubernetes cluster的前端接口,各种客户端工具(cli或者ui)以及kubernetes其他组件可以通过他管理cluster的各种资源
    3. Scheduler(kube-scheduler):scheduler负责决定将pod放在哪个Node上运行,scheduler在调度时会充分考虑cluster的拓扑结构,当前各个节点的负载,以及应用对高可用,性能,数据亲和性的需求
    4. Controller Manager(kube-controller-manager):controller manager负责管理cluster各种资源,保证资源处于预期的状态,controller manager由多种controller组成,包括replication controller,endpoints controller,namespce controller,serviceaccounts controller等,不同的controller管理不同的资源,比如:replication controller管理Deployment,StatefulSet,DaemonSet的生命周期。namespace controller管理Namespace资源。
    5. etcd:etcd负责保存kubernetes cluster的配置信息和各种资源的状态信息,当数据发生变化时,etcd会快速地通知kubernetes相关组件
    6. Pod网络:Pod要能够相互通信,kubernetes cluster必须部署Pod网络,flannel是其中一个可选方案
  3. Node节点:
    1. Node是pod运行的地方,kubernetes支持Docker,rkt(Rocket)等容器运行时工具,Node上运行的kubernetes组件有kubelet,kube-poxy和pod网络(如:flannel)

    2. kubelet:kubelet是Node的agent,当Scheduler确定在某个Node上运行Pod后,会将Pod的具体的配置信息(image,volume等)发送给该节点的kubelet,kubelet根据这些信息创建和运行容器,并向Master报告运行状态

    3. kube-proxy:service在逻辑上代表了后端的多个pod,外界通过service访问pod,kube-proxy把service接收到的请求转发到Pod上。每个Node都会运行kube-proxy服务,他负责将访问service的TCP/UDP数据流转发到后端的容器,如果有多个副本,kube-proxy会实现负载均衡

    4. Pod网络:Pod要能够相互通信,kubernetes cluster必须部署Pod网络,如:flannel,Calico在这里插入图片描述

    5. master上的kubelet和kube-proxy是因为:master上也可以运行应用,即master同时也是一个Node,几乎所有的kubernetes组件本身也运行在pod中,

    6. kubernetes的系统组件都被放到kube-system namespace中,kubelet是唯一没有以容器形式运行的kubernetes组件,他通过systemd服务运行,可以通过sudo systemctl status kubelet.service查看kubelet的状态

  4. 举例:
    1. 执行命令部署应用:kubectl run httpd-app --image=httpd --replicas=2:会看到deployment “httpd-app” created

    2. kubernetes部署了deployment httpd-app,有两个副本pod,分别运行在k8s-node1和k8s-node2

    3. 通过命令kubectl get deployment查看部署的应用,通过kubectl get pod -o wide查看具体的pod信息在这里插入图片描述

    4. 部署流程:

      1. kubectl发送部署请求到API Server
      2. API Server通知controller manager创建一个deployment资源
      3. Scheduler执行调度任务,将两个副本Pod分发到k8s-node1和k8s-node2
      4. k8s-node1和k8s-node2上的kubectl在各自的节点上创建并运行pod
      5. 补充:1:应用的配置和当前状态信息保存在etcd中,执行kubectl get pod时API Server会从etcd中读取这些资源,2:flannel会为每个pod都分配IP,因为没有创建service,所以目前流程kube-proxy没有参与

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

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

相关文章

VBS学习1 - 语法、内置函数、内置对象

文章目录 概述执行脚本语法转义字符文本弹框msgbx定义变量dim(普通类型)定义接收对象set字符拼接&用户自定义输入框inputbox以及输入判断ifelse数组(参数表最大索引,非数组容量)有容量无元素基于元素确定容量 循环…

tidb 集群搭建

官网的搭建文档:使用 TiUP 部署 TiDB 集群 | TiDB 文档中心 我本地使用三台 centos7.9 服务器搭建,要保证三台服务器之间是可以互相通信的; 搭建集群的命令在其中一台服务器上执行即可; 1、安装tiup: curl --proto …

【接口测试】Postman--变量与集合

一、变量 ​ 变量这个概念相信大家都不陌生,因此在这里我们不介绍了。主要说一下在Postman中有哪几类变量,主要包括以下四类: Global(全局) Environment(环境) Local(本地&#xf…

[深度学习]Pytorch框架

1 深度学习简介 应用领域:语音交互、文本处理、计算机视觉、深度学习、人机交互、知识图谱、分析处理、问题求解 2 发展历史 1956年人工智能元年2016年国内开始关注深度学习2017年出现Transformer框架2018年Bert和GPT出现2022年,chatGPT出现&#xff0…

SHL笔试测评系统题库考什么?如何通过综合测评|附性格测试104道

嘿,各位求职小伙伴们!我是职小豚,今天就来带大家深入了解神秘又充满挑战的 SHL 笔试测评系统。 一、SHL 人才测评系统介绍 SHL 呀,那可是人才测评领域的超级大明星!就像一个智慧的魔法师,用各种神奇的题目…

ICP算法介绍,机器人姿态估计,三维点云配准

介绍 ICP算法,即Iterative Closest Point(迭代最近点)算法,是一种广泛应用于计算机视觉和图像处理领域的几何配准算法。它的主要目的是通过最小化两组点集之间的距离来找出一组变换,使得两组点集尽可能地对齐。ICP算法…

CDN方式的vant组件不能用,是因为标签要补成双标签

cdn方式的标签需要时双标签&#xff0c;单标签不能用 <van-fieldreadonlyclickable:value"formdata.yuyue_changguan"label"预约场馆"placeholder"点击选择预约场馆"click"showPicker true"></van-field><van-popup v…

spring springboot 日志框架

一、常见的日志框架 JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j.... 注意&#xff1a;SLF4j 类似于接口 Log4j &#xff0c;Logback 都是出自同一作者之手 JUL 为apache 公司产品 Spring&#xff08;commons-logging&#xff09;、Hibernate&#xff08;jboss…

配置环境-keil

配置keil -- 先将keil安装配置好&#xff0c;包括库 一、STM32 -- STM32是意法半导体&#xff08;意大利&#xff09;采用ARM公司设计的内核&#xff0c;设计一系列32位单片机芯片。 1、STM32开发的几种方式 2、STM32寄存器和库函数版本的工程创建 新建文件夹 复制相关文件…

Vmware虚拟机无法打开内核设备“\\.\Global\vmx86“的解决方法

我的问题是在一次系统更新后&#xff0c;导致虚拟机无法使用的。我的虚拟机只有方法三解决了问题。 一、方法一 以管理员身份打开cmd&#xff0c;依次执行以下命令&#xff1a; net start vmci net start vmx86 net start VMnetuserif二、方法二 按 WinR 键&#xff0c;运行…

文件上传-php

查找方式 ***(1) 黑盒 查找(upload) 扫描 (2) 应用型 窗口 上传中心或者后台中心 上传 Ps:后台是后台 权限是权限 (3) 会员中心 (4) 白盒 基本函数定义 写前端的 Enctype 上传类型Method 提交方式Onsubmit 鼠标的时间Action"放在指定文件"Php 接受表单数据 isset(…

macOS平台TensorFlow环境安装

1.安装xtarfile pip3 install xtarfile 2.安装 pip3 install matplotlib 3.安装jieba pip3 install jieba 4.安装 pip3 install tensorflow tensorflow安装成功

多目标优化算法(Multi-Objective Optimization Algorithms, MOOA)介绍

在现实世界中&#xff0c;许多问题都涉及到多个目标的权衡和优化。例如&#xff0c;在工程设计中&#xff0c;可能需要同时考虑成本、效率和可靠性&#xff1b;在资源管理中&#xff0c;可能需要平衡环境保护和经济效益。多目标优化算法&#xff08;Multi-Objective Optimizati…

JavaEE:网络编程(套接字)

文章目录 Socket套接字TCP和UDP的区别有连接/无连接可靠传输/不可靠传输面向字节流/面向数据报全双工/半双工 UDP/TCP api的使用UDPDatagramSocketDatagramPacketInetSocketAddress练习 TCPServerSocketSocket练习 Socket套接字 Socket是计算机网络中的一种通信机制&#xff0…

内卷、同质化严重,储能的创新在哪里?一文盘点行业最新技术方向。

一、市场现状介绍 1、储能企业的三大挑战 价格战愈演愈烈&#xff1a;今年以来&#xff0c;储能系统价格一路走低&#xff0c;从年初的0.8元/Wh降至如今的0.5元/Wh&#xff0c;降幅超过30%。这样的价格战让不少企业倍感压力。 产品同质化严重&#xff1a;纵观2024年上半年的…

C#学习(四)C#连接Mysql实现增删改查

博主刚开始接触C#&#xff0c;本系列为学习记录&#xff0c;如有错误欢迎各位大佬指正&#xff01;期待互相交流&#xff01; 文章目录 一、安装Mysql1.1 启用Mysql1.2 登录Mysql 二、安装Navicat2.1 建立连接2.2 新建数据库2.3 新建表 三、创建Winform实现增、删、改、查3.1 下…

QT<24> Qt和windows中获取CPU序列号号以及主板序列号

前言&#xff1a;在qt中获取CPU和主板唯一序列号&#xff0c;可以在程序构造函数中判断是否与windows中一致&#xff0c;不一致可以直接退出程序&#xff0c;防止程序daoyong。 一、获取电脑CPU唯一序列号 QString MainPage::get_cpu() {QString cmd"wmic cpu get proc…

VulhubDC-4靶机详解

项目地址 https://download.vulnhub.com/dc/DC-4.zip实验过程 将下载好的靶机导入到VMware中&#xff0c;设置网络模式为NAT模式&#xff0c;然后开启靶机虚拟机 使用nmap进行主机发现&#xff0c;获取靶机IP地址 nmap 192.168.47.1-254根据对比可知DC-4的一个ip地址为192.1…

C++【基础语法(part 3)】

前言 在前文我们讲解了C的诞生与历史&#xff0c;顺便讲解一些C的小语法&#xff0c;本文会继续讲解C的基础语法知识。 1.inline(内联函数) inline是C新加入的关键字,用inline修饰的函数叫做内联函数&#xff0c;编译时C编译器会在调用的地方将函数展开&#xff0c;这样每次…

即插即用 | YOLOv8热力图可视化方法详解

高级数据可视化&#xff1a;使用Ultralytics YOLOv8 绘制热图 &#x1f680; 热图简介 生成的热图通过Ultralytics YOLOv8将复杂的数据转换成生动的彩色编码矩阵。这种可视化工具采用色谱来表示不同的数据值&#xff0c;暖色调表示较高的强度&#xff0c;冷色调表示较低的值。…