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:

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

纠删码ReedSolomon

随着大数据技术的发展,HDFS作为Hadoop的核心模块之一得到了广泛的应用。为了数据的可靠性,HDFS通过多副本机制来保证。在HDFS中的每一份数据都有两个副本,1TB的原始数据需要占用3TB的磁盘空间,存储利用率只有1/3。而且系统中大部分…

NGUI基础-图集制作(保姆级教程)

目录 图集是什么 如何打开图集制作工具 制作步骤 图集的三个关键配置 相关参数介绍 Atlas Material Texture Padding Tim Alpha PMA shader Unity Packer TrueColor Auto-upgrade Force Square Pre-processor 图集是什么 Unity图集(Sprite Atlas&…

Jupyter Notebook的10个常用扩展介绍

Jupyter Notebook(前身为IPython Notebook)是一种开源的交互式计算和数据可视化的工具,广泛用于数据科学、机器学习、科学研究和教育等领域。它提供了一个基于Web的界面,允许用户创建和共享文档,这些文档包含实时代码、…

erp管理系统哪家好?有什么好用的ERP推荐吗?

“公司属于工业制造,想要实现产供销一体化,生产自动排产,减少缺料停工,降低制造成本,订单准时交付,质量全程追溯。大家有推荐的ERP系统嘛?” 不少企业在落地ERP的时候,出现了很多问…

Windows 7 虚拟机的安装以及解决安装VMVMware tools问题

1.Windows 7 虚拟机的安装以及解决安装VMVMware tools问题 参考:Windows 7 虚拟机的安装以及解决安装VMVMware tools问题 注意:下载官方补丁:Microsoft Update Catalog在智慧联想浏览器中打不开,要在火狐中才能打开下载。 2.win7如…

Linux network — 网络层收发包流程及 Netfilter 框架浅析

Linux network — 网络层收发包流程及 Netfilter 框架浅析 1. 前言2. 基础网络知识2.1 网络分层模型2.2 数据包协议分层2.3 sk_buff 结构2.4 收发包整体框架 3. 网络层(IPv4)收发包流程4. Netfilter 框架4.1 IPv4 网络层的 Netfilter Hook 点4.2 iptable…

第28关 k8s监控实战之Prometheus(一)

------> 课程视频同步分享在今日头条和B站 大家好,我是博哥爱运维。对于运维开发人员来说,不管是哪个平台服务,监控都是非常关键重要的。 在传统服务里面,我们通常会到zabbix、open-falcon、netdata来做服务的监控&#xff0…

window服务器thinkphp队列监听服务

经常使用linux的同学们应该对使用宝塔来做队列监听一定非常熟悉,但对于windows系统下,如何去做队列的监听?是一个很麻烦的事情。 本文将通过windows系统的服务来实现队列的监听。 对于thinkphp6 queue如何使用,不再赘述。其它系…

【深度学习下载大型数据集】快速下载谷歌云盘数据集

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 跑深度学习的时候,一些数据集比较大,比如60多个G,而且只是训练集. 然后这些数据是由某些实验室组采集的,并不像一些大公司搞的,一般都直接方法一些网盘中. 如果是谷歌网盘,本身通过代理也不麻烦,但是发现即使通过代…

网络安全方向好吗?

先说待遇吧,个人来看,下限不低,上限也就那样……我一直在说一个点,就是大家都是普通人,别去和大佬比,动辄挖出高危漏洞,年薪四五十万的安全技术人员——我这么说吧,占总安全人才的10…

RDS快速入门

目录 实例创建 设置白名单 RDS(Relational Database Service)是一种托管式的关系型数据库服务,它为用户提供了一种简单、可靠、安全的方式来部署、操作和扩展数据库。具有安全可靠、解决运维烦恼、有效降低成本和自研增加等四大特性&#x…

《工具录》nslookup

工具录 1:nslookup2:选项介绍3:示例 - 命令行模式3.1:查询类型设置3.2:指定 DNS 服务器 4:示例 - 交互模式5:其他 本文以 kali-linux-2023.3-vmware-amd64 为例。 1:nslookup nsloo…