Kubernetes相关知识入门详解

一、Pod的滚动升级

        1.服务升级的一般思路:停止与该服务相关的所有服务pod,重新拉去更新后的镜像并启动。这种方法存在一个比较现实的问题是逐步升级导致较长时间的服务不可用。

        2.Kubernetes滚动升级的思路:通过滚动升级的命令创建新的rc,自动控制旧的rc中pod副本的数量逐渐减少到0,新的rc中的pod的数量从0逐步增加到目标值,但这些过程的前提是要求旧的rc要和新的rc在相同的命名空间。

        pod滚动升级的示例图:

        3.具体配置文件需要注意的是:

                新rc的name不能和旧rc的名字相同

                需要在selector中至少有一个label与旧rc的label不同用来标识其为新的rc,比如一般在升级的过程中会增加名为version的label用来和旧的rc进行区分。

        4.滚动升级的命令:

                kubectl rolling-update redis-master -f redis-master-controller.yam   (使用配置文件)

                kubectl rolling-update redis-master  --image=redis-master:2.0  (不使用配置文件)

        5.pod版本回滚

                kubectl rolling-update redis-master --image=kubeguide/redis-master:2.0 --rollback

二、Sercice

        1.概念:通过创建Service 可以为一组具有相同功能的容器应用提供一个统一的入口地址并能够将请求进行负载分发到后端的各个容器上。

        2.对外提供服务的应用程序需要通过TCP/IP机制及监听IP和端口号来实现

        例如上例通过pod的ip地址和端口号访问容器的应用。这种访问方式存在的弊端是:pod的ip地址不可靠,比如pod所在的node发生故障时,pod将被kubernetes重新调度到另一台node上启动,其ip地址也必将发生变化;其次存在的弊端:容器的应用为分布式的部署方式,需要通过多个实例共同提供服务,且这些实例需要在前端设置负载均衡器来实现请求的分发。

        针对上述问题的解决方法:

                

        3.kubernetes两种负载分发策略:

                RoundRobin(轮询模式):通过轮询的方式将请求转发到后端的各个pod上。

                SessionAffinity:基于客户端的ip地址进行会话保持模式,即第一次将某个客户端发起的请求转发到后端的某个pod上,之后从相同的客户端发起的请求都转发到后端相同的pod上。

         默认情况下采用的负载分发策略是轮询模式进行路由选择。

三、DNS服务搭建

        1.需求:在kubernetes中,主要是为了能够通过服务名在集群内部进行服务的相互访问,则需要创建虚拟的dns服务来完成服务名到clusterIP的解析

        2.kubernetes中提供的虚拟dns服务名为skydns

                组成:etcd(dns存储)        kube2sky(将kubernetes master中的service 注册到etcd)        skyDNS(提供dns域名解析服务)        healthz(提供对skydns服务的健康检查功能)

        上图中,kube2sky容器调用kubernetes master 的api获得集群中所有service的信息并持续监控新的service的生成。

        3.在配置上述服务过程需要注意的问题:

                skydns使用的clusterIP需要指定固定的ip地址,因为每个node的kubelet进程都要使用这个ip地址而不是通过kubernetes自动分配。

                

        kubelet设置启动参数会在每个新创建的pod中设置dns域名解析配置文件/etc/resolv.conf,在其中会增加一条nameserver的配置和一条search配置。

四、Ingress(http7层路由机制)

        1.提出需求:在基于http服务来说,不同的url地址对应到不同的后端服务或者虚拟服务器,如果仅通过kubernetes的service机制是无法实现,ingress的诞生,可以将不同的url请求访问转发到后端不同的service,实现http层的业务路由机制。

        

        2.Ingress的实现:

                创建ingress controller

                        ingress controller的部署时为了实现为后端service提供一个统一的入口,基于不通风的http url向后转发的负载分发规则。

                        ingress controller是以pod的形式运行,监控ingress接口后端的service。

                使用nginx 实现 ingress controller的基本逻辑:

                        监听apiserver,获取全部的ingress的定义

                        基于Ingress的定义,生成nginx所需的配置文件/etc/nginx/nginx.conf

                        执行 nginx -s reload 命令重新加载nginx.conf配置文件

                定义ingress

                访问方式:

                        由于 ingress controller 设置了hostPort,可以通过其所在的物理机进行访问

                         curl  --resolve  mywebsite.com:80:192.168.18.3  mywebsite.com/foo

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

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

相关文章

云原生时代,如何构建高效分布式监控系统

文章目录 一.监控现状二.Thanos原理分析SidecarQuerierStoreCompactor 三.Sidecar or ReceiverThanos Receiver工作原理 四.分布式运维架构 一.监控现状 Prometheus是CNCF基金会管理的一个开源监控项目,由于其良好的架构设计和完善的生态,迅速成为了监控…

Qt 5.14.2 学习记录 —— 십구 事件

文章目录 1、事件的概念2、处理事件3、鼠标事件1、鼠标单击和双击2、鼠标移动3、鼠标滚轮滚动 4、键盘事件5、定时器事件6、窗口移动和大小改变事件 1、事件的概念 用户进行操作时会产生事件,事件可以关联处理函数。Qt封装了操作系统的事件机制,然后进一…

10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析

10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析 文章目录 10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析1. 规则持久化1.1 Nacos Server 配置中心-规则持久化实例 2. 最后: 1. 规则持久化 规则没有持久化的问题 如果 sentinel 流控规则没有…

地学专业想提前准备春招?怎么准备自己的简历?

眼看着即将过年,过完年后基本上春招也要开始提上日程 之前咱们说过,很多同学认为自身技术过硬就会一路顺风,自己经验丰富、编程技术过硬,就不愁找不到工作,这固然是取得好offer的基础。 但再好的技术也不可能通过混乱…

IoTDB结合Mybatis使用示例(增删查改自定义sql等)

IoTDB时序库是当前越来越流行以及基于其优势各大厂商越来越易接受的国产开源时序数据库,针对IoTDB的内容不做过多介绍,在使用该时序库时,往往有一定入门门槛,不同于关系型数据库或文档型数据库那般方便维护和接入开发,…

Go语言的栈空间管理

Go 语言的栈空间管理 Go 语言的栈空间管理是其并发模型的核心之一。Go 的运行时环境(runtime)采用动态栈分配机制,能够根据 Goroutine 的需求动态扩展和收缩栈空间,避免了传统固定栈大小的限制。Go 的栈管理经历了从 分块式栈 到…

细说STM32F407单片机电源低功耗StandbyMode待机模式及应用示例

目录 一、待机模式基础知识 1、进入待机模式 2、待机模式的状态 3、退出待机模式 二、待机模式应用示例 1、示例功能和CubeMX项目设置 (1) 时钟 (2) DEBUG、LED1、KeyRight、USART6、CodeGenerator (3&#x…

我谈《概率论与数理统计》的知识体系

学习《概率论与数理统计》二十多年后,在廖老师的指导下,才厘清了各章之间的关系。首先,这是两个学科综合的一门课程,这一门课程中还有术语冲突的问题。这一门课程一条线两个分支,脉络很清晰。 概率论与统计学 概率论…

第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

第十五届的题目在规定时间内做出了前5道,还有2道找时间再磨一磨。现在把做的一些思路总结如下: 题1:握手问题 问题描述 小蓝组织了一场算法交流会议,总共有 50人参加了本次会议。在会议上,大家进行了握手交流。按照惯例…

OpenEuler学习笔记(四):OpenEuler与CentOS的区别在那里?

OpenEuler与CentOS的对比 一、基本信息 起源与背景: OpenEuler:由华为发起,后捐赠给开放原子开源基金会,旨在构建一个开放、多元化的云计算和边缘计算平台,以满足华为及其他企业的硬件和软件需求。CentOS:…

【MySQL — 数据库增删改查操作】深入解析MySQL的create insert 操作

数据库CRUD操作 1 CRUD简介 CURD是对数据库中的记录进行基本的增删改查操作: 2. Create 新增 语法 INSERT [INTO] table_name[(column [,column] ...)] VALUES(value_list)[,(value_list)] ... # value 后面的列的个数和类型,要和表结构匹配…

苍穹外卖—订单模块

该模块分为地址表的增删改查、用户下单、订单支付三个部分。 第一部分地址表的增删改查无非就是对于单表的增删改查,较基础,因此直接导入代码。 地址表 一个用户可以有多个地址,同时有一个地址为默认地址。用户还可为地址添加例如&q…

从ChatGPT热潮看智算崛起

2025年1月7日,科智咨询发布《2025年IDC产业七大发展趋势》,其中提到“ChatGPT开启生成式AI热潮,智能算力需求暴涨,算力供给结构发生转变”。 【图片来源于网络,侵删】 为何会以ChatGPT发布为节点呢?咱们一起…

【Uniapp-Vue3】setTabBar设置TabBar和下拉刷新API

一、setTabBar设置 uni.setTabBarItem({ index:"需要修改第几个", text:"修改后的文字内容" }) 二、tabBar的隐藏和显式 // 隐藏tabBar uni.hideTabBar(); // 显示tabBar uni.showTabBar(); 三、为tabBar右上角添加文本 uni.setTabBarBadge({ index:"…

【express-generator】06-RESTFUL API设计(第二阶段)

前言: 前面我们学习了第一阶段的express-generator内容以及做了对应练习,现在我们正式开始第二阶段的学习以及练习。本篇介绍的内容是RESTFUL API设计。 第二阶段的大纲如下: RESTful API 设计: 学习如何设计符合 REST 原则的 …

Python 预训练:打通视觉与大语言模型应用壁垒——Python预训练视觉和大语言模型

大语言模型是一种由包含数百亿甚至更多参数的深度神经网络构建的语言模型,通常使用自监督学习方法通过大量无标签文本进行训练,是深度学习之后的又一大人工智能技术革命。 大语言模型的发展主要经历了基础模型阶段(2018 年到2021年)、能力探索阶段(2019年…

【深度学习】2.视觉问题与得分函数

计算机视觉任务 可以通过神经网络搜索是什么类别的动物。 图像实际就是含有数值的三维矩阵。 像素值从0-255可以表示亮度递增的参数。数字越大,像素点越亮。 最后的3表示三个颜色通道,常见的如JPG、RGB等。 现实场景容易发生各种遮蔽现象。 计算机判断…

1.CSS的三大特性

css有三个非常重要的三个特性&#xff1a;层叠性、继承性、优先级 1.1 层叠性 想通选择器给设置想听的样式&#xff0c;此时一个样式就会覆盖&#xff08;层叠&#xff09;另一个冲突的样式。层叠性主要是解决样式冲突的问题。 <!DOCTYPE html> <html lang"en&…

使用Edge打开visio文件

使用Edge打开visio文件 打开Edge浏览器搜索‘vsdx edge’ 打开第一个搜索结果 Microsoft Support 根据上述打开的页面进行操作 第一步&#xff1a;安装Visio Viewer 第二步&#xff1a;添加注册表 桌面新增文本文件&#xff0c;将下面的内容放入新建文本中&#xff0c;修…

基于微信小程序的健身管理系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…