deployment常用命令

服务编排-Deployment

Deployment也叫部署集
deployment.Spec.Selectordeployment.Spec.Template.Labels一致


Deployment工作负载均衡器介绍

Deployment是最常用的k8s工作负载控制器,部署管理pod;

其他控制器还有DaemonSet,StatefulSet等.


Deployment的主要功能

  • 管理PodReplicaSet
  • 具有上线部署,副本设定,滚动更新,回滚等功能
  • 提供声明式更新,例如只更新一个新的Image

Deployment的应用场景

  • 网站
  • API
  • 微服务

创建一个deployment


命令行创建deployment

# 使用命令行部署
# 使用Department控制器部署镜像
kubectl create deployment 应用名 --image=镜像名 --replicas=副本数量

# 使用lizhenliang/java-demo镜像创建一个名为tomcatdemo的deployment
kubectl create deployment tomcatdemo --image=lizhenliang/java-demo

yaml创建deployment

## --dry-run是试运行看是否有错误
kubectl create deployment 应用名 --image=nginx:1.16 -o yaml --dry-run=client > my-deploy.yaml

k8s资源限制:requests 与 limits

K8s 采用requestslimits两种限制类型来对资源进行容器粒度的分配,每一个容器都可以独立地设定相应的requestslimits。这 2 个参数是通过每个容器 containerSpecresources 字段进行设置的。一般来说,在调度的时候requests比较重要,在运行时limits比较重要。

resources:  
    requests:    
        cpu: 50m
        memory: 50Mi
   limits:    
        cpu: 100m
        memory: 100Mi
  • requests定义了对应容器需要的最小资源量requests字段限定的资源是独享的。

  • limits定义了这个容器最大可以消耗的资源上限,防止过量消耗资源导致资源短缺甚至宕机。特别的,设置为 0 表示对使用的资源不做限制。

  • 当设置limits而没有设置requests时,Kubernetes 默认令requests等于limits


apply资源清单

# apply这个deployment
kubectl apply -f my-deploy.yaml

查看Deployment和pod的状态

# 查看Deployment和pod的状态
kubectl get deployment,pods

# 每秒钟查看一次
watch -n 1 kubectl get deployment,pods

滚动重启deployment

# 滚动重启(Rolling Restart)deployment
## - rollout: 是 kubectl 的一个子命令,用于管理应用的部署和发布过程。
## - restart: 是 rollout 子命令下的一个操作,用于触发资源的重启。
kubectl rollout restart deployment nginx

在这里插入图片描述


扩缩容

# 查看原来的副本数量
kubectl get deploy/gost

在这里插入图片描述

# 将副本数量调整为2个
kubectl scale deploy 应用名 --replicas=2
## 或者修改对应yamal文件中的replicas值,apply一下即可

# 查看修改后的副本数量
kubectl get deploy/gost

在这里插入图片描述


deploy中指定env

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  # 副本数
  replicas: 3
  selector:
    # 标签选择器
    matchLabels:
      app: my-app
  template:
    metadata:
      labels: # 为将要创建的 Pod 设置标签
        app: my-app
    spec:
      containers:
        - name: my-container
          image: my-image
          resources:
            limits:
              memory: "25Mi"
              cpu: "10m"
          # 为每个pod指定变量
          env:
            - name: ${变量名}
              value: ${变量值}
            - name: ${DB_HOST}
              value: my-database.example.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

教Linux的李老师

您的赞赏,是我深夜码字时最亮的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值