K8s:无状态

无状态服务

无状态服务是指服务的实例之间没有持久化状态,每个实例都是相同的,可以互换使用。

调度器

ReplicationController

简称 RC是 Kubernetes 早期版本中用来确保 Pod 副本始终运行的 API 对象。它通过监控 Pod 副本的数量,确保任何时候都有指定数量的 Pod 副本始终运行。即如果有容器异常退出,会自动创建新的 Pod 来替代;而异常多出来的容器也会自动回收。

确保健康 Pod 的数量、弹性伸缩、滚动升级以及应用多版本发布跟踪等。

特点

  • 确保 Pod 副本始终运行。
  • 可以进行滚动更新。
  • 在较新版本的 Kubernetes 中,ReplicaSet 已经取代了 ReplicationController

示例

apiVersion: v1
kind: ReplicationController
metadata:name: my-replicationcontroller
spec:replicas: 3selector:app: myapptemplate:metadata:labels:app: myappspec:containers:- name: myapp-containerimage: myapp:1.0.0

ReplicaSet

RS,ReplicaSet 保证 Pod 的副本数不变,并且能够处理 Pod 模板的更新。

特点

  • ReplicationController 类似,但更通用。
  • 支持基于集合的选择器(如 key in (value1, value2))。
  • 推荐用于替代 ReplicationController

示例

apiVersion: apps/v1
kind: ReplicaSet
metadata:name: my-replicaset
spec:replicas: 3selector:matchLabels:app: myapptemplate:metadata:labels:app: myappspec:containers:- name: myapp-containerimage: myapp:1.0.0

Deployment

Deployment 是一种更高级的 API 对象,用于声明 Pod 和 ReplicaSet 的声明周期管理。Deployment 控制器负责 Pod 副本的声明式更新,可以自动替换 Pod 模板中的镜像或其他定义。

API版本:apps/v1

特点

  • 提供应用的声明式更新能力。
  • 支持回滚和暂停更新。
  • 可以查看 Deployment 的状态,如更新进度、修订版本等。
  • 是管理无状态应用的标准方式。

示例

apiVersion: apps/v1
kind: Deployment
metadata:name: my-deployment
spec:replicas: 3selector:matchLabels:app: myapptemplate:metadata:labels:app: myappspec:containers:- name: myapp-containerimage: myapp:1.0.0

比较

  • 功能Deployment 提供了比 ReplicaSetReplicationController 更丰富的功能,如自动滚动更新、回滚等。
  • 选择器ReplicaSet 支持集合选择器,而 ReplicationController 只支持等值选择器。
  • 推荐使用:在新的 Kubernetes 应用中,推荐使用 Deployment 来管理无状态应用的声明周期,使用 StatefulSet 来管理有状态应用。
$ kubectl apply -f exampleDeploymentv1.yml --record

参数–record,这样会把每次修改Deployment控制器时所使用的命令记录到备注字段中,以便在查看Deployment控制器变更历史或进行回滚时可以辨别每次修改的内容。

deployment的yaml模板

apiVersion: apps/v1
kind: Deployment
metadata:name: String            #元数据,必填,Deployment控制器的名字namespace: String       #元数据,Deployment控制器的命名空间labels:                 #元数据,标签列表key: value            #元数据,可定义多个标签的键/值对annotations:            #元数据,自定义注解列表key: value            #元数据,可定义多个注解的键/值对
spec:selector:#必填,用于指定此Deployment控制器针对的Pod的标签选择器,需要与template中的标签匹配matchLabels:          #定义需要匹配的标签集合key: value          #需要匹配的标签,可定义多个标签的键/值对template: [PodTemplate] #必填,Pod模板,它与Pod具有完全相同的结构,不过它是嵌套的,#而且不需要带apiVersion或kind字段replicas: int           #指定所需Pod的数量,默认为1strategy:               #更新时替换旧Pod的策略type: Recreate/RollingUpdate     #Recreate表示所有现有的Pod都会在创建新的Pod之前被#终止,RollingUpdate表示以滚动更新方式更新PodrollingUpdate:maxSurge: int/int%           #在滚动更新时,在所需数量的Pod上允许创建的最大Pod数,#这个数字也可以为百分比形式maxUnavailable: int/int%     #在滚动更新时,同时存在最大不可用Pod数,#这个数字也可以为百分比形式progressDeadlineSeconds: int  #Deployment控制器处于进行状态时的等待秒数,超过这个时间将会变为失败minReadySeconds: int     #指定新创建的Pod应该在没有任何容器崩溃的情况下准备好的最短秒数revisionHistoryLimit: int        #指定要保留的允许回滚的旧ReplicaSet的数量paused: boolean                  #默认为false,用于暂停和恢复部署。当暂停部署时,#Pod模板中spec属性的任何更改都不会触发新的部署

Deployment控制器有两种更新方式。

  • Recreate:所有现有的Pod都会在创建的Pod之前被终止;删除旧的ReplicaSet控制器下的所有Pod,只保留旧的ReplicaSet控制器的定义,但不再投入使用

  • RollingUpdate:表示以滚动跟新方式更新Pod,并可以通过maxUnavailable和maxSurge参数控制滚动更新过程

    • maxUnavailable:表示在更新过程中能够进入不可用状态的Pod的最大值或相对于总副本数的最大百分比
    • maxSurge:表示能够额外创建的Pod数或相对于总副本数的百分比。

更新的暂停与恢复

暂停与恢复的命令如下所示。

$ kubectl rollout pause deploy {Deployment名称}
$ kubectl rollout resume deploy {Deployment名称}

回滚

需要回滚到之前版本,则可以先使用以下命令查看历史变更记录。

$ kubectl rollout history deployment {Deployment名称}

回滚命令

kubectl rollout undo deployment {Deployment名称} --to-revision={revision编号}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/23377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue 常用的 UI 框架及表格

vue 3 常用的 UI 框架及表格 常用 UI 框架 Element PlusAnt Design VueiViewVxe UIVuetifyBootstrap VueMuse UI 专业表格 SpreadJSAG GridVxe Table

Linux——内存管理代码分析

虚空间管理 页框和页的关系 页框 将内存空间分为一个个大小相等的分区(比如:每个分区4KB),每个分区就是一个页框,也叫页帧,即物理页面,是linux划分内存空间的结果。 每个页框都有一个页框号,即内存块号、物理块号。 页 将用户…

深度学习之指数移动平均模型(EMA)介绍

指数移动平均模型(Exponential Moving Average Model,EMA)是一种用于平滑时间序列数据的技术。它通过对数据进行加权平均来减少噪音和波动,从而提取出数据的趋势。 在深度学习中,EMA 常常用于模型的参数更新和优化过程…

完整指南:远程管理 Linux 服务器的 Xshell6 和 Xftp6 使用方法(Xshell无法启动:要继续使用此程序........,的解决方法)

😀前言 在当今软件开发领域,远程管理 Linux 服务器已成为日常工作的重要组成部分。随着团队成员分布在不同的地理位置,远程登录工具的使用变得至关重要,它们为开发人员提供了访问和管理服务器的便捷方式。本文将介绍两款功能强大的…

python随机显示四级词汇 修改版直接显示释义

python随机显示四级词汇 修改版直接显示释义 添加暂停 和继续(按下中建滚轮触发) 按下右键 退出程序 解决在暂停后 ,重新调用update_word 会明显发现每隔5秒更新一次单词的速率已经改变 速率改变的问题可能是由于暂停期间没有清除之前的定时器所导致的。为了确保重新调用updat…

Linux高级进阶-ssh配置

Ubuntu-system 允许使用root远程登陆 apt install ssh -y在/etc/ssh/sshd_config 文件修改PermitRootLogin yes systemctl restart ssh远程连接软件用户名为root

Ubuntu系统中Apache Web服务器的配置与实战

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

Educational Codeforces Round 166(Div.2) A~D

A.Verify Password(字符串) 题意: Monocarp正在开发他的新网站,目前面临的挑战是如何让用户选择强密码。 Monocarp认为,强密码应满足以下条件: 密码只能由小写拉丁字母和数字组成;字母后面不…

PasteCode系列系统说明

定义 PasteCode系列是指项目是基于PasteTemplate构建的五层以上项目,包括不仅限于 Domain EntityFrameworkCore Application.Contracts Application HttpApi.Host 熟悉ABP vNext就很好理解了,因为PasteTemplate就是基于ABP的框架精简而来!在…

一些Mysql面试题

InnoDB是如何存储数据的? InnoDB 的数据是按「数据页」为单位来读写的,默认数据页大小为 16 KB。每个数据页之间通过双向链表的形式组织起来,物理上不连续,但是逻辑上连续。 数据页内包含用户记录,每个记录之间用单向…

【java 如何将字符串反转?】

文章目录 概要示例(1)使用StringBuilder的reverse方法(2)使用charAt和循环(3)使用双指针(4)使用递归 总结 概要 在Java中,有多种方法可以将字符串反转,我这里…

代码随想录训练营第二天 977有序数组的平方 209长度最小的子数组 59螺旋矩阵II

第一题: 题目链接:977. 有序数组的平方 - 力扣(LeetCode) 思路: 先将数组求完平方和后进行排序,很简单,主要是排序算法的考察。 这里采用快排 快排的思路: 取这个数组的中间值…

代码随想录算法训练营第四十六 | ● 139.单词拆分 ● 关于多重背包,你该了解这些! ● 背包问题总结篇!

139.单词拆分 视频讲解&#xff1a;https://www.bilibili.com/video/BV1pd4y147Rh https://programmercarl.com/0139.%E5%8D%95%E8%AF%8D%E6%8B%86%E5%88%86.html class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<st…

java stream流之groupby的用法

简单分组 按照年龄对 Person 对象进行分组&#xff1a; 代码示例 import java.util.*; import java.util.stream.Collectors;public class SimpleGrouping {public static void main(String[] args) {List<Person> people Arrays.asList(new Person("Alice"…

上市即交付,比亚迪秦L DM-i万人交车暨千媒众测开营

6月6日&#xff0c;“引领中级 开创油耗2时代”秦L DM-i万人交车暨千媒众测开营仪式在比亚迪大本营深圳盛大举行。 众多车主代表亲临现场&#xff0c;与全国各地的比亚迪4S店千店联动&#xff0c;将秦L DM-i全国交付推向新的高潮。发布即量产&#xff0c;上市即交付&#xff0…

ESP32:FreeRTOS节拍配置(vTaskDelay延时10ms改为1ms)

文章目录 背景方法手动修改sdkconfig通过idf.py menuconfig 背景 在FreeRTOS的默认配置中&#xff0c;任务调度的频率默认是100HZ&#xff0c;因此默认vTaskDelay默认延时是10ms。 FreeRTOS 的系统时钟节拍可以在配置文件 FreeRTOSConfig.h 里面设置&#xff1a;#define confi…

【HarmonyOS】鸿蒙应用子模块module资源如何获取

【HarmonyOS】鸿蒙应用子模块module资源如何获取 一、问题背景&#xff1a; 在多模块项目工程中&#xff0c;单个模块的资源不会放在主模块中&#xff0c;所以我们需要在子模块中访问自己的资源。如果使用默认的资源获取api&#xff0c;会提示找不到资源。 那如何获取子模块下…

【AI基础】第四步:保姆喂饭级-langchain+chatglm2-6b+m3e-base

在第三步手动安装chatglm2-6b时&#xff0c;已经可以通过web进行交互。langchain重新封装了一下AI框架&#xff0c;提供更加友好的开发功能&#xff0c;类似于AI届的spring框架。langchain的安装过程也类似于上一步说的&#xff1a;【AI基础】第三步&#xff1a;纯天然手动安装…

负载均衡

文章目录 负载均衡的分类负载均衡的算法 负载均衡的分类 对链路的负载均衡 对链路的负载均衡主要是指应用方有多条ISP网络出口,比方说电信网通,电信铁通等,对链路的负载均衡也是解决目前电信网通互联互通的最专业的技术.其实现的原理是根据负载均衡算法来算出,到目标地址的数据…

企业获客有哪些好的广告推广拓客渠道?

在这个数字化营销的时代&#xff0c;企业要想在激烈的市场竞争中脱颖而出&#xff0c;选择正确的广告宣传渠道至关重要。随着互联网技术的飞速发展&#xff0c;各类媒体平台如雨后春笋般涌现&#xff0c;为企业提供了广阔的宣传空间。云衔科技通过多元化的媒体渠道&#xff0c;…