首页 > 其他分享 >Deployment、ReplicaSet、ReplicationController控制器

Deployment、ReplicaSet、ReplicationController控制器

时间:2023-03-07 16:47:24浏览次数:40  
标签:selector ReplicaSet rs app ng Deployment 80 ReplicationController

kubernetes中内建了很多controller(控制器),这些相当于一个状态机,用来控制pod的具体状态和行为。
部分控制器类型如下:
    ReplicationController、ReplicaSet 、Deployment
    DaemonSet
    StatefulSet
    Job/CronJob
    HorizontalPodAutoscaler


控制器:ReplicationController、ReplicaSet  Deployment  

• Replication Controller:副本控制器,对选择器的支持为KV值,键值对为:等于或不等于(selector = !=)
• ReplicaSet:副本控制集,和副本控制器的区别是:对选择器的支持集合式(selector 还支持in  notin)。
• Deployment:比rs更高一级的控制器,除了有rs的功能之外,还有很多高级功能,,比如说最重要的:滚动升级、回滚等、扩容和缩容、暂停和继续Deployment

Deployment 提供了一种机制,方便用户通过自动(selector)的方式来管理 Pod 的生命周期,提供一种便捷的方式来解决应用的升级、回滚和扩容操作。
当我们期望对应用进行升级、回滚和扩容的时候,都会涉及到 Pod 的销毁和重建。在 Deployment 中可以描述我们期望 Pod 升级到的版本、回滚到的版本或者是期望扩容到的 Pod 的数量。
然后 Kubernetes 中的 Replication Controller 会执行我们的预期,让生产环境中的 Pod 状态和预期的状态一致

ReplicationController

#Replication Controller:副本控制器,对选择器的支持为KV值,键值对为:等于或不等于(selector = !=)

apiVersion: v1 kind: ReplicationController metadata: name: ng-rc namespace: linux39 spec: replicas: 2 selector: app: ng-rc-80 #KV值 #app1: ng-rc-81 template: metadata: labels: app: ng-rc-80 #app1: ng-rc-81 spec: containers: - name: ng-rc-80 image: nginx ports: - containerPort: 80

ReplicaSet

ReplicaSet:副本控制集,和副本控制器的区别是:对选择器的支持集合式(selector 还支持in  notin)。


#apiVersion: extensions/v1beta1
apiVersion: apps/v1 
kind: ReplicaSet
metadata:
  name: ng-rs
  namespace: linux39
spec:
  replicas: 3
  selector:
    #matchLabels:
    #  app: ng-rs-80
    matchExpressions:   
      - {key: app, operator: In, values: [ng-rs-80,ng-rs-81]}
  template:
    metadata:
      labels:
        app: ng-rs-80
    spec:  
      containers:  
      - name: ng-rs-80 
        image: nginx  
        ports:  
        - containerPort: 80

 

Deployment

Deployment:比rs更高一级的控制器,除了有rs的功能之外,还有很多高级功能,,比如说最重要的:滚动升级、回滚等、扩容和缩容、暂停和继续Deployment

#apiVersion: extensions/v1beta1 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: linux39 spec: replicas: 2 selector: #app: ng-deploy-80 #rc支持 #matchLabels: #rs or deployment # app: ng-deploy-80 matchExpressions: #app指的是template: metadata:labels:下的app,即ng-deploy-80的键。 #operator 关键字 #In 相当于变量,后面有值。 - {key: app, operator: In, values: [ng-deploy-80,ng-rs-81]} template: metadata: labels: app: ng-deploy-80 spec: containers: - name: ng-deploy-80 image: nginx ports: - containerPort: 80 # 这就是说明selector为什么要跟模板中的lables一样,起到描述要创建的pod的作用 # Deployment 可以把之前通过手动管理 Pod 的操作管理起来,然后通过 Replication Controller 来自动执行这些过程

 

标签:selector,ReplicaSet,rs,app,ng,Deployment,80,ReplicationController
From: https://www.cnblogs.com/Yuanbangchen/p/17188537.html

相关文章

  • Odoo Deployment Expert.
    OdooDeploymentExpert.  roadyoung请假设你是odoo部署专家,应用及开发工程师。 好的,作为Odoo部署专家、应用及开发工程师,我可以提供以下服务: Odoo部署:我可以帮助客......
  • k8s-deployment扩缩容
    目录手动扩缩容手动扩缩容1.kubectlscaledeploynginx--replicas=3#非交互2.kubectleditdeploynginx#交互式......
  • k8s-deployment回滚
    更新yaml文件镜像版本--模拟更新版本1.kubectlsetimagedeploynginxnginx=nginx:1.14.2--record#非交互2.kubectleditdeploynginx#交互式更改查看历史版......
  • Deployment
    Deployment部署(Deployment)是k8s中常用的资源之一,部署是无状态的,为一般性项目应用的主体,我们可以像声明docker-compose.yaml文件一样去定义容器的属性。内容介绍:Deployme......
  • Istio从入门到精通——Istio Deployment Models
    IstioDeploymentModelshttps://istio.io/latest/docs/ops/deployment/deployment-models/ WhenconfiguringaproductiondeploymentofIstio,youneedtoanswer......
  • Kubernetes(k8s)控制器(四):ReplicaSet
    目录一.系统环境二.前言三.ReplicaSet概览四.ReplicaSet工作原理五.ReplicaSet使用场景六.创建ReplicaSet七.扩展replicaset副本数一.系统环境服务器版本docker软件......
  • Kubernetes(k8s)控制器(三):ReplicationController
    目录一.系统环境二.前言三.ReplicationController概览四.ReplicationController工作机制五.创建ReplicationController六.扩展replicationcontroller副本数一.系统环境......
  • Kubernetes(k8s)控制器(一):deployment
    目录一.系统环境二.前言三.Kubernetes控制器四.Deployment概览五.创建deployment六.修改deploy副本数6.1kubectleditdeploy修改副本数6.2修改yaml文件更改副本数6.3......
  • 如何将deployment回滚到某个具体的历史版本?
    deployment在部署时,会创建RS(replicaset)对象,rs对象用于创建具体的pod. 所以,回滚deployment到某个历史的版本,就是回滚到具体的RS版本即可。 具体怎么来做呢? 1、查......
  • Deployment滚动更新
    创建Deploymentnginx-deployment.yamlapiVersion:apps/v1kind:Deploymentmetadata:name:nginx-deploymentspec:progressDeadlineSeconds:600replicas:1......