K8S的基础知识

K8S的意义与入门

专有名词

  • 容器:包含了运行一个应用程序所需要的所有东西,包括:代码、运行时、各种依赖和配置。
  • pod:K8s调度的最小单元,包含一个或多个容器。一个容器组中的容器具有紧密耦合性,共享资源,存储空间和IP。即同一个容器组中的容器可以通过localhost:xxx访问其他容器
  • node:K8S中的执行角色为Node,一个Node一般是一个虚拟机或物理机,它上面事先运行着 docker 服务和 kubelet 服务( Kubernetes 的一个组件)。

容器编排的意义

  • 提出背景: 随着微服务架构的出现,单体式架构被拆分成了很多细小的服务,运行在各自的容器中。那么该如何解决它们之间的 依赖管理,服务发现,资源管理,高可用 等问题呢?
  • 容器编排的作用:
    • 资源编排: 限制各容器的可用资源,资源分配和调度。
    • 工作负载编排: k8s通过不同的 controller 将 Pod 调度到合适的 node 上,并且负责管理它们的生命周期。
    • 服务编排: 负责服务发现和高可用等,如 Kubernetes 中可用通过 Service 来对内暴露服务,通过 Ingress 来对外暴露服务‘

      Service :将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。
      Ingress :公开从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源上定义的规则控制;

K8S 的集群构成与原理

在这里插入图片描述

Master结构:

  • Api server:是整个系统的对外接口,供客户端和其它组件调用;
  • Etcd:Api server 的后台数据存储,相当于 Kubernetes 集群的数据中⼼;
  • Scheduler:负责对集群内部的资源进行调度;
  • Controller-manager:控制管理器,保证 Kubernetes 集群中的资源按照要求运⾏。

Node结构:

  • Kubelet:负责与 Master 节点交互,相当于master的代理,接受master下发的任务,进⽽执⾏具体的任务;
  • Kube-proxy:负责 Kubernetes 集群中的负载均衡;
  • Container-runtime:提供容器运行环境,有 docker,rkt 或者其他容器实现标准,负责容器的操作,启动或者关闭等;
  • Pod:k8s 的最小调度单元,1 个 pod 可以包含 1 个或多个容器,pod 可以理解为容器的集合。

Pod的创建流程

以创建 Pod 为例,来理解 Kubernetes 中的各组件的运⾏流程:

  1. 通过 api server 向集群发起创建 Pod 的指令,api server 将 yaml 中的配置的属性信息(metadata)写入 etcd 中。
  2. api server 触发 watch 机制准备创建 pod,信息转发给调度器 SchedulerScheduler 使用调度算法选择 node,然后将 node 信息给 api server,api server 将绑定的 node 信息写入 etcd。
  3. api server 又通过 watch 机制,调用 kubelet,指定 pod 信息,触发docker run命令创建容器。创建完成之后反馈给 kubelet, kubelet 又将 pod 的状态信息给 api server, api server 又将 pod 的状态信息写入etcd。
    ⾄此 Pod 真正的创建完毕。如果因为某些原因 Pod 出现了问题,集群中的 controller-manager 会向 apiserver 发起创建的请求。
    在这里插入图片描述

K8s中控制器管理

控制器模式与声明式API编程

Kubernetes 如何能够实现最大单个集群能够达到5000个节点,15万个Pod的完全自动化管理,主要归功于声明式API编程控制器模式的协作。

  • 控制器模式: 在k8s集群中,控制器通过 API Server提供的(List & Watch)接口实时监控集群中资源对象的状态变化,当发生故障,导致资源对象的状态变化时,控制器会尝试将其状态调整为期望的状态。发现变化的方式有两种,一种为定时轮训,一种为监听通知。

    比如当某个Pod出现故障时,Deployment Controller会及时发现故障并执行自动化修复流程,确保集群里的Pod始终处于预期的工作状态。

  • 声明式API编程: 相反于 命令式的编程方法的一种编程方式。只给目标,不关乎结果,目标达成即可。简单说,如果要扩容,并不是给“创建一个新node”的指令,而是直接将node数改为“n+1”。声明式更新的好处是不会丢失历史变更。

ReplicaSet 控制器

  • ReplicaSet 主要的作用是维持一组Pod副本的运行,使pod副本的数量始终维持在预设的个数。它会持续监听这些Pod的运行状态,在Pod发生故障时重启pod,pod数量减少时重新运行新的 Pod副

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中馥集团双11当日发货销售额突破1000万!

昨日,中馥集团双十一当日发货销售额突破1000万,再创新高!双十一大促期间,中馥集团全体上下通力合作,每场直播商品经层层筛选、严格评选的“名品”,既有优质精品文化酒,也有市场火爆的高端酱酒&a…

【JavaEE初阶】IP协议简介

文章目录 前言🌴IP协议的概念🌳IP数据报🚩IPv4协议头格式🚩IPv6的诞生 🎍IP地址🚩IP地址的格式:🚩IP地址的分类🎈网络号与主机号的划分 🚩特殊的IP地址&#…

stable diffusion comfyui的api使用教程

一、为什么要使用comfyui的api?对比webui的api,它有什么好处? 1、自带队列 2、支持websocket 3、无需关心插件是否有开放api接口,只要插件在浏览器中可以正常使用,接口就一定可以使用 4、开发人员只需关心绘图流程的搭建 5、切换…

SAP 70策略测试简介

在前面的文章中我们已经测试了10、11、20、40、50、52、60、62策略的测试,接下来我们需要对70策略进行测试,很多的项目中也都会用到70策略。 70策略是一种比较常见的、基于按库存且主要用于半成品或者原材料的计划策略。 我们还是按照之前的惯例,先看下70策略的后台配置 我…

C语言仅凭自学能到什么高度?

今日话题,C语言仅凭自学能到什么高度?学习C语言的决定我确实非常推荐,毕竟它是编程领域的“通用工具”,初学者可以尝试并在发现编程的乐趣后制定长期学习计划。至于能够达到何种高度,这实在无法准确回答。即使是经验丰…

CentOS修改root用户密码

一、适用场景 1、太久没有登录CentOS系统,忘记管理密码。 2、曾经备份的虚拟化OVA或OVF模板,使用模板部署新系统后,忘记root密码。 3、被恶意攻击修改root密码后的紧急修复。 二、实验环境 1、VMware虚拟化的ESXI6.7下,通过曾经…

Android Studio的代码笔记--JSON解析学习2

JSON学习2 生成JSON解析JSON java解析json字符串和合成json字符串 json字符串 {"type":"getConfig","ip":"192.168.1.100"}使用 String ss groupJS("Config","192.168.1.100"); splitJS(ss);回显 I/lxh: group…

工业交换机的解决方案

在工业网络产品的早期阶段,主要关注的是工业交换机的电气、物理、结构等方面的特点。如今的工业网络,在规范硬件条件的同时,也正在向智能、灵活、高效的方向发展。除了注重硬件方面,它还越来越重视软件特性,如网管、环…

深度对话:以实在RPA Agent智能体安全机制破解LLM应用谜题

AI大模型席卷全球,为各个行业带来了颠覆式创新机遇,同时也打开了未知的潘多拉魔盒。随着大语言模型能力的不断增强和适用范围延伸,大模型本身带来的隐私泄漏、数据安全等问题越发成为各大厂商关注的核心,引发了各界更多的思考与发…

【java学习—十四】反射机制概述(1)

文章目录 1. 理解反射机制2. Java Reflection 1. 理解反射机制 (1)人的反射原理 (2)java反射原理 2. Java Reflection Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助…

DAY53 1143.最长公共子序列 + 1035.不相交的线 + 53. 最大子序和

1143.最长公共子序列 题目要求:给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删…

CAP理论

CAP理论 CAP理论指出,在网络分区的情况下(即P条件),系统必须在保持一致性和可用性之间做出选择,无法同时满足。这意味着在出现网络分区时,分布式系统不得不权衡是保持一致性还是可用性。 概念 CAP理论指…

Python爬虫过程中DNS解析错误解决策略

在Python爬虫开发中,经常会遇到DNS解析错误,这是一个常见且也令人头疼的问题。DNS解析错误可能会导致爬虫失败,但幸运的是,我们可以采取一些策略来处理这些错误,确保爬虫能够正常运行。本文将介绍什么是DNS解析错误&am…

Open X-Embodiment 超大规模开源真实机器人数据集分享

近期,Google旗下的前沿人工智能企业DeepMind汇集了来自 22 种不同机器人类型的数据,创建了 Open X-Embodiment 数据集并开源了出来。该数据集让他们研发的RT-2 机器人在制造和编程方式上有了重大飞跃。 有分析称,在上述数据集上训练的 RT-2-…

嵌入式LINUX——环境搭建 windows、虚拟机、开发板 互ping

摘要: 本文包含,如果设置linux开发板和虚拟机、windows 互ping成功 以及设置过程中出现的虚拟机、开发板查询不到eth0 windows ping开发板出项丢包等问题的解决方式。 windows端设置 windows端插入USB转网卡 打开windows桌面下右下角的网络标识 打开“更改适配器选项”…

图片转excel的三种方案(电脑、手机)

图片怎么转换成excel文件呢?用金鸣表格文字识别是最便捷、最佳的解决方案。也许有些同学会问,那我用手工也可以解决呀,干吗要用软件?这么想就不对了,手工做不但要做表格线,还要手工打字,非常麻烦,而且容易出错,特别是对于数字多的图片,更是要命,现在有金鸣识别就不用那么麻烦…

LeetCode(14)加油站【数组/字符串】【中等】

目录 1.题目2.答案3.提交结果截图 链接: 134. 加油站 1.题目 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加…

主从复制和读写分离

MySQL 主从复制和读写分离: 主从复制:主MySQL上的数据,新增,修改库,表,表里的数据,都会同步到从MySQL上。 MySQL的主从复制的模式:(面试题) 1,异…

金镂智能——蔡银云 移动建筑的未来

蔡银云,一个有着军旅经历的创业者。在他的创业道路上,曾经历种种困难与挑战,却始终坚守着初心,并愈发深刻地理解到自己应当为社会奉献力量。从最初的追求利润,到后来的承担社会责任,蔡银云的故事中满篇充溢…

后端接口性能优化分析-1

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码🔥如果感觉博主的文章还不错的话,请👍三连支持&…