K8S的概念和基本应用

学习视频:Kubernetes基本概念和应用_哔哩哔哩_bilibili

零 . 架构概览

  • master节点:管理调度集群资源,一般为多节点构成,可以是物理机,也可以是虚拟机。
  • worker节点:资源的提供者,一般为多节点构成,可以是物理机,也可以是虚拟机。
  • pod:绿色部分,相当于云平台的虚拟机
  • 容器container:cpu和内存、资源的隔离单位,多节点部署,主容器+辅助容器。它共享pod的存储资源和网络栈。
  • k8s平台:解决集群资源调度的问题,将空闲的pod合理的分配到worker节点上面去。监控集群,如有节点或pod挂了,重新协调和启动pod,保证应用高可用,称为治愈。保证集群的网络,保证pod服务之间可以互通互联。

 

master节点组件构成

  • master节点:k8s集群的大脑,分布式数据库etcd,k8s集群集中的状态存储:节点,pod,发布,配置等都存储在里面。高可用部署的话,至少需要部署3个节点。
  • 所有的操作都是通过调用apiserver来实现的,可以认为是etcd的代理。
  • scheduler:负责调度决策的组件,比如:pod应该分配到那些worker里面去。
  • controller manager:保证集群状态最终一致的组件。通过apiserver 监控集群的状态,确保实际状态与预期状态一致。

worker节点组件构成

  • kubelet :worker节点的资源管理者,相当于agent角色。监听apiserver的事件,执行master下发的任务,汇报情况给APIserver等,是worker节点的小脑。
  • container runtime:结点容器资源的管理者。kubelet不直接参与动作,而是委托给container runtime。比如:启动或关闭容器,收集容器状态。在启动容器的时候,如果本地没有镜像缓存,会从docker hub 去拉取相应的镜像,缓存到本地。
  • kube-proxy:管理k8s中的服务网络的(servernetwork),当需要把服务暴露给外网的时候,需要kube-proxy代理作为转发。
  • pod:瞬息的,不固定的,ip可能会变(可变+不可变)。

K8S发布pod流程样例

流程解读如下:

1、使用kubectl命令行工具向apiserver发送一个创建一个新的replicaset 的请求。apiserver会将该资源请求先存储到etcd中。

2、controller manager 监听replicaset的 创建或修改相关的事件。接收到上一步的创建pod的一个通知。

3、controller manager比较当前集群状态和预期集群的状态,当发现不一致时,调用第一步中的创建pod的模板,在apiserver中创建预期的pod。

4、scheduler监听到apiserver创建新pod的请求,运行调度算法,选择空闲的work节点。然后通过apiserver更新创建pod的定义。把这些pod指定到具体要发布到哪些work节点上。、

注意,此时:controller manager、scheduler 只是通过apiserver更新了希望创建的集群状态,pod并没有真正创建。

5、一旦pod被分配到某个worker节点,apiserver就会通知相应节点上面的kubelet,kubelet接到通知以后,就会指示他的节点上的container runtime 去运行对应的容器。

6、container runtime就会开始下载镜像,启动容器。同时kubelet开始监控容器的运行。

K8S总体架构

 

小结各个组件的作用

 虚拟机抽象-pod

  • 容器 = 应用 + 操作系统,是一种资源隔离抽象;
  • pod 是容器的包装,是一种虚拟机抽象;
  • k8s 是管理pod虚拟机的数据中心抽象; 

https://kubernetes.io/docs/concepts/workloads/pods/pod/

  • 一般是一个pod对应一个容器,但也有一对多的情况,一个主,一个辅助。

https://hub.docker.com/r/spring2go/spring-petclinic/tags

发布pod:按照要求书写发布规范。

Pod | Kubernetes

如何访问pod?

针对测试环境:
端口转发功能开启外部访问:
kubectl port-forword petclinic 8080:8080 (主机端口:pod端口)

nodeport service

  • 传统数据中心反向代理原理

通过在数据中心的网络边界部署反向代理(proxy service)将内网资源暴露出去,使得公网可访问。

反向代理2大作用:

反向路由 + 负载均衡

  • k8s的反向代理

label:大标签机制,键值对

selector:路由选择机制,pod一致性。

service:负载均衡

添加一个:labels: 不然无法访问。

 K8S反向代理-service

传统反向代理

配置反向代理将web应用暴露出去。

反向代理作用:4层/7层

1、反向路由:将web请求反向路由到内部的应用地址。里面有个地址映射,比如:将域名映射到内部应用的IP,可直接在代理服务器配置。

2、负载均衡

nodeport service -k8s的反向代理

 作用:

1、反向路由

2、负载均衡

解释:

1、k8s中service是一个抽象概念。在k8s中,service将流量反向路由到后端的pod是通过selector和labels机制实现的。labels是一种打标签机制,selector是一种路由选择机制。selector上的标签和labels上的标签跨域匹配上,那么selector就将流量路由到匹配的pod上。该机制对比传统的nginx更加灵活,,能力更强。

service发布规范样例:

 

nodeport 范围:30000~32767

通过service实现蓝绿发布

 

 

 

 

 

 

 

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

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

相关文章

day03 重新学python——python函数

文章目录 一、python函数1.函数介绍2.函数的定义3.函数的参数4.函数的返回值5.函数的说明文档6.函数的嵌套调用7.变量的作用域8.综合案例 一、python函数 1.函数介绍 函数:即组织好的、课重复利用,用来实现特殊功能的代码段,这样可以提高代码…

揭秘python函数:编程艺术的核心力量(3)

文章目录 前言递归lambda表达式lambda 的参数形式无参数位置参数关键字参数缺省参数可变参数1.包裹位置传递2.包裹关键字传递 带判断条件的lambda表达式列表数据按照字典key的值进行排序 高阶函数的使用内置高阶函数1.map()2.reduce()3.filter() 前言 前面我们已经学习了 pyth…

uniapp 小程序 vue TypeError: Cannot read property ‘toString‘ of undefined

是因为对字符串使用toString的时候页面中的数据还没有加载 。错误代码: 可以使用 v-if 修改为:

matlab解微分方程

1.匿名函数 1.1创建 f(变量) 表达式; f(x1,x2) x1.^2x2;1.2 求解 x1为2 3 4 5;x2为3 4 5 6的情况下求解函数f的值 f(x1,x2) x1.^2x2; yf(2:5,3:6); subplot(121);%选择子图位置 plot(y)%画图2.一阶微分方程 用“dsolve” 2.1例 y.-y0 step1: 申明自变量和因…

ElasticSearch基础学习(SpringBoot集成ES)

一、概述 什么是ElasticSearch? ElasticSearch,简称为ES, ES是一个开源的高扩展的分布式全文搜索引擎。 它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。 ES也…

最新版Flink CDC MySQL同步MySQL(一)

1.概述 Flink CDC 是Apache Flink 的一组源连接器,使用变更数据捕获 (CDC) 从不同数据库中获取变更。Apache Flink 的 CDC Connectors集成 Debezium 作为捕获数据更改的引擎。所以它可以充分发挥 Debezium 的能力。 2.支持的连接器 连接器数据库驱动mongodb-cdc…

支持跨语言、人声狗吠互换,仅利用最近邻的简单语音转换模型有多神奇

AI 语音转换真的越复杂越好吗?本文就提出了一个方法简单但同样强大的语言转换模型,与基线方法相比自然度和清晰度毫不逊色,相似度更是大大提升。 AI 参与的语音世界真神奇,既可以将一个人的语音换成任何其他人的语音,…

【VsCode远程开发】Windows SSH远程连接Linux服务器 - 无公网IP内网穿透

文章目录 前言视频教程1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 转…

使用Python爬虫和数据可视化,揭示人口大国历年人数的变迁

前言 人口大国通常在全球人口排名中位居前列,其人口数量远远超过其他国家。而印度和中国这两个国家的人口数量均已经超过14亿,而当前全球的人口总数也不过刚刚突破80亿而已,妥妥的天花板级别存在。或许是中国和印度在人口方面的表现太过“耀…

【Python】Python基础知识总结

🎉欢迎来到Python专栏~Python基础知识总结 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:Python学习专栏 文章作者技术和水平有限,如果文中出现错误,希望…

MySQL基本查询与内置函数

目录 聚合函数 分组查询 内置函数 日期函数 字符串函数 数学函数 聚合函数 COUNT:返回查询到的数据的数量 SUM:返回查询到的数据的总和(数字) AVG:返回数据的平均值 MAX:返回查询到的数据的最大值 MIN&a…

微软MFC技术中消息的分类

我是荔园微风,作为一名在IT界整整25年的老兵,今天来聊聊MFC技术中消息的分类。 微软Windows中的消息虽然很多,但是种类并不繁杂,大体上有3种:窗口消息、命令消息和控件通知消息。 窗口消息 窗口消息是系统中最为常见…

离线环境下安装微软Visual Studio 2022 生成工具

1. 前言 最近,在学习cython的时候,需要安装windows下的C/C编译、链接工具。开始觉得传统的msvc太大了,想要尝试Mingw,但是都是编译错误。无奈之下,还是要安装msvc。 微软提供了Visual Studio 2022 Build Tools &…

12.JavaWeb-Node.js+创建Vue项目

1.Node.js的概念 传统的Web服务器中,每个请求都会创建一个线程,这会导致线程数的增加,从而影响服务器的性能和扩展性,Ryan Dahl借助Chrome的V8引擎提供的能力实现了Node.js——可以在服务端运行的JavaScript(可以把Nod…

高数(下) 第九章:多元函数微分学 及其应用

文章目录 Ch9. 多元函数微分学 及其应用(一) 二重极限(二元函数的极限)(二) 多元函数的连续性(三) 偏导数1.偏导数的定义2.二阶混合偏导数相等3.变限积分求偏导 (四) 二元可微:全增量、全微分(五) 多元复合函数 求导法则(六) 多元隐函数 的求…

Mac如何在终端使用diskutil命令装载和卸载推出外接硬盘

最近用 macOS 装载外接硬盘的时候,使用mount死活装不上,很多文章也没详细的讲各种情况,所以就写一篇博客来记录一下。 如何装载和卸载硬盘(或者说分区) mount和umount是在 macOS 上是不能用的,如果使用会…

R语言——字符串处理

paste(abc, def, gh, sep ) #粘贴字符串 substr(abcdefg, 2, 3) # 取特定字符串 gsub(abc, , c(abc, abcc, abcbc)) # 将字符串中abc替换为空 strsplit(a;b;c, ;, fixed T) # 按照;切分字符串 strsplit(a222b2.2c, 2.2, fixed F) # 按照正则表达式分隔,这里的.是…

解放运营人员:钡铼技术S475物联网网关实现养殖环境的远程监控与告警

在养殖行业中,对环境参数的精确监测与控制至关重要。然而,传统的监测方法往往存在诸多痛点,如数据采集不准确、传输速度慢、可视化效果差等。为了解决这些问题,钡铼技术公司推出了其旗舰产品——S475多功能RTU,该产品在…

外包干了2个月,技术退步明显...

先说一下自己的情况,大专生,18年通过校招进入湖南某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

云原生之深入解析K8S的请求和限制

一、Kubernetes 限制和请求 在 Kubernetes 中使用容器时,了解涉及的资源是什么以及为何需要它们很重要。有些进程比其它进程需要更多的 CPU 或内存,这很关键,永远不应该让进程饥饿,知道了这一点,那么应该正确配置容器…