k8s-控制器deployment弹性扩容,更新镜像,回滚,DaemonSet,StatufluSet
1、控制器deployment,DaemonSet,StatufluSet
k8s中控制器分为:deployment、DaemonSet、StatufluSet
Deployment:一般用来部署长期运行的、无状态的应用
特点:集群之中,随机部署
DaemonSet:每一个节点上部署一个Pod,删除节点自动删除对应的POD(zabbix-agent)
特点:每一台上有且只有一台
StatudfluSet: 部署有状态应用
特点:有启动顺序
查看控制器:
kubectl get deployments
kubectl get daemonsets
kubectl get statefulsets
删除控制器:
kubectl delete deployments 名字
kubectl delete daemonsets 名字
kubectl delete statefulsets 名字
2、控制器-deployment
deployment.yaml
replicas: 1 决定pod部署的数量
Deploymnet:在Deployment对象中描述所需的状态,然后Deployment控制器将实际状态以受控的速率更改为所需的状态。
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment
spec:
replicas: 1 # pod数量
selector: # 选择器
matchLabels: # 标签
release: stable # 选择标签
template: # 模版
metadata:
name: test-tag # 控制器名字
labels:
release: stable # 设置控制器标签
spec:
containers:
- name: nginx # 镜像名称
image: nginx # 镜像
弹性扩容
方式1-修改配置清单
kubectl edit 资源类型 资源名称
[root@sg-14 k8s_yaml]# kubectl edit deployments test
修改replicas数量:
replicas: 2
方式2-打标签
[root@sg-14 k8s_yaml]kubectl patch deployments.apps test -p '{"spec":{"replicas":1}}'
方式3-scale
kubectl scale 资源类型/资源名称 --replicas=10
[root@sg-14 k8s_yaml]# kubectl scale deployment/test --replicas=10
更新镜像
方式1:打标签
一层层的按照yaml写
[root@k8s-m-01 ~]# kubectl patch deployments.apps django -p '{"spec":{"template":{"spec":{"containers":[{"image":"nginx:1.18.0", "name":"nginx"}]}}}}'
方式2:修改配置清单
[root@sg-14 k8s_yaml]# vi test.yaml
image: nginx-lalal
#######
修改镜像版本
#######
kubectl apply test.yaml //重新部署下
方式3:设置镜像
kubectl set image 资源类型/资源名称 镜像名字=镜像版本
[root@k8s-m-01 ~]# kubectl set image deployment/django nginx=nginx:1.16.0
方式4:修改edit
kubectl edit [资源类型] [资源名称]
[root@sg-14 k8s_yaml]# kubectl edit deployments test
找到-image修改
回滚
kubectl rollout undo [资源类型] [资源名称]
kubectl rollout history deployment test // 版本历史
kubectl rollout undo deployment test // 回滚上一个版本
kubectl rollout undo deployment test --to-revision=1 // 回滚指定版本
3、控制器-DaemonSet
daemonset.yaml
# 在集群中所有的节点上部署只部署一个Pod,新加入的node节点也会部署一个
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: zabbix-agent
spec:
selector:
matchLabels:
app: zabbix-agent
template:
metadata:
labels:
app: zabbix-agent
spec:
containers:
- name: nginx
image: nginx
修改配置文件daemonset
1、修改配置文件
[root@k8s-m-01 ~]# kubectl edit daemonsets.apps zabbix-agent
2、打标签的方式
[root@k8s-m-01 ~]# kubectl patch daemonsets.apps zabbix-agent -p '{"spec":{"template":{"spec":{"containers":[{"image":"zabbix/zabbix-agent:centos-5.2.4", "name":"zabbix-agent"}]}}}}'
daemonset.apps/zabbix-agent patched
3、设置镜像
[root@k8s-m-01 ~]# kubectl set image daemonset/zabbix-agent zabbix-agent=zabbix/zabbix-agent:centos-5.2.3
daemonset.apps/zabbix-agent image updated
回滚
## 回滚到上一个版本
[root@k8s-m-01 ~]# kubectl rollout undo daemonset zabbix-agent
daemonset.apps/zabbix-agent rolled back
## 回滚到指定版本
[root@k8s-m-01 ~]# kubectl rollout undo daemonset zabbix-agent --to-revision=1
daemonset.apps/zabbix-agent rolled back
4、StatudfluSet
k8s-控制器deployment弹性扩容,更新镜像,回滚,DaemonSet,StatufluSet的更多相关文章
- Docker Kubernetes 容器更新与回滚
Docker Kubernetes 容器更新与回滚 环境: 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 管理节点:192.168.1.79 ...
- Kubernetes:更新与回滚
Blog:博客园 个人 除了创建,Deployment 提供的另一个重要的功能就是更新应用,这是一个比创建复杂很多的过程.想象一下在日常交付中,在线升级是一个很常见的需求,同时应该尽量保证不能因为升级 ...
- Docker Swarm(八)滚动更新、回滚服务
滚动更新.回滚服务 默认情况下, swarm一次只更新一个副本,并且两个副本之间没有等待时间,我们可以通过: # 定义并行更新的副本数量--update-parallelism# 定义滚动更新的时间间 ...
- deployment控制pod进行滚动更新以及回滚
更新pod镜像两种方式: 方式一:kubectl set image deployment/${deployment name} ${container name}=${image} 例: kubec ...
- linux运维、架构之路-K8s滚动更新及回滚
一.滚动更新 应用程序一次只更新一小部分副本,更新成功后,再更新更多的副本,最终完成所有副本的更新. 滚动更新的优点:零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 1. ...
- 9.2 k8s结合Jenkins与gitlab实现代码升级与回滚
1.部署Jenkins 1.1 安装jdk # apt 安装jdk11 apt install openjdk-11-jdk # 查看 root@jenkins:~# java -version op ...
- k8s学习笔记(3)- kubectl高可用部署,扩容,升级,回滚springboot应用
前言:上一篇通过rancher管理k8s,部署服务应用扩容,高可用,本篇介绍kubectl命令行部署高可用集群节点,测试升级.扩容等 1.测试环境:3节点k3s,使用其中2节点(ubuntunode1 ...
- docker swarm实现java项目的发布/滚动更新/回滚/镜像管理
使用docker swarm滚动更新java项目,部署集群,这一切的前提是使用Jenkins+maven进行项目打包,分发等功能 具体可以参考我的另外三篇文章 https://www.cnblogs. ...
- Docker & Kubenetes 系列四:集群,扩容,升级,回滚
本篇将会讲解应用部署到Kubenetes集群,集群副本集查看,集群自愈能力演示,集群扩容,滚动升级,以及回滚. 本篇是Docker&Kubenetes系列的第四篇,在前面的篇幅中,我们向Kub ...
随机推荐
- Serverless 架构下的服务优雅下线实践
作者 | 行松 阿里巴巴云原生团队 应用发布.服务升级一直是一个让开发和运维同学既兴奋又担心的事情. 兴奋的是有新功能上线,自己的产品可以对用户提供更多的能力和价值:担心的是上线的过程会不会出现意外情 ...
- 纯前端H5小应用_localStorage存储
开发缘由[需求发现和分析] 想要送朋友一个礼物,但是想了想,街上买的东西,em~,我们这样的猿确实不会选礼物啊,由此就想利用自己手中的工具和知识做点有用的东西吧,抱枕是礼物,钢笔是礼物,电子产品也是礼 ...
- Frida高级逆向-Hook Native(Java So)2
Frida Hook So 一些操作说明 Native方法第一个参数是 JNIEnv *env 如何在Frida中获取 JNIEnv 对象呢? Java.vm.getEnv(); 如何将string类 ...
- 爬虫逆向基础,理解 JavaScript 模块化编程 webpack
关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶.JS/安卓逆向等技术干货! 简介 在分析一些站点的 JavaScript 代码时,比较简单的代码,函数通常都是一个一个的,例 ...
- python jinja2初见
吸取了长城杯的教训,学习python-web迫在眉睫. 正常难度的python_template_injection,由于现在没学面向对象,理解原理比较困难,所以先使用简单版复现:并附上正常版的常用p ...
- 【数据结构与算法Python版学习笔记】图——基本概念及相关术语
概念 图Graph是比树更为一般的结构, 也是由节点和边构成 实际上树是一种具有特殊性质的图 图可以用来表示现实世界中很多有意思的事物,包括道路系统.城市之间的航班.互联网的连接,甚至是计算机专业的一 ...
- gson中TypeAdapter实现自定义序列化操作
最近在项目中遇到这么一个问题,我们后台需要向前端返回一个 json 数据,就是将一个地理位置对象以json的格式返回到前台,但是这个地理位置对象中的经纬度是Double数据类型,项目中规定,如果经纬度 ...
- Docker制作能够ssh连接的镜像
本类文章只作为记录使用 命令操作: #拉取Centos 7 docker pull centos:7 #运行一个镜像 docker run -tdi --privileged centos:7 ini ...
- NB-IoT的DRX、eDRX、PSM三个模式怎么用?通俗解释,看完就懂!
面我们讲了不少NB-IOT的应用.软件和硬件设计的变动. (链接在文章末尾). 今天讲讲NB-IoT的三大模式,在各种物联网和智能硬件场景中的使用方法 DRX.eDRx.PSM是什么? DRX虽然叫做 ...
- (类)Program1.1
1 class MyClass: 2 3 i = 12345 4 5 def __init__(self): 6 self.data = "WOOWOWOWO" 7 8 def f ...