kubernetes之deployment

这篇具有很好参考价值的文章主要介绍了kubernetes之deployment。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用于部署无状态的服务,这个最常用的控制器。可以管理多个副本的Pod实现无缝迁移、自动扩容缩容、自动灾难恢复、一键回滚等功能。

虽然ReplicaSet可以确保在任何给定时间运行的Pod副本达到指定的数量,但是Deployment(部署)是一个更高级的概念,它管理ReplicaSet并为Pod和ReplicaSet提供声明性更新以及许多其他有用的功能,所以建议在实际使用中,使用Deployment代替ReplicaSet。

1、创建一个deployment 实例

cat deployment.yml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment-nginx
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
       app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        ports:
        - containerPort: 80
        image: nginx:1.20

在该例中:

  • 创建名为 nginx-deployment(由 .metadata.name 字段标明)的 Deployment。
  • selector 字段定义 Deployment 如何查找要管理的 Pods。 在这里,你选择在 Pod 模板中定义的标签(app: nginx)。 不过,更复杂的选择规则是也可能的,只要 Pod 模板本身满足所给规则即可

运行下面命令创建deployment

kubectl apply -f deployment.yml --record

注:--record标志可以将执行的命令写入资源注解,每个 Deployment 修订版本所执行过的命令。

2、运行 kubectl get deployments 检查deployment是否创建

kubectl get deployment
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
deployment-nginx   3/3     3            3           47m

3、要查看deployment 上线状态,运行 kubectl rollout status deployment/deployment-nginx

 kubectl rollout status deployment/deployment-nginx
deployment "deployment-nginx" successfully rolled out

4、要查看 Deployment 创建的 ReplicaSet(rs) ,运行 kubectl get rs

kubectl get rs
NAME                          DESIRED   CURRENT   READY   AGE
deployment-nginx-7cf55fb7bb   3         3         3       31m

5、更新 deployment

  • 比如需要更改镜像
kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1 --record

也可以使用 kubectl edit 的方法实现

kubectl edit deployment/deployment-nginx

6、回滚deployment

首先检查deployment 的历史版本

kubectl rollout history deployment/deployment-nginx
deployments "nginx-deployment"
REVISION    CHANGE-CAUSE
1           kubectl apply deployment.yaml --record=true
2           kubectl set image deployment/deployment-nginx nginx=nginx:1.16.1 --record=true

查看历史版本的详细信息

kubectl rollout history deployment/deployment-nginx --revision=2

回滚到之前的版本

kubectl rollout undo deployment/deployment-nginx --to-revision=2

7、缩放deployment

使用一下指令进行缩放副本数量

kubectl scale deployment/deployment-nginx --replicas=5 --recoed
#将名称为deployment-nginx这个副本数量扩充为5个副本,并且记录修订版本

比例缩放

         RollingUpdate 的 Deployment 支持同时运行应用程序的多个版本。 当自动缩放器缩放处于上线进程(仍在进行中或暂停)中的 RollingUpdate Deployment 时, Deployment 控制器会平衡现有的活跃状态的 ReplicaSets(含 Pods 的 ReplicaSets)中的额外副本, 以降低风险。这称为 比例缩放。

maxSurge(最大增量):除当前数量外还要添加多少个实例。

maxUnavailable(最大不可用量):滚动更新过程中的不可用实例数。

可以运行一下命令根据自身需要更改maxsurge 和maxunavaliable

kubectl edit deployment/deployment-nginx

编辑文件,找到maxsurge和maxunavailable,更改大小

8、暂停、恢复deployment

你可以在触发一个或多个更新之前暂停 Deployment,然后再恢复其执行。 这样做使得你能够在暂停和恢复执行之间应用多个修补程序,而不会触发不必要的上线操作。文章来源地址https://www.toymoban.com/news/detail-411863.html

kubectl rollout pause deployment.v1.apps/nginx-deployment  #暂停
kubectl rollout resume deployment.v1.apps/nginx-deployment  #恢复

到了这里,关于kubernetes之deployment的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 把Kubernetes用于微服务管理的最佳实践

    Kubernetes 是一个开源的容器编排引擎最初由 Google 在内部开发中使用,用于管理其容器集群。它可以自动化应用程序的部署、扩展和管理。 Kubernetes 具有以下优势: 可靠性:Kubernetes 具有自动容错和自我修复功能。 可扩展性:Kubernetes 可以轻松地扩展应用程序。 可移植性:K

    2024年02月05日
    浏览(40)
  • 在CSDN学Golang云原生(Kubernetes Pod无状态部署)

    Kubernetes中的Pod是可以动态创建、销毁的,如果希望Pod只使用静态的IP地址而不是自动生成一个IP地址,那么就需要使用静态Pod。 静态Pod是在kubelet启动时通过指定文件夹路径来加载的。当kubelet检测到这些配置文件变化后,它会创建或删除相应的Pod,这样就可以轻松地部署静态

    2024年02月15日
    浏览(57)
  • 在CSDN学Golang云原生(Kubernetes Pod 有状态部署)

    Kubernetes StatefulSet 是 Kubernetes 中的一种资源类型,它能够保证有状态服务(Stateful Service)的唯一性和顺序部署,适用于需要持久化存储、网络标识、状态管理等场景。MongoDB 是一个非常流行的 NoSQL 数据库,下面我们介绍如何使用 Kubernetes StatefulSet 部署 MongoDB 集群。 创建一个

    2024年02月15日
    浏览(51)
  • [手机Linux] 二,安卓手机安装linux系统, 部署完全属于自己的服务器(Linux Deploy)

    背景: 之前买过一台阿里云服务器1G1核的,玩起来真的是卡脑壳,卡卡的,经费在燃烧却得不到灰烬,而是萌想做一台完全属于自己的服务器,而是百度发现原来我们的安卓手机也可以当服务器器(Linux),而是翻了一下箱底找到了曾经的宝贝,差点当垃圾(其实可以拿去市场换

    2024年02月04日
    浏览(52)
  • 【Kubernetes资源篇】StatefulSet无状态服务管理入门实战详解

    官方中文参考文档 1、StatefulSet Pod控制器特性 StatefulSet(简写sts)也是K8S集群中的一种Pod资源管理器,与deployment Pod控制器不同的是,StatefulSet用于管理无状态程序,特性如下: 稳定的网络标识符:管理的Pod都拥有一个稳定的网络标识符。可以通过网络标识符进行访问。 有序部署

    2024年02月13日
    浏览(38)
  • kubernetes之deployment

    用于部署无状态的服务,这个最常用的控制器。可以管理多个副本的Pod实现无缝迁移、自动扩容缩容、自动灾难恢复、一键回滚等功能。 虽然ReplicaSet可以确保在任何给定时间运行的Pod副本达到指定的数量,但是Deployment(部署)是一个更高级的概念,它管理ReplicaSet并为Pod和

    2023年04月13日
    浏览(39)
  • Kubernetes中deployment相关操作

    前面介绍的创建pod的方法创建出的pod是不稳定的、不健壮的,挂掉之后不会自动启动,这样就会导致运行在容器里的应用也无法正常运行,使用deployment可以提高pod的健壮性。 deployment(简称deploy)是一个控制器,只要告诉deployment需要几个pod。deployment就会始终保持有几个pod,

    2024年02月03日
    浏览(33)
  • 【kubernetes系列】Kubernetes之RC、RS和Deployment

    在实际的工作中,我们使用Kubernetes 通常不会直接创建 Pod,而是通过 各种 Controller 来管理 Pod 的。Controller 中定义了 Pod 的部署特性,比如有几个副本,在什么样的 Node 上运行等。为了满足不同的业务场景,Kubernetes 提供了多种 Controller,包括 Deployment、Replication Controller、Repl

    2024年02月11日
    浏览(36)
  • 【云原生】Kubernetes工作负载-Deployment

    一个 Deployment 为 Pod 和 ReplicaSet 提供声明式的更新能力 你负责描述 Deployment 中的目标状态,而 Deployment 控制器(Controller) 以受控速率更改实际状态, 使其变为期望状态。你可以定义 Deployment 以创建新的 ReplicaSet,或删除现有 Deployment, 并通过新的 Deployment 收养其资源 下面是

    2024年02月16日
    浏览(41)
  • idea 2020.3运行dockerfile文件部署出现报错:Failed to deploy ‘服务 Dockerfile: Dockerfile‘: Not connected

    在 IDEA 2020.3 修改了 Docker 服务器的配置之后,运行 Dockfile 文件,出现如下报错 关闭所有项目,重新打开 IDEA 即可

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包