Kubernetes系列(二)架构及特性

2023-10-31

        在了解了k8s的发展历程之后,正式进入到学习k8s的阶段,本文主要内容是K8S的整体架构的说明和K8S一些特性的概括。

架构

        如下图是K8S的整体架构图,Kubernetes属于主从分布式架构,主要由Master Node和Worker Node组成,还包括客户端命令行工具kubectl和其它组件。
k8s整体架构.png

组件

        如上图所示是k8s的架构图,Master和Work节点的组成部分如下:

  • Master节点 作为控制节点,对集群进行调度管理,不存储容器,包括:
  1. Kubectl:通过命令行与API Server进行交互,对集群中的各种资源进行增删改查等操作。
  2. APIServer :K8S的网关,所有访问的统一入口。所有组件都会与他交互,会造成很大压力,所以各个组件都会设置自己的缓存。
  3. Scheduler:负责分配任务,选择符合的node节点分配任务。
  4. Relplication Crontroller:根据用户的期望数维护pod的副本数,不多也不会少。
  5. ETCD:键值对数据库,存储集群需要持久化的配置信息,并且天生支持集群化,可借助ETCD恢复K8S集群,ETCD坏掉会导致K8S集群瘫痪。
  • Node节点作为工作节点,运行业务应用容器的,不仅仅只有容器,还包括:
  1. kubelet:与容器引擎交互,操作容器引擎创建continer,维持pod的生命周期。
  2. kube proxy:写入规则到iptables或者IPVS,实现pod之间的映射访问与负载均衡。
  3. fluentd: 日志收集服务。
  4. pod :k8s的最小服务单元,pod内部是具体的docker容器,k8s通过操作pod来操作容器。
  • 其他组件
  1. coredns:为集群中的SVC(service服务)创建域名和IP对应关系,直接使用CORE为他生成的域名访问,而不需要IP。
  2. dashboard:B/S架构访问K8S,例如kubesphere
  3. Incress Controler :官方只实现四层代理,但是Incress可以实现七层代理
  4. federation:跨集群中心,多个K8S统一管理
  5. prometheus :提供K8S集群资源的监控,例如CPU,内存,磁盘的监控
  6. ELK:提供K8S集群日志统一分析介入平台

特性

  • 弹性伸缩: 通过监控容器的cpu负载值,如果负载值高于80%,增加容器副本的数量,如果低于10%,则减少容器副本的数量。将CPU和内存等资源的利用率最大化。
  • 自愈:自动重启失败的容器,在节点上容器不可用时,替换和重新调度其他节点上的容器,还可以利用 Liveness 和 Readiness 探测机制设置更精细的健康检查。当容器未通过监控检查时,会关闭此容器;直到容器正常运行时,才会对外提供服务。
  • 服务发现:K8s集群内置一个dns服务器,k8s将Service的名称当做域名注册到dns中,通过Service的名称就可以访问。
  • 负载均衡:运行在每个节点上的kube-proxy进程其实就是一个智能的软件负载均衡器,负责把service的请求转发到后端的某个pod实例。
  • 滚动升级和回滚:升级的过程,当v2版本启动后,v1版本才会退出,但是V1版本并没有被删除,而是被停用了,再回滚的时候,会重新启用v1版本。
  • 保密和配置管理:在不需要重新构建镜像的情况下,可以部署和更新保密和应用配置。
  • 存储编排:自动挂接存储系统,这些存储系统可以来自于本地、公共云提供商(例如:GCP和AWS)、网络存储(例如:NFS、iSCSI、Gluster、Ceph、Cinder和Floker等)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kubernetes系列(二)架构及特性 的相关文章

随机推荐

  • elsevier中elsarticle模板如何使用apa引用格式

    我们知道latex的默认引用 cite 是长这样的 那elsevier下面的很多期刊要求我们使用apa 美国心理学会 的引用格式 其是长这样的 方法 这个问题折磨我好久 网上说使用 usepackage apacite 包 可是我一在els
  • 「深度小课堂」虚拟化技术入门科普

    云计算已经成为了服务器端的潮流 通过它 我们可以有效支持弹性计算 隔离兼容等一系列的需求 计算力可以像水电一样为人们所使用 而虚拟化技术正是云计算中最重要的技术 虚拟化技术一般可以被分为两类 分别是虚拟机 VM Virtual Machin
  • sklearn的DecisionTreeClassifier的参数random_state

    刚刚使用SKLearn学习机器学习进行数据分析 分享一些概念和想法 希望可以大家一起讨论 如果理解或者表达有不准确的地方 请多多指点 不吝赐教 非常感谢 本文将继续介绍sklearn的决策树模块的其他参数 涉及到的理论知识 请转至上篇 决策
  • stm32f407zgt6的pdr_on引脚怎么接

    原文链接 https www amobbs com thread 5495105 1 1 html dsign c6460fe9 407的100脚封装没有这个PDR ON 就是VSS 在引脚分布图中为pdr on 但实际量pdr on对VS
  • 【计算机毕业设计】深度学习的驾驶行为检测

    前言 大四是整个大学期间最忙碌的时光 一边要忙着准备考研 考公 考教资或者实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度的 对本科同学来说是充满挑战 为帮助大
  • 某行业CTF一道流量分析题

    今晚看了一道题 记录学习下 给了一个hacktrace pcapng 分析主要内容如下 上传两个文件 一个mouse m2s 一个mimi zip 将其导出 mimi zip中存放着secret zip和key pcapng 不过解压需要密
  • EFilm 3.1 安装文件

    国外网站上找到的 拿出来分享下 第一部分 http download csdn net detail crazpro 9696368 第二部分 http download csdn net detail crazpro 9696402 第三
  • Java:Scanner中的nextInt()方法

    文章目录 方法 验证 方法 Scanner中的nextInt 只会读取数值 剩下 n 还没有读取 并将cursor放在本行中 相当于C语言里面的scanf d i 验证 为方便描述 创建一个Scanner 对象in 注 标准输入System
  • axios的三次封装

    1 第一次封装 把项目中所有请求做的相同的事情 baseURL timeout 请求 响应式 成功或失败的提示 封装到一个文件夹里 这个文件夹通常叫做utils axios封装 通用工具函数 引入axios import axios fro
  • jdk1.8的安装和环境变量的配置最新版(超详细,保姆级教程)

    目录 一 JDK的下载和安装 1 JDK的下载 1 方式一 通过下面的链接地址直接下载jdk1 8版本 2 方式二 通过Oracle官网进行下载 2 jdk的安装 二 环境变量的配置 1 通过jdk路径配置环境变量 2 通过JAVA HOM
  • 剑指Offer53Java代码

    public class T53 public static boolean match String str String pattern if str null pattern null return false return matc
  • leetcode85 合并两个有序数组

    题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2 另有两个整数 m 和 n 分别表示 nums1 和 nums2 中的元素数目 请你 合并 nums2 到 nums1 中 使合并后的数组同样按 非递减顺序 排列 注意
  • static在c语言中是什么意思,在C语言中static有什么含义

    2019 10 10阅读 64 最主要有两点用途 让一个变量长期有效 而不管其是在什么地方被申明 比如 intfun1 staticints value 0 那么fun1不管在什么地方被调用 当函数退出后 s value最后的值将一直会被系
  • MR(MapReduce)架构

    一 什么是MR MapReduce将复杂的 运行于大规模集群上的并行计算过程高度地抽了两个函数 Map和Reduce 二 为什么使用MR 特点 1 易于编程 只关心业务逻辑 它简单的实现一些接口 就可以完成一个分布式程序 2 良好的扩展性
  • 算法面试-深度学习基础面试题整理(2023.8.29开始)

    一 无监督相关 聚类 异常检测 1 常见的距离度量方法有哪些 写一下距离计算公式 1 连续数据的距离计算 闵可夫斯基距离家族 当p 1时 为曼哈顿距离 p 2时 为欧式距离 p gt 时 就是切比雪夫距离 余弦距离 其中 A 和B是要比较的
  • Java8 consumer接口

    Java8 consumer接口 1 由来 Consumer是Java 8中的一个函数式接口 它属于java util function包 该接口定义了一个具有单个输入参数并且没有返回值的操作方法accept 2 官方常见五种示例命令和说明
  • 大数据技术与原理 概述

    大数据概述 大数据的发展历程 第一阶段 萌芽期 20世纪90年代至21世纪初 第二阶段 成熟期 21世纪前十年 第三阶段 大规模应用期 2010年以后 大数据的特点 简称4V 数据量大 数据类型多 处理速度快 价值密度低 大数据的特征 全面
  • Makefile 中gcc -lm -ldl是什么意思?

    gcc lm ldl是什么意思 包含动态链接库 到书上出现gcc lm 的选项 甚是不解 在网上查阅了一些资料 访问了一些论坛整理下 初学linux和gcc C代码调用math h中的函数有问题 如sqrt函数 若如sqrt 3 0 则可以
  • ros-sensor_msgs::PointCloud2类型消息解读

    ROS中sensor msgs PointCloud2类型消息解读 实例 header seq 2116 stamp secs 1586919439 nsecs 448866652 frame id LidarSensor1 height
  • Kubernetes系列(二)架构及特性

    在了解了k8s的发展历程之后 正式进入到学习k8s的阶段 本文主要内容是K8S的整体架构的说明和K8S一些特性的概括 架构 如下图是K8S的整体架构图 Kubernetes属于主从分布式架构 主要由Master Node和Worker No