Kubernetes中内建了很多controller(控制器),这些相当于一个状态机,用来控制Pod的具体状态和行为
    1、Deployment:适合无状态的服务部署
    2、StatefullSet:适合有状态的服务部署
    3、DaemonSet:一次部署,所有的node节点都会部署,例如一些典型的应用场景:

    • 运行集群存储 daemon,例如在每个Node上运行 glusterd、ceph
    • 在每个Node上运行日志收集 daemon,例如 fluentd、 logstash
    • 在每个Node上运行监控 daemon,例如 Prometheus Node Exporter

    4、Job:一次性的执行任务
    5、Cronjob:周期性的执行任务

    1. deployment
      1. 副本 replicas 去设置启动多个少实例
      2. spec: 设置容器相关的信息: 镜像,cpu设置多少, 端口映射、 挂载
      3. 更新策略:
        1. 我升级版本了。 如果我停掉之前的版本,然后上线新的版本, 有一段时间服务不可用
        2. 滚动更新就可以不用停止服务
    2. 如何获取某个pod的deployment

      1. kubectl get deployments --namespace=shop -l "app=user-service" -o yaml > ./user-service.yaml
    3. 官方文档

    https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/