pod的配置清单常见选项:

      apiVersion,kind,metadata,spec,status(只读)
spec:
containers:
nodeSelector:
nodeName:
restartPolicy:
Always,Never, OnFailure
containers:
name
image
imagePullPolicy: Always,Never,IfNotPresent
ports:
name:
containerPort
livenessProbe
readinessProbe
lifecycle
ExecAction: exec
TCPSocketAction: tcpSocket
HTTPGetAction:httpGet

pod控制器:
    ReplicaSet:通常管理无状态pod,带用户创建指定数量的pod副本,并确保pod副本一直处于满足用户期望数量的状态。 多退少补,并且支持扩缩容    
    ReplicaSet:常用的3个组件;1,用户期望的副本数。2,标签选择器,以便选择自己管控的pod副本。3,pod资源模板,通过标签选择器选定的pod副本数少于用户所期望,则引用pod的资源模板来创建。
    Deployment:Deployment-->ReplicaSet-->pod
    DaemonSet:可以保证每一个node节点上只运行指定的某1个pod,例如:日志收集器,filebeat,没必要运行多个agant副本。通常运行一些系统级的pod任务。
    Job:临时一次性作业,可以用户指定的数量启动指定数量的pod副本,pod是否重启取决于job任务是否完成
    Cronjob:周期性计划作业
    StartfulSet:有状态的任务,通常用来做存储。极其困难的。
    TPR:Third Party Resources,1.2+,1.7
    CDR:Custom Defined Resources,1.8+

kubectl explain deploy.spec.strategy.rollingUpdate.maxSurge  :用来滚动更新,更新过程中最多可以超出默认副本数的几个
kubectl explain deploy.spec.strategy.rollingUpdate.maxUnavailable :最多可以几个不可用
kubectl explain deploy.spec.revisionHistoryLimit :我们再更新后,最多保留多少个历史版本。

deployment会自动创建replicaSet,replicaSet创建pod

deployment的升级:
   1.直接修改deployment的yaml文件,然后apply
   2.使用kubectl patch deploy/myapp-deploy -p '{""}' json格式给yaml文件打补丁。
   3.使用kubectl edit deploy/myapp-deploy
   4.kubectl set image deploy/myapp-deploy myapp=ikubernetes/myapp:v3 && kubectl rollout pause deploy/myapp-deploy   使用kubectl get pods -w可以监视过程
   4.上面是金丝雀发布,测试可以的话可以继续更新:kubectl rollout resume deploy/myapp-deploy  使用:kubectl rollout status deploy/myapp-deploy 也可以监控更新过程
   5.kubectl rollout undo deploy/myapp-deploy可以回滚到上个版本。
例:
kubectl patch deploy/myapp-deploy -p '{"spec":{"replicas":5}}'
kubectl patch deploy/myapp-deploy -p '{"spec":{"strategy":{"rollingUpdate":{"maxSurge":1,"maxUnavailable":0}}}}'

deployment的yaml文件例子

 apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deploy
namespace: default
spec:
replicas:
selector:
matchLabels:
app: myapp
release: canary
template:
metadata:
labels:
app: myapp
release: canary
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v2
ports:
- name: http
containerPort:

k8s的Pod控制器的更多相关文章

  1. k8s之pod控制器

    1.生产中,很少会跑一个自主式pod,一般由控制器去创建pod,其配置文件中内嵌了pod的创建方式. pod控制器:ReplicaSet.Deployment.DaemonSet.Job.Cronjo ...

  2. k8s 中 Pod 的控制器

    k8s 中 Pod 的控制器 前言 Replication Controller ReplicaSet Deployment 更新 Deployment 回滚 deployment StatefulS ...

  3. k8s之pod与Pod控制器

    k8s中最为重要的基础资源,pod,pod controller,service pod controller类型有多种需要向控制器赋值之后使用: kubectl命令使用 kubectk get no ...

  4. k8s学习笔记之六:Pod控制器(kube-controller-manager)

    第一章.什么是kube-controller-manager? Controller Manager 由 kube-controller-manager 和 cloud-controller-mana ...

  5. Kubernetes学习之路(十二)之Pod控制器--ReplicaSet、Deployment

    一.Pod控制器及其功用 Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试 进行重启,当根据重启策略无效,则会重新新建pod的资源. pod控制器 ...

  6. 还不会用 K8s 集群控制器?那你会用冰箱吗?(多图详解)

    作者 | 阿里云售后技术专家 声东 导读:当我们尝试去理解 K8s 集群工作原理的时候,控制器(Controller)肯定是一个难点.这是因为控制器有很多,具体实现大相径庭:且控制器的实现用到了一些较 ...

  7. K8s无状态控制器原理介绍

    Pod控制器: ReplicationController:早期K8s只有这一个控制器,但后来发现让这一个来完成所有任务,太复杂.因此被废弃. ReplicaSet: 它用于帮助用户创建指定数量的Po ...

  8. Kubernetes 学习8 Pod控制器

    一.回顾 1.Pod是标准的kubernetes资源,因此其遵循为其资源清单配置定义的基本格式,包含:apiVersion,kind,metadata,spec,status(只读) 2.spec的内 ...

  9. Kubernetes 学习6 Pod控制器应用进阶

    一.资源配置清单 1.自主式Pod资源 2.资源的清单格式,大多数清单格式都遵循如下条件: a.一级字段:apiVersion(group/version),kind,metadata(name,na ...

随机推荐

  1. windows 查看端口占用(转)

    开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选&qu ...

  2. excel 公式2列合并

    =A2&"="&C2 ="UPDATE comm_department SET parent_id='"&D2&"' ...

  3. 链家H5项目总结

    在此次项目中,使用的是高度百分比.对于适配这一块确实少了很多. 1.如果是用高度百分比的话.则img需要写成这样的样式. img{ width:auto; height:100%; display: ...

  4. 在线获取键盘按键值(ascii码)工具

    在线获取键盘按键值(ascii码)工具 http://www.bejson.com/othertools/keycodes/ 可以根据输入的值获取对应的键盘ascii码值

  5. HDU-3072-IntelligenceSystem(tarjan,贪心)

    链接:https://vjudge.net/problem/HDU-3072 题意: 给你n个点,1个点到另一个点连接花费c,但是如果几个点可以相互可达,则这几个点连通花费为0. 求将整个图连通的最小 ...

  6. c++11 thread的学习

    http://www.cnblogs.com/wxquare/p/6736202.html 还没开始 留个链接 使用c++11 thread支持实现  一个生产者消费者模型 下面是一个生产者消费者问题 ...

  7. JavaSE---jar文件

    1.当一个应用程序开发完成后,大致有3种方式发布: 1.1 使用平台相关的编译器将整个应用编译成平台相关的可执行文件: 1.2 为整个应用编辑一个批处理文件: 1.3 将应用程序制作为一个可执行的ja ...

  8. 038 Count and Say 数数并说

    数数并说序列是一个整数序列,第二项起每一项的值为对前一项的计数,其前五项如下:1.     12.     113.     214.     12115.     1112211 被读作 " ...

  9. Ubuntu 18.04 Python3.6.6导入wx模块报Gtk-Message : 17:06:05.797 :Failed to load module "canberra-gtk-module"

    解决办法: root@sishen:~# apt-get install libcanberra-gtk-module

  10. js获取ISO8601规范时间

    var d = new Date(); d.setHours(d.getHours(), d.getMinutes() - d.getTimezoneOffset()); console.log(d. ...