2025,每天10分钟,跟我学K8S(十二)- Deployment

        前面2个章节,了解了pod的创建过程和生命周期。但是在实际应用中,直接创建pod是很少见的,因为一旦这个pod挂掉了。整个服务就宕机了。所以 kubernetes 提供了一个Deployment的概念,可以让 Deployment来管理一组 POD 的副本,也就是副本集,这样就可以保证一定数量的副本一直可用的,不会因为一个 POD 挂掉导致整个服务挂掉。

        Deployment‌是Kubernetes中的一个核心概念,它是一种高级别的控制器,用于管理Pod和ReplicaSet,确保应用程序的高可用性和稳定性。Deployment通过声明式配置来创建和更新Pod和ReplicaSet,从而管理应用程序的生命周期‌。

Deployment: 管理 ReplicaSet 的创建和更新。Deployment 允许用户声明希望运行的应用状态,包括 Pod 的模板、副本数量和更新策略。通过 Deployment,用户可以轻松实现滚动更新和回滚。

ReplicaSet: 确保指定数量的 Pod 实例在任何时候都在运行。它通过监控 Pod 的状态来管理 Pod 的创建和删除。如果某个 Pod 异常终止,ReplicaSet 会创建一个新的 Pod 来替代它。

Pod:一个或多个容器的集合。Pod 共享存储、网络和上下文。

Deployment主要功能和特点

‌副本管理‌:Deployment确保在集群中有指定数量的Pod副本运行。如果Pod副本数量少于期望值,Deployment会自动创建新的Pod;如果副本数量超过期望值,则会删除多余的Pod‌。
‌滚动更新‌:Deployment支持滚动更新策略,逐步替换旧版本的Pod为新版本,保障业务的连续性,避免一次性更新导致的服务中断‌。
‌版本回滚‌:如果应用程序升级后出现问题,可以通过Deployment回滚到之前的版本‌。
‌高可用性‌:当Pod失效时,Deployment会自动创建新的Pod以替换失效的Pod,保证服务的连续运行‌。


Deployment使用场景和示例


Deployment的使用场景包括但不限于:

‌应用部署‌:将构建好的容器镜像部署到Kubernetes集群中,并提供服务。
‌应用升级‌:通过更新容器镜像并重新部署Deployment来实现应用的更新。
‌回滚操作‌:当应用升级出现问题时,可以回滚到之前的稳定版本。

以下是一个Deployment资源清单的示例:

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
        - name: front-end
          image: m.daocloud.io/docker.io/nginx
          ports:
            - containerPort: 80

        上述内容看起来和之前的pod创建的yaml文件有点类似,尤其是template下面一部分,其实就是对pod的定义,和之前的pod的yaml文件写的是一样的。

  • apiVersion,这里它的值是 apps/v1,这个版本号需要根据我们安装的 kubernetes 版本和资源类型进行变化的,记住不是写死的

  • kind,这里我们创建的是一个 Deployment

  • metadata:包含了我们定义的 Deployment的一些 meta 信息,比如名称、namespace、namede信息。

  • spec:

    • replicas:会创建几个pod的副本,上面的例子写了2个副本,就会生成2个pod

    • selector:pod标签选择器,和下面的template里面的labels是对应关系,表名这个deployment通过app: web 这一组标签,进行pod的选择,而下面的template中labels也提供的pod的标签也是app: web。

  • template: 描述pod的一些属性

查看此时的deployment和pod的状态

可以看到有2个pod已经启动,和之前设置的replicas保持一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值