k8s-yaml格式

三种常见的项目发布方式:

蓝绿发布:

金丝雀发布(灰度发布):

滚动发布:

应用程序升级,面临的最大的问题,就是新旧业务的更换,立项--定稿--需求发布--开发--测试--发布,测试之后上线,再完美也会有文题,为了不让发生的问题影响所有用户,上述的三种发布方式

蓝绿发布:

把应用服务集群标记为两个组,分为蓝组和绿组,先升级蓝组,要把蓝组从负载均衡当中移除,绿组继续提供服务,蓝组升级完毕,再把绿组从负载均衡当中移除,绿组升级,然后都加入回负载均衡当中去,完成对外服务

蓝绿发布的特点:

  1. 一旦出现问题,问题的影响范围很大
  2. 发布策略简单
  3. 基于现在的云计算微服务,用户无感知
  4. 升级和回滚比价方便

缺点:

  1. 在发布升级的过程中,只有一部分集群对外提供服务,可能会使得集群的负载能力下降,响应变慢,需要注意给集群增加负载能力(一般来说没什么特殊需求)
  2. 短时间内可能会浪费一定的资源成本

金丝雀发布(灰度发布):

Deployment控制器创建的服务,才可以使用这种发布方式,滚动更新,暂停,发布非过程中,暂时停止,只有一部分的pod先升级,其他的pod还是处于老的版本,只有一部分用户可以访问新的版本,绝大多数用户还是在老版本,确定无问题之后后,再把剩下的老版本,升级新的版本,把暂停取消,继续发布,如果有问题,可以立即回滚,暂停不是回滚,一旦取消暂停只能全部升级完成之后,再回滚

暂停之后不能回滚,必须全部更新完成之后,一起回滚回去

灰度发布的特点:

  1. 自动化要求比较高,对运维人员要求比较高
  2. 方便发现问题,及时解决,影响范围比较小
  3. 用户无感知,可以实现一个平滑过渡,比较节约资源
  4. 发布策略比较复杂
  5. 不易回滚,必须要全部发布成功之后才能回滚

滚动更新:是的deployment的默认方式,

演示

创建:

kubectl set image deployment nginx nginx=nginx:1.24 --record && kubectl rollout pause deployment nginx

等待一段时间:

查看回滚状态:

查看版本

回滚,只能全部升级完成之后,一起回滚

回滚:

查看版本

声明式资源管理方法(YAML文件):

特点:

  1. 适合对资源的修改操作,这是陈述式的弱项
  2. 声明式管理依赖于YAML文件,所有的内容都在YAML文件之中
  3. 编辑好的YAML文件,还是要依靠陈述式的命令,发布到k8s集群当中

如何发布呢,三种方式:

Create:只能创建,不能更新,从指定YAML文件中读取配置,创建服务,不能更新

Apply -f:既然可以创建资源对象也可以更新资源对象,如果YAML文件更改了,apply可以直接更新资源对象

Delete -f:删除YAML文件当中的声明的资源对象

YAML文件如何生成呢:

  1. 手打
  2. 可以根据已有的资源

演示根据已有的资源:

强制执行yml文件--force

演示service文件

同理pod也行:

常见到的YAML文件格式:

  1. deployment的YAML文件 daemonset statefulset
  2. Service的YAML文件
  3. 不急于控制器的pod的YAML文件

K8s当中支持两种声明式的资源管理方式:

  1. YAML格式,用于配置和管理资源对象
  2. Json格式,主要用于在api接口间的消息传递

Command

Args

定义容器运行的命令参数,类型与docker的CMD和entrypoint

Args可以理解docker中的cmd,给command传参

Command和args都会覆盖原容器的标准输出(CMD和ENTRYPOINT)

YAML文件怎么写:

查看创建格式

编写yml文件:

查看模板:

Deployment的YAML

apiVersion: apps/v1

kind: Deployment

metadata:

  name: nginx1

  namespace: guoqi

  labels:

    wdf: nginx1

spec:

  replicas: 3

  selector:

    matchLabels:

      wdf: nginx1

  template:

    metadata:

      labels:

        wdf: nginx1

    spec:

      containers:

       - name: nginx

         image: nginx:1.10

        # posts:

        #  - containerPort: 80

查看service模板:

kubectl explain service

service的yaml

apiVersion: v1

kind: Service

metadata:

  name: nginx-service

  namespace: guoqi

  labels:

    wdf: nginx1

spec:

  type: NodePort

  ports:

  - port: 80

    targetPort: 80

  selector:

    wdf: nginx1

Pod的YAML

查看格式

apiVersion: v1

kind: Pod

metadata:

  name: centos1

  namespace: guoqi

spec:

  restartPolicy: Always

  containers:

  - name: centos

    image: centos:7

详细查看信息:

kubectl describe pod -n guoqi centos1

查看日志:

kubectl logs -n guoqi centos1

Command;Args

定义容器运行的命令参数,类似与docker的CMD和ENTRYPOINT

Args可以理解docker中的cmd,给command传参

Command和args都会覆盖原容器的标准输出(CMD和ENTRYPOINT)

如何定义多条命令:

建议格式,多个命令写在一行

不能同时有两个command,command和ARG不能同时出现,除非你要传参,都会容器的标准输出(CMD和enterpoint)

总结今天的内容:

三种发布方式

蓝绿发布:

灰度发布(重点):,基于deployment的滚动发布方式,使用了一个机制pause,resume继续,回滚:所有都升级完成之后才可以回滚

滚动发布:

三种YAML格式:

Deployment:

Service:

Pod:

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

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

相关文章

有效边表填充算法

有效边表填充算法 如何填充示例三角形 按照扫描线从上往下的顺序,依次处理和多边形相交的扫描线,对于当前处理的扫描线找到和它相交的所有边的交点,按照交点横坐标从小到大的顺序,两个两个配对,配对之后填充每对交点之…

踩了Vue2运行机制的坑-响应式原理

最近遇到一个很奇怪的bug: 前置:后端接口返回的数据是这样的: ①首先在store中取出后端返回的数据Ares.data,在这里打印输出是正常的 ②然后在vue页面上再取出A.data也就是res.data.data,以及其它几个字段即res.data.X…

Spring技术内幕笔记之IOC的实现

IOC容器的实现 依赖反转: 依赖对象的获得被反转了,于是依赖反转更名为:依赖注入。许多应用都是由两个或者多个类通过彼此的合作来实现业务逻辑的,这使得每个对象都需要与其合作的对象的引用,如果这个获取过程需要自身…

解决报错:找不到显卡

今天做实验碰到一个问题:torch找不到显卡: 打开任务管理器,独显直接没了,一度以为是要去修电脑了,突然想到上次做实验爆显存,屏蔽了gpu用cpu训练: import os os.environ["CUDA_DEVICE_OR…

线性代数笔记3 1.1

学习视频: 2.2 矩阵运算(二)_哔哩哔哩_bilibili 包括内容: p10矩阵运算(二) p11特殊矩阵 p12逆矩阵(一) p13逆矩阵(二)

网络四元组

文章目录 网络四元组 今天我们来聊聊 网络四元组 网络四元组 四元组,简单理解就是在 TCP 协议中,去确定一个客户端连接的组成要素,它包括源 IP 地址、目标 IP 地址、源端口号、目标端口号。 正常情况下,我们对于网络通信的认识可…

【C语言】Ubuntu 22上用GTK写GUI程序

一、GTK介绍 GTK (GIMP Toolkit) 是一个多平台的图形用户界面工具包。它最初是为图像处理程序 GIMP 开发的,后来演变成为许多操作系统上开发图形界面应用程序的通用库。GTK 是用C语言编写的,并且是自由和开源软件,遵循LGPL (GNU Lesser Gene…

Go中interface != nil不一定不是nil

摘要: interface{} 值 ! nil不一定不是nil,应使用reflect库判断是否是nil。 测试示例: // todo interface ! nil 不一定 不是nil var value map[string]interface{} reqMap : make(map[string]interface{}) reqMap["key"] valu…

计算机网络学习笔记(四)

文章目录 1.介绍一下HTTPS的流程。2.介绍一下HTTP的失败码。3.说一说你知道的http状态码。4. 301和302有什么区别?5.302和304有什么区别?6. 请描述一次完整的HTTP请求的过程。7.什么是重定向?8. 重定向和请求转发有什么区别?9.介绍…

计算机毕业设计 基于SSM的果蔬作物疾病防治系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

【Amazon Bedrock】体验 Bedrock 的基本功能,为构建强大安全的LLM应用而准备

文章目录 一、什么是Amazon Bedrock?二、为什么选择 Amazon Bedrock三、访问Amazon Bedrock UI四、与Amazon Bedrock 聊天五、对比Amazon Bedrock 不同基础模型的返回结果六、让Amazon Bedrock处理文本七、利用Amazon Bedrock生成图片八、参考链接 一、什么是Amazon…

Wnmp本地部署结合内网穿透实现任意浏览器远程访问本地服务

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 前言1.Wnmp下载安装2.Wnmp设置3.安装cpolar内网穿透3.1…

从信号处理角度彻底理解FFT

只想速览公式可以转到简明FFT公式 一、FFT起初用于解决的问题 分解复合信号 将复合信号视为若干正弦波与余弦波的叠加,如何得知某个正弦波/余弦波在该信号中的强度? 二、即答 用特定频率的正弦波/余弦波(设其为a)乘上复合信号…

问界M9激光雷达解说

什么是激光雷达 激光雷达(英文:Lidar),是一种通过发射激光束来测量目标位置、速度等特征量的雷达系统。其工作原理是将激光光束照射到目标物体上,然后通过测量激光光束从发射到反射回来的时间,来计算目标物体的距离、位置、速度等参数。激光雷达通常用于测量地形、地貌、…

云轴科技海通期货 | 一云多芯信创云平台方案入选上海金融科技优秀解决方案

近日,在上海金融科技产业联盟主办的第五届上海金融科技国际论坛上,上海市地方金融监督管理局、中国人民银行上海总部共同发布了2023年度上海金融科技优秀应用场景及解决方案入选名单,其中云轴科技ZStack联合海通期货申报的“一云多芯信创云平…

【linux kernel】linux的SPI框架分析

文章目录 一、linux内核中的SPI框架二、SPI核心的初始化三、SPI核心的数据结构1、struct spi_statistics2、struct spi_delay3、struct spi_device4、struct spi_driver5、struct spi_controller6、struct spi_res7、struct spi_transfer8、struct spi_message9、struct spi_bo…

JavaScript中history对象常用方法【通俗易懂】

✨前言✨   本篇文章主要在于了解及使用JavaScript中history对象常用方法 🍒欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍒博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言 &#x1f4cd…

【052】基于Springboot、Vuey电影购票管理系统(附完整源码、数据库)

**基于Springboot、Vue、Mysql的电影购票管理系统(附源码、数据库),超级完整的项目,值得下载!! 链接在博客最底下**电影购票管理系统源码及数据库百度云链接: https://pan.baidu.com/s/1loetDV…

VC6.0 下载的dsw打不开解决

有位朋友发了个老项目给我,是十多年前的VC6.0写的,为此我下载了一个VC6。但当选择打开工作空间时,却没有反应,甚至会报错。提示如下: 根据提示内容,Google了一下,找到了这篇帖子:htt…

poi操作Excel给列设置下拉菜单(数据验证)

效果图&#xff1a; pom.xml文件增加依赖&#xff1a; <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.0.1</version></dependency> 12345Workbook实现类有三个&#xff1a;HSSFWork…