k8s的Pod控制器
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控制器的更多相关文章
- k8s之pod控制器
1.生产中,很少会跑一个自主式pod,一般由控制器去创建pod,其配置文件中内嵌了pod的创建方式. pod控制器:ReplicaSet.Deployment.DaemonSet.Job.Cronjo ...
- k8s 中 Pod 的控制器
k8s 中 Pod 的控制器 前言 Replication Controller ReplicaSet Deployment 更新 Deployment 回滚 deployment StatefulS ...
- k8s之pod与Pod控制器
k8s中最为重要的基础资源,pod,pod controller,service pod controller类型有多种需要向控制器赋值之后使用: kubectl命令使用 kubectk get no ...
- k8s学习笔记之六:Pod控制器(kube-controller-manager)
第一章.什么是kube-controller-manager? Controller Manager 由 kube-controller-manager 和 cloud-controller-mana ...
- Kubernetes学习之路(十二)之Pod控制器--ReplicaSet、Deployment
一.Pod控制器及其功用 Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试 进行重启,当根据重启策略无效,则会重新新建pod的资源. pod控制器 ...
- 还不会用 K8s 集群控制器?那你会用冰箱吗?(多图详解)
作者 | 阿里云售后技术专家 声东 导读:当我们尝试去理解 K8s 集群工作原理的时候,控制器(Controller)肯定是一个难点.这是因为控制器有很多,具体实现大相径庭:且控制器的实现用到了一些较 ...
- K8s无状态控制器原理介绍
Pod控制器: ReplicationController:早期K8s只有这一个控制器,但后来发现让这一个来完成所有任务,太复杂.因此被废弃. ReplicaSet: 它用于帮助用户创建指定数量的Po ...
- Kubernetes 学习8 Pod控制器
一.回顾 1.Pod是标准的kubernetes资源,因此其遵循为其资源清单配置定义的基本格式,包含:apiVersion,kind,metadata,spec,status(只读) 2.spec的内 ...
- Kubernetes 学习6 Pod控制器应用进阶
一.资源配置清单 1.自主式Pod资源 2.资源的清单格式,大多数清单格式都遵循如下条件: a.一级字段:apiVersion(group/version),kind,metadata(name,na ...
随机推荐
- EOS Bios Boot Sequence
EOS version:v1.0.5 Date:2018-06-19 Host: Centos 7 Reference :https://github.com/EOSIO/eos/wiki/Tutor ...
- JS高级学习历程-6
PHP菜鸟学习历程-6 [闭包案例] 1 闭包创建数组 <!DOCTYPE html> <html lang="en"> <head> < ...
- 牛客假日团队赛2 D.亲和数对
链接: https://ac.nowcoder.com/acm/contest/924/D 题意: 求在给定区间[start,end]内所有的亲和数对. 亲和数的定义:对于数对(A,B),如果A的除了 ...
- 湖南大学新生赛C,G,J题解
C: 思路:做几组数据就基本能发现规律,奇数为-1,偶数为1 代码: #include<cstdio> #include<iostream> #include<cstri ...
- (转)AIX 中 Paging Space 使用率过高的分析与解决
AIX 中 Paging Space 使用率过高的分析与解决 原文:https://www.ibm.com/developerworks/cn/aix/library/au-cn-pagingspac ...
- 第二十章 排查和调试Web程序 之 设计异常处理策略
1. 概述 本章内容包括: 多层架构中的异常处理.使用global.asax 或 自定义的HttpHandler 或 web.config中的属性来显示特定的错误页.处理 first chance 异 ...
- jdk动态代理和cglib动态代理的区别
一.原理区别: java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理. 而cglib动态代理是利用asm开源包,对代理对象类的class文件 ...
- 3、HTTP content-type
HTTP content-type Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式.什么编码读取这个文件, ...
- (2017.10.10) 我对 JavaScript 历史的认识
关于 JavaScript 的历史和来由相信学过 JavaScript 的小伙伴都能说出一二.我看过一些入门书籍第一章或者前言部分都有介绍,但是一直没捋清这段历史.今天通过两个问题,来加深我对 Jav ...
- 常用浏览器User-Agent大全
=======================PC浏览器======================== OperaMozilla/5.0 (Windows NT 6.1; WOW64) AppleW ...