kubernetes核心概念 controller 介绍(上)

kubernetes核心概念 Controller

一、pod控制器controller

1.1 Controller作用及分类

controller用于控制pod

控制器主要分为:

  • Deployments:Deployment是管理应用副本的API对象。管理员只需要在Deployment中描述期望的状态,Deployment就能根据一定的策略将ReplicaSet与Pod更新到管理员预期的状态。Deployment提供了运行Pod的能力,并且为Pod提供滚动升级、伸缩、副本等功能,一般用于运行无状态的应用
  • ReplicaSet :副本集,控制pod扩容,裁减
  • StatefulSets:StatefulSet用来管理一组Pod集合的部署和扩缩容,并为这些Pod提供持久化存储和持久化标识符。与Deployment不同的是,StatefulSet为每个Pod维护了一个固定的ID。这些Pod是基于相同的模板来创建的,但是不能相互替换,无论怎么调度,每个Pod都有一个固定的ID比如部署mysql,kafka等
  • DaemonSet:DaemonSet确保全部Node上运行一个Pod的副本。当有Node加入集群时,会自动为它们新增一个Pod;当有Node从集群移除时,这些Pod也会被回收。删除DaemonSet将会删除它创建的所有Pod
  • Jobs:Job负责批量处理短暂的一次性任务,即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束。
  • Cronjob:CronJob负责周期性的处理任务,根据Cron表达式定时执行Job。

1.2 Deployment

1.2.1 Replicaset控制器的功能

  • 支持新的基于集合的selector(以前的rc里没有这种功能)
  • 通过改变Pod副本数量实现Pod的扩容和缩容

1.2.2 Deployment控制器的功能

  • Deployment集成了上线部署、滚动升级、创建副本、回滚等功能
  • Deployment里包含并使用了ReplicaSet

1.2.3 Deployment用于部署无状态应用

1.2.4 创建deployment类型应用

1, 准备YAML文件

[root@k8s-master1 ~]# vim deployment-nginx.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deploy-nginx                    # deployment名
spec:                           
  replicas: 1                                   # 副本集,deployment,pod的个数里使用了replicaset
  selector:
    matchLabels:
      app: nginx                                # 匹配的pod标签,表示deployment和rs控制器控制带有此标签的pod
  template:                                         # 代表pod的配置模板
    metadata:
      labels:
        app: nginx                              # pod的标签
    spec:
      nodeName: k8s-worker01                    # 调度到k8s-worker1节点
      containers:                               # 以下为pod里的容器定义
      - name: nginx
        image: nginx:1.19.6
        imagePullPolicy: IfNotPresent          #先使用本地镜像,在下载镜像
        ports:
        - containerPort: 80
        resources:                            #内存限制
          limits:
            memory: "200Mi"                   
          requests:
            memory: "100Mi"
        livenessProbe:
          httpGet:                          # 使用httpGet方式
            port: http                      # http协议,也可以直接写80端口
            path: /index.html               
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值