1.pod控制器类别

ReplicaSetdeployment  次要 Horizontal Pod Autoscaler (hpa) 高可用  实现削峰填谷 DaemonSet 守护进厂类的工作Job 执行一次工作,执行完之后就完结Cronjob 周期性的执行工作StatefulSet 治理有状态利用

2.具体控制器

------------------------------------------------pod控制器------------------------------------------------------replicasetapiVersion: apps/v1kind: ReplicaSetmetadata:    name: myrs    namespace: dev    labels:      controller: rsspec:    replicas: 3    selector:        matchLabels:           app: nginx-pod       matchExpressions:       - {key: app,operator: In, Values: [nginx-pod]}    template:      metadata:        labels:            app: nginx-pod        spec:           containers:           - name: nginx             image: nginx:1.17.1             ports:              - containerPort: 80--------------------------------------------             apiVersion: apps/v1kind: ReplicaSetmetadata:  name: my-rs  namespace: devspec:  replicas: 3  selector:    matchLabels:      app: nginx-pod  template:    metadata:      labels:        app: nginx-pod    spec:         containers:        - name: my-nginx          image: nginx--------------------------------------------    [root@node1 ~]# kubectl get rs -n dev -o wideNAME                 DESIRED   CURRENT   READY   AGE     CONTAINERS   IMAGES   SELECTORmy-rs                3         3         3       3m34s   my-nginx     nginx    app=nginx-pod--------------------------------------------[root@node1 ~]# kubectl get pod -n devNAME                       READY   STATUS    RESTARTS   AGEmy-rs-6wbdd                1/1     Running   0          5mmy-rs-cs6nr                1/1     Running   0          5mmy-rs-hzncc                1/1     Running   0          5m--------------------------------------------rs 扩缩容kubectl edit rs my-rs -n dev  批改replicas即可kubectl scale rs my-rs --replicas=2 -n dev--------------------------------------------镜像版本升级kubectl edit rs my-rs -n dev  批改imagekubectl set image rs my-rs my-nginx=nginx:1.18.0 -n dev删除rskubectl delete rs my-rs -n dev  #首先把正本数设置成0,而后再删除kubectl delete rs my-rs -n dev --cascade=false #只删除控制器,不删除podkubectl delete -f my-rs.yaml ---------------deployment反对replicaset的所有性能反对版本回滚和版本回退apiVersion: apps/v1kind: Deploymentmetadata:   name: mynginx  namespace: devspec:  replicas: 3  selector:     matchLabels:      run: nginx  template:    metadata:      labels:        run: nginx    spec:       containers:       - image: nginx         imagePullPolicy: IfNotPresent         name: nginx         ports:          - containerPort: 80           protocol: TCPkubectl apply -f yaml-nginx-deploy.yamlkubectl delete -f yaml-nginx-deploy.yaml查问对应的rs: [root@node1 ~]# kubectl get rs -n dev -o wideNAME                 DESIRED   CURRENT   READY   AGE     CONTAINERS   IMAGES   SELECTORmynginx-869c47cdd9   3         3         3       3m32s   nginx        nginx    pod-template-hash=869c47cdd9,run=nginx扩缩容:    kubectl scale deploy my-nginx --replicas=5 -n dev    kubectl edit deploy my-nginx -n dev    [root@node1 ~]# kubectl scale deploy mynginx --replicas=5 -n dev    deployment.apps/mynginx scaled        kubectl edit deploy mynginx -n dev      批改replicas 镜像降级:    重建更新:    滚动更新:(默认滚动更新) 新的起来了之后,旧的才会进行    -----    spec:         strategy:             type: Recreate     -----    spec:         strategy:             type: RollingUpdate            maxUnavailable: 25%            maxSurge: 25%                    kubectl set image deploy mynginx nginx=nginx -n dev            kubectl get pod -n dev -w         滚动更新 镜像降级,创立新的rs,原来的rs会进行保留,成为上一个版本        版本回退    kubectl rollout     status history pause resume  restart undo         查看状态    [root@node1 ~]# kubectl rollout status deploy mynginx -n dev    Waiting for deployment "mynginx" rollout to finish: 1 out of 2 new replicas have been updated...    Waiting for deployment "mynginx" rollout to finish: 1 out of 2 new replicas have been updated...    Waiting for deployment "mynginx" rollout to finish: 1 out of 2 new replicas have been updated...    Waiting for deployment "mynginx" rollout to finish: 1 old replicas are pending termination...    Waiting for deployment "mynginx" rollout to finish: 1 old replicas are pending termination...    deployment "mynginx" successfully rolled out        查看历史    kubectl rollout history deploy mynginx -n dev    kubectl apply -f yaml-nginx-deploy.yaml --record        查看历史    [root@node1 ~]# kubectl rollout history deploy mynginx -n dev    deployment.apps/mynginx     REVISION  CHANGE-CAUSE    1         <none>    2         <none>    //回退版本to-revision 指定版本    [root@node1 ~]#     [root@node1 ~]#     [root@node1 ~]# kubectl rollout undo deployment mynginx --to-revision=1 -n dev金丝雀公布    中间状态:灰度公布         kubectl set image deploy mynginx nginx=nginx:1.17.4 -n dev && kubectl rollout pause deploy mynginx -n dev            --------------------------------------------------hpa------------------------------------------Horizontal Pod Autoscaler手动调整改为主动调整,须要计算负载量须要装置监控  Metrics-serverkubectl top node  查看资源应用信息apiVersion: autoscaling/v1kind: HorizontalPodAutoscalermetadata:    name: my-hpa    namespace: devspec:    minReplicas: 1    maxReplicase: 10    targetCPUUtilizationPercentage: 3    scaleTargeRef:       apiVersion: apps/v1       kind: Deployment       name: mynginx--------------------------------------------------hpa------------------------------------------网络局部cni--------------------------------------------------DaemonSet(ds)------------------------------------------保障集群中每个节点运行一个pod每增加一个node,就会主动运行pod其yaml格局同deploy--------------------------------------------------DaemonSet--------------------------------------------------------------------------------------------job------------------------------------------批量解决一次性工作job对应的pod的重启策略为Never,或者OnFailure次要的配置项:manualSelector: truecompletions: 6 #指定运行的pod总数parallelism:3 #并发执行总数--------------------------------------------------Cronjob------------------------------------------job工作创立之后立即执行cronjob以job为治理对象,相似cron表达式 在指定的工夫点执行工作,反复运行schedule:                         cron表达式,最短时间为分钟concurrencyPolicy:                并发执行工作,前一次工作没有实现,是否执行下一次工作, Allow 容许(默认)  Forbid 禁止  Replace 替换,勾销以后的工作,执行新的工作failedJobHistoryLimit:            为失败的工作保留的历史记录数目successfulJobHistoryLimit:      为胜利的工作保留历史记录数目startingDeadlineSeconds:        启动工作谬误的超时工夫jobTemplate: