当前位置: 首页 > news >正文

无状态应用管理Deployment

无状态应用管理Deployment

1、Deployment介绍

Deployment一般用于部署公司的无状态服务。

格式:

apiVersion: apps/v1

kind: Deployment

metadata:

    name: nginx-deployment

    labels:

       app: nginx

spec:

    replicas: 3

    selector:

        matchLabels:

            app: nginx

template:

    metadata:

          labels:

              app: nginx

    spec:

        containers:

        - name: nginx

          image: nginx:1.15

          ports:

          - containerPort: 80

注:从Kubernetes 1.16版本开始,彻底废弃了其他的APIVersion,只能使用apps/v11.16以下的版本可以使用extension等。

  1. metadata.name:Deployment的名称,例如:nginx-deployment
  2. metadata.labels.app:Deployment的标签,例如:nginx
  3. spec.replicasDeployment的副本数量,例如:3
  4. spec.selector.matchLabels.app:Deployment管理的pod,与metadata.labels.app 对应,apiVersionapps/v1必须指定该字段
  5. template.metadata.labels.app定义Pod的标签,例如:nginx
  6. template.spec.containers.name定义Pod运行的容器名称,例如:nginx
  7. template.spec.containers.image定义Pod使用的镜像,例如:nginx:1.15

8)template.spec.containers.ports.containerPort定义Pod用于发送和接收流量的端口例如:80

2、创建Deployment

使用kubectl create创建Deployment

3、查看Deployment

是用kubectl get deployment(简写deploy)

NAME:Deployment的名称;

READY:Pod就绪个数和总副本数;

UP-TO-DATE:显示已达到期望状态的被更新的副本数;

AVAILABLE: 显示用户可以使用的应用程序副本数当前为3,说明目前达到望的Pod;

AGE:显示应用程序运行的时间。

3.1 查看当前Deployment对应的ReplicaSet

kubectl get rs -l app=nginx

3.2 查看Deployment创建的Pod

kubectl get pods

3.3 查看pod 节点信息

kubectl get pods -owide

4、更新Deployment

注意:当且仅当Deployment的Pod模板(即.spec.template)更改时,才会触发Deployment更新,例如更改内存、CPU配置或者容器的image。

假如更新nginx Pod的image使用nginx:latest,并使用--record记录当前更改的参数,后期回滚时可以查看到对应的信息:

kubectl set image deployment nginx nginx=registry.cn-shenzhen.aliyuncs.com/zhouwb/nginx --record

describe查看Deployment的详细信息:

kubectl describe deploy nginx

5、回滚Deployment

当更新了版本不稳定或配置不合理时,可以对其进行回滚操作,假设我们又进行了几次更新(此处以更新镜像版本触发更新,更改配置效果类似):

kubectl set image deployment nginx nginx=registry.cn-shenzhen.aliyuncs.com/zhouwb/nginx:latest --record

kubectl set image deployment nginx nginx=registry.cn-shenzhen.aliyuncs.com/zhouwb/nginx:1.15  --record

使用kubectl rollout history查看更新历史:

 kubectl rollout history deployment nginx

如果只需要回滚到上一个稳定版本,使用kubectl rollout undo即可:

如果要回滚到指定版本,使用--to-revision参数:

kubectl rollout undo deployment nginx --to-revision=4

6扩容Deployment

当公司访问量变大,或者有预期内的活动时,三个Pod可能已无法支撑业务时,可以提前对其进行扩展。

使用kubectl scale动态调整Pod的副本数,比如增加Pod5个:

kubectl scale deployment nginx --replicas=5

相关文章:

  • 面试经典题---3.无重复字符的最长子串
  • php二次开发股票系统代码:腾讯股票数据接口地址、批量获取股票信息、转换为腾讯接口指定的股票格式
  • 幻兽帕鲁服务器数据备份
  • x-cmd pkg | httpx - 为 Python 设计的下一代 HTTP 客户端库
  • 04 SB实战 -微头条之头条模块(登录验证拦截器+发布文章+修改文章)
  • 分享7种SQL的进阶用法
  • 【OCC学习23】使用Draw探索OCC API 【完结】
  • 【Py/Java/C++三种语言OD2023C卷真题】20天拿下华为OD笔试之【DP】2023C-分班【欧弟算法】全网注释最详细分类最全的华为OD真题题解
  • 基于k折交叉验证的支持向量机SVM的多分类预测,SVM的详细原理,SVM工具箱详解及注意事项
  • 【Image captioning】论文阅读七—Efficient Image Captioning for Edge Devices_AAAI2023
  • Prometheus插件安装kafka_exporter
  • [极客大挑战 2019]LoveSQL1
  • springboot优雅停机
  • SpringMVC-HttpMessageConverter 报文信息转化器
  • 基于PHP反序列化练习
  • [译] React v16.8: 含有Hooks的版本
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • CAP理论的例子讲解
  • flask接收请求并推入栈
  • JS函数式编程 数组部分风格 ES6版
  • k8s如何管理Pod
  • Laravel 实践之路: 数据库迁移与数据填充
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Python爬虫--- 1.3 BS4库的解析器
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • vue中实现单选
  • 从零开始学习部署
  • 番外篇1:在Windows环境下安装JDK
  • 后端_ThinkPHP5
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 正则学习笔记
  • 如何正确理解,内页权重高于首页?
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • #FPGA(基础知识)
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (1)常见O(n^2)排序算法解析
  • (175)FPGA门控时钟技术
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (四)鸿鹄云架构一服务注册中心
  • (学习日记)2024.01.09
  • (转)socket Aio demo
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .Net6使用WebSocket与前端进行通信
  • .net中生成excel后调整宽度
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • @NestedConfigurationProperty 注解用法
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [100天算法】-x 的平方根(day 61)
  • [20171102]视图v$session中process字段含义
  • [AAuto]给百宝箱增加娱乐功能
  • [Android] Android ActivityManager
  • [C#]无法获取源 https://api.nuge t.org/v3-index存储签名信息解决方法