当前位置: 首页 > news >正文

【K8s】K8s控制器——复制集和deployment

高效、可靠地管理多个相同的容器应用,实现应用的自动扩缩容、故障恢复和版本升级

1、复制集

如果某个 Pod 挂了(比如容器崩溃、节点宕机),ReplicaSet 会​​自动创建一个新的 Pod 替补​​,始终确保 Pod 数量 = 你定义的 replicas 值。

2、deployment

  • 通过管理 ReplicaSet 来间接控制 Pod​​(你一般不直接操作 ReplicaSet,而是通过 Deployment 来操作);

  • ​支持滚动更新(平滑升级镜像版本,不停机)​

  • ​支持回滚(升级失败时快速回到旧版本)​

  • ​支持扩缩容(一键调整 Pod 数量)​

  • ​支持版本历史记录(查看每次变更,方便审计和回退)​

#- 8.1 # 创建复制集

定义yaml文件,这是一种声明式编程

cat > rs.yml <<EOF
apiVersion: apps/v1
kind: ReplicaSet
metadata:name: nginxrstestlabels:app: nginxrstest
spec:replicas: 3selector:matchLabels:app: nginxrstesttemplate:metadata:labels:app: nginxrstestspec:containers:- name: nginximage: nginxports:- name: httpcontainerPort: 80imagePullPolicy: IfNotPresent
EOF

创建复制集

kubectl create -f rs.yml 

查看复制集

kubectl get replicasets.apps,pods -o wide

删除复制集

kubectl delete replicasets nginxrstest


#- 8.2 #创建deployment

cat > deployment.yml <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
EOF

kubectl create -f deployment.yml
kubectl get deployments.apps,replicasets.apps,pods -l app=nginx


#- 8.3 # 升级

kubectl set image deployments/nginx-deployment nginx=nginx:1.16.1 --record
kubectl rollout status deployment/nginx-deployment

kubectl get deployments.apps,replicasets.apps,pods -l app=nginx


#- 8.4 #  回滚

kubectl set image deployments/nginx-deployment nginx=nginx:1.161 --record 
kubectl rollout status deployment/nginx-deployment

kubectl rollout history deployments/nginx-deployment
kubectl rollout history deployment.v1.apps/nginx-deployment --revision=3

kubectl rollout undo deployments/nginx-deployment --to-revision=2
kubectl rollout status deployment/nginx-deployment
kubectl get deployments.apps,replicasets.apps,pods -l app=nginx


#- 8.5 # 扩容

kubectl scale deployments/nginx-deployment --replicas=5
kubectl get deployments.apps,replicasets.apps,pods -l app=nginx

kubectl delete deployments.apps nginx-deployment
kubectl get deployments.apps,replicasets.apps,pods -l app=nginx

http://www.lryc.cn/news/619055.html

相关文章:

  • 【SpringBoot】08 容器功能 - SpringBoot底层注解汇总大全
  • 4.运算符
  • [激光原理与应用-254]:理论 - 几何光学 - 自动对焦在激光器中的应用?
  • vivo Pulsar 万亿级消息处理实践(2)-从0到1建设 Pulsar 指标监控链路
  • 【微服务过度拆分的问题】
  • web服务器tomcat内部工作原理以及样例代码
  • Airtable 入门指南:从创建项目到基础数据分析与可视化
  • C++中类之间的关系详解
  • LangChain 入门学习
  • 【限时分享:Hadoop+Spark+Vue技术栈电信客服数据分析系统完整实现方案
  • Docker概述与安装Dockerfile文件
  • Docker使用----(安装_Windows版)
  • 第二章:核心数据结构与面向对象思想之接口的奥秘
  • 3 Abp 核心框架(Core Framework)
  • Milvus 结合极客天成 NVFile 与 NVMatrix 实现高性能向量存储
  • LDAP 登录配置参数填写指南
  • 【VB.NET快乐数】2022-10-17
  • (树形 dp、数学)AT_dp_v Subtree 题解
  • 5年保留期+4次补考机会,灵活通关的申研机制
  • 【CV 目标检测】②——NMS(非极大值抑制)
  • git+lfs 如何安装
  • 股票智能体系统的设计与开发
  • Vue3 组合式API vs 选项式API:深度对比与最佳实践
  • SQL连接操作全解析:从入门到精通
  • 自动驾驶决策算法 —— 有限状态机 FSM
  • 基于SpringBoot的旅游网站系统
  • Jenkins + SonarQube 从原理到实战三:SonarQube 打通 Windows AD(LDAP)认证与踩坑记录
  • Linux内核进程管理子系统有什么第二十六回 —— 进程主结构详解(22)
  • 基于51单片机RFID智能门禁系统红外人流量计数统计
  • 【K8s】K8s控制器——Deamonset、Statefulset、Job与CronJob