K8S学习笔记之控制器-Deployment

k8s_CKA考试_学习笔记 无 阅读详情

关键词:管理Replicaset

关键概念

属于Replicaset的升级版,是建立在rs之上的一个控制器,可以管理多个rs,每次更新镜像版本,都会生成一个新的rs,把旧的rs替换掉,多个rs同时存在,但是只有一个rs运行。

在这里插入图片描述

解释

rs v1控制三个pod,删除一个pod,在rs v2上重新建立一个,依次类推,直到全部都是由rs v2控制,如果rs v2有问题,还可以回滚,Deployment是建构在rs之上的,多个rs组成一个Deployment,但是只有一个rs处于活跃状态。

Deployment可以使用声明式定义,直接在命令行通过纯命令的方式完成对应资源版本的内容的修改,也就是通过打补丁的方式进行修改;Deployment能提供滚动式自定义自控制的更新;对Deployment来讲,我们在实现更新时还可以实现控制更新节奏和更新逻辑。

核心功能

1、创建ReplicaSet和Pod
2、滚动升级(不停止旧服务的状态下升级)和回滚应用(将应用回滚到之前的版本)
3、平滑地扩容和缩容
4、暂停和继续Deployment

资源清单解释

# kubectl explain deployment.spec
minReadySeconds	<integer>         #在等待设置的时间后才进行升级。如果没有设置该值,会假设该容器启动起来后就提供服务了
paused	<boolean>                 #暂停,当我们更新的时候创建pod先暂停,不是立即更新
progressDeadlineSeconds	<integer> #升级中由于各种原因升级卡住,个时候就需要有个deadline
replicas	<integer>             #副本数
revisionHistoryLimit	<integer> #保留的历史版本,默认是10
selector	<Object> -required-   #标签选择器,选择它关联的pod
strategy	<Object>              #更新策略
template	<Object> -required    #定义的pod模板

# kubectl explain deploy.spec.strategy
rollingUpdate	<Object>          # 
type	<string>                  #支持两种更新,Recreate和RollingUpdate(默认)
                                  #Recreate是重建式更新,删除一个更新一个
                                  #RollingUpdate滚动更新,定义滚动更新方式,即pod能多几个或少几个

# kubectl explain deploy.spec.strategy.rollingUpdate
maxSurge	<string>              #我们更新的过程当中最多允许超出的指定的目标副本数有几个;它有两种取值方式,第一种直接给定数量,第二种根据百分比,百分比表示原本是5个,最多可以超出20%,那就允许多一个,最多可以超过40%,那就允许多两个
maxUnavailable	<string>          #最多允许几个不可用。假设有5个副本,最多一个不可用,就表示最少有4个可用

# kubectl explain deploy.spec.template
metadata     <Object>
spec <Object>

# kubectl explain deploy.spec.template.spec
同Pod相关属性配置
# 示例【1】
vim doploy-test-myapp.yaml
kubectl apply -f doploy-test-myapp.yaml
kubectl get deploy
kubectl get rs
kubectl get pods
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
spec:
  replicas: 2
  selector:
    matchLabels:
      app: myapp
      version: v1
  template:
    metadata:
      labels:
        app: myapp
        version: v1
    spec:
      containers:
      - name: myapp
        image: algebra/docker-demo:1.1-SNAPSHOT
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080

字段详述

apiVersion: apps/v1  #deployment对应的api版本
kind: Deployment     #创建的资源是deployment
metadata:
  name: myapp-v1     #deployment的名字
spec:
  replicas: 2        #deployment管理的pod副本数
  selector:          #标签选择器
   matchLabels:      #matchLabels下定义的标签需要跟template.metadata.labels定义的标签一致
    app: myapp
    version: v1
  template:
   metadata:
    labels:
     app: myapp
     version: v1
   spec:                             #定义容器的属性
    containers:  
    - name: myapp
      image: janakiramm/myapp:v1     #容器使用的镜像
      imagePullPolicy: IfNotPresent  #镜像拉取策略
      ports:
      - containerPort: 80            #容器里的应用的端口【一定要看清自己应用的端口】

扩缩容

与Replicaset一样,也是两种方式控制

# 方式一:修改本地资源文件[修改replicas字段]
vim deploy-test-myapp.yaml
kubectl apply -f deploy-test-myapp.yaml[fileName]
# 方式二:直接编辑资源文件[修改replicas字段]
kubectl edit deploy myapp[deployName] 

## 动态监测
kubectl get pods -l app=myapp -w

滚动升级&回滚

# 修改本地资源文件[修改image字段,修改为升级的镜像版本]
vim deploy-test-myapp.yaml
kubectl apply -f deploy-test-myapp.yaml[fileName]

# 查看副本控制器[发现有两个rs,其中一个是历史rs]
kubectl get rs

NAME               DESIRED   CURRENT   READY   AGE
myapp-79bfbcbb99   2         2         2       4m55s
myapp-9db9684c6    0         0         0       171m

# 查看myapp这个控制器的历史版本
kubectl rollout history deployment myapp
# 回滚到指定版本
kubectl rollout undo deployment myapp --to-revision=1

自定义滚动策略

maxSurge和maxUnavailable用来控制滚动更新的更新策略
取值范围
【数值】

  1. maxUnavailable: [0, 副本数]
  2. maxSurge: [0, 副本数]
    注意:两者不能同时为0。
    【比例】
  3. maxUnavailable: [0%, 100%] 向下取整,比如10个副本,5%的话==0.5个,但计算按照0个;
  4. maxSurge: [0%, 100%] 向上取整,比如10个副本,5%的话==0.5个,但计算按照1个;
    注意:两者不能同时为0。

【建议配置】

  1. maxUnavailable == 0
  2. maxSurge == 1
    这是我们生产环境提供给用户的默认配置。即“一上一下,先上后下”最平滑原则:
    1个新版本pod ready(结合readiness)后,才销毁旧版本pod。此配置适用场景是平滑更新、保证服务平稳,但也有缺点,就是“太慢”了。

总结:
maxUnavailable:和期望的副本数比,不可用副本数最大比例(或最大值),这个值越小,越能保证服务稳定,更新越平滑;
maxSurge:和期望的副本数比,超过期望副本数最大比例(或最大值),这个值调的越大,副本更新速度越快。

资源配额

# 资源配额要设置在容器属性上
containers:
- name: myapp
  image: algebra/docker-demo:1.2-SNAPSHOT
  imagePullPolicy: IfNotPresent
  ports:
  - containerPort: 8080
  resources:
    limits:          #资源限制,最多可用的cpu和内存
      cpu: 200m
      memory: 256M
    requests:        #最少需要多少资源才可以运行Pod
      cpu: 200m
      memory: 256M
Kubernetes K8S之资源控制器RC、RS、Deployment详解 Kubernetes的资源控制器ReplicationController(RC)、ReplicaSet(RS)、Deployment(Deploy)详解与示例 阅读详情

相关推荐

k8s 控制器:Replicaset 和 Deployment

k8s Deployments

高飞的博客 30万+

Kubernetes 灰度/滚动发布 滚动更新速率控制解读 maxUnavailable,maxSurge

利用kubernetes的滚动更新时,可能经常遇到发布“太快不稳定”或“太慢体验差”的情况。本文将介绍kubernetes滚动更新控制速率的特性。 金丝雀发布 金丝雀发布这个术语源自20世纪初期,当时英国的煤矿工人在下井采矿之前,会把笼养的金丝雀携带到矿井中,如果矿井中一氧化碳等有毒气体的浓度过高,在影响矿工之前,金丝雀相比人类表现的更加敏感快速,金丝雀中毒之后,煤矿工人就知道该立刻撤离。金丝雀发布是在将整个软件的新版本发布给所有用户之前,先发布给部分用户,用真实的客户流量来测试,以保证软件不会出现严重

Jerry00713的博客 1709

k8s控制器Deployment使用详解

k8s 中Deployment使用详解

congge 7375

K8S系列四:服务管理

本文是K8S系列第四篇,主要面向对k8s新手同学。阅读本文需要读者对k8s的基本概念,比如Pod、Deployment、Service、Namespace等基础概念有所了解,尚且不了解的同学推荐先阅读本系列的第一篇文章《K8S系列一:概念入门》[1];阅读本文还需要读者对k8s的服务部署有一定深入的了解,特别是怎么通过Pod部署自己的服务,尚且不熟悉的同学推荐阅读本系列前一篇文章《K8S系列三:单服务部署》[2]。本文旨在讲述如何基于k8s集群管理一群服务,包括如何做。

一个天蝎座的程序猿 1214

【K8S系列】深入解析 Kubernetes 中的 Deployment

Kubernetes(K8s)是一个开源的容器编排平台,旨在自动化应用程序的部署、扩展和管理。在 Kubernetes 中,Deployment 是一种用于管理无状态应用的工作负载资源,提供了丰富的功能,包括版本控制、滚动更新和回滚。本文将深入探讨 Kubernetes 中 Deployment 的工作机制、滚动更新的实现原理、关键组件、配置策略以及监控和回滚机制。

颜淡慕潇 2万+

K8S中Deployment控制器的概念、原理解读以及使用技巧

Deployment是kubernetes中最常用的资源对象,为ReplicaSet和Pod的创建提供了一种声明式的定义方法, 在Deployment对象中描述一个期望的状态,Deployment控制器就会按照一定的控制速率把实际状态改成期望状态, 通过定义一个Deployment控制器会创建一个新的ReplicaSet控制器,通过ReplicaSet创建pod,删除Deployment控制器, 也会删除Deployment控制器下对应的ReplicaSet控制器和pod资源.

景天科技苑 2758

详解Kubernetes工作负载管理

希望读者通过接下来代码加图文的介绍对工作负载的概念以及使用场景有更清晰的认识和帮助。1.了解工作负载的概念以及Kubernetes 提供的内置工作负载的信息。2.deployment概念及使用场景3.daemonset概念及使用场景4.job/cronjob概念及使用场景工作负载是在 Kubernetes 上运行的应用程序。无论你的负载是单一组件还是由多个一同工作的组件构成,在 Kubernetes 中你 可以在一组 Pods 中运行它。...

知道的越多,不知道的越多。 1369

【库卡机器人】接线步骤

准备X11插头接线,X11插头可以接入机器人外部安全回路接线,其中外部使能信号线也接在此接口上,如果机器人系统没有配置外部使能装置,那个此接口上的外部使能信号端须短接,短接规则为:20-21、23-22、31-30、33-32。持续按住使能键,保持使能上电状态,分别按住示教器右侧每个轴对应的+或-按键,测试机器人每一个轴是否能正常运行,如果一切正常,说明机器人控制正常,机器人可以正常使用。将一根黄绿色等电位线接入其中的一个接地端,并与机器人的接地端相连,使得控制柜与机器人等电位。

qq_45161762的博客 9439

【云原生|Kubernetes】14-DaemonSet资源控制器详解

​ 在 Kubernetes 中,DaemonSet 是一种用于在节点上运行指定的 Pod 的控制器(Controller)。与 ReplicaSet 或 Deployment 不同,DaemonSet 不是为了扩展 Pod 数量而创建的,而是为了在每个节点上运行一个实例或多个实例的 Pod。​ DaemonSet 通常用于在 Kubernetes 集群中运行一些系统级别的服务或者网络代理,例如日志收集器、监控代理、网络插件等。

qq_43714097的博客 1780

随机变量序列 收敛 检验 matlab,利用MATLAB验证样条插值的收敛性

问题提出多项式插值是不收敛的,即插值的节点多,效果不一定就好。对样条函数插值又如何呢?理论上证明样条插值的收敛性是比较困难的,但通过本实验可以验证这一理论结果。.实验内容请按一定的规则分别选择等距或者非等距的插值节点,并不断增加插值节点的个数。考虑实验2.1中的函数或选择其他你有兴趣的函数。(中函数)。实验要求(1)随节点个数增加,比较被逼近函数和样条插值函数误差的变化情况。分析所得结果并与拉格朗...

weixin_30895121的博客 4734

FreeSurfer预处理命令

比如将/source/kernel.tgz解压到 /source/linux-2.6.29 目录 tar zxvf /source/kernel.tgz -C /source/ linux-2.6.29 tar zxvf /home/tj/application/freesurfer/subjects/mindboggle/OASIS-TRT-20-1.tar.gz -C /home/tj/application/freesurfer/subjects (1)lh.thickness mri_surf2su

Dream19961996的博客 1506

K8s学习笔记(十) Deployment 副本控制器

Deployment 是 Kubernetes 中推荐的 Pod 管理方式,它通过 ReplicaSet 实现副本数量的自动维持(副本控制),同时提供声明式更新、版本回滚等高级功能,确保服务的高可用性和可维护性。相比直接使用 ReplicaSet 或 RC,Deployment 更适合生产环境中需要频繁更新和稳定运行的业务场景。

m0_66372733的博客 1002

LSTM模型 轨迹经纬度预测

原始时间序列数据如下所示,我们只取前两列纬度和经度作为输入数据 我们设定用前六个位置信息预测下一个位置,则两个样本的输入输出数据如下所示: 创建LSTM网络训练模型: import numpy as np from keras.layers.core import Dense, Activation, Dropout from keras.layers import LS...

Muzi_Water的博客 2万+

Kubernetes(k8s)学习笔记-先导版——一看就会

文章目录1、基本概念1.1、k8s1.2、概念2、网络通信3、资源清单3.1、资源3.2、资源清单3.3、 Pod的声明周期3.4、 资源控制器3.4.1、Deployment3.4.2、DaemonSet3.4.3、job3.4.4、CronJob3.4.5、Service3.4.5、Headless Service3.4.6、Ingress4、存储4.1、ConfigMap4.2、Secret4.3、 Volume存储卷4.3.1、EmptyDir4.3.2、HostDir4.3.3、NFS4.4、PV

可乐多点冰的博客 1777

R语言影像组学实战:从医学图像到预测模型的完整流程(附代码)

本文详细介绍了使用R语言进行影像组学分析的完整实战流程。从环境搭建、数据准备,到医学图像的特征提取与筛选,再到利用机器学习构建预测模型并进行评估,提供了清晰的步骤和可运行的R代码示例,帮助研究者和数据分析师掌握从医学图像到临床预测模型的核心技术。

qsc901234的博客 732

Coze实战:解锁多Bot协同与条件分支工作流的奥秘

本文详细介绍了在字节跳动Coze平台实现多Bot协同与条件分支工作流的方法。首先阐述了Coze平台的功能优势,包括丰富的插件、知识库和工作流功能。随后分步骤讲解了多Bot协同的实现:从准备工作、创建Bot到协同配置,并提供了电商客服的实例演示。在条件分支工作流部分,详细说明了条件节点的作用类型、条件设定方法以及具体配置操作,强调测试优化的重要性。最后通过电商平台综合案例,展示了多Bot协同与条件分支的实际应用效果,并针对常见问题提供解决方案。文章为开发者在Coze平台上构建智能应用提供了实用指导,有助于提升

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 449

Kubernetes学习笔记(二):Pod控制器详解:资源元信息、ReplicaSet、Deployment、DaemonSet、Job、CronJob

1、资源元信息 Kubernetes的资源对象组成:主要包括了Spec、Status两部分。其中Spec部分用来描述期望的状态,Status部分用来描述观测到的状态 Kubernetes的元数据部分。该部分主要包括了用来识别资源的标签:Label;用来描述资源的注解:Annotation;用来描述多个资源之间相互关系的OwnerReference 1)、Label Label是Kubernetes系统中的一个重要概念。它的作用就是在资源上添加标识,用来对它们进行区分和选择 Label的特点: 一个La

hxt的博客 2643

仅使用 Python 创建的 Web 应用程序(前端版本)第03章Streamlit-多页面

接下来,我们将解释多页面切换。Streamlit 没有“多页面”或“页面路由”等功能。另一方面,通过根据用户动作切换要执行的功能,可以使其看起来好像存在“多个页面”。注意:我认为它类似于 SinglePageApplication (SPA)。然而,根据 React、Vue 等中使用的 URL 路径来更改页面的路由很困难。还有一个用于获取查询参数的实验性 API,但如果您确实需要这种功能,我认为认真尝试编写 React 或 Vue 是个好主意。我们来看一个通过按下按钮来切换页面的示例,如下所示。

xianyinsuifeng的博客 1326

kubernetes基础知识扫盲

本篇文章主要是我在学习k8s时自己整理的学习笔记,内容主要偏入门和基础,可以在学习k8s时用做参考。同时这篇文章主要包含k8s的基础概念、各控制器的策略使用方法、卷存储、网络插件的一些使用方法和排查方法。都是自己在自学时的整理笔记,。对新手友好,如果你有使用过k8s,那么大可不必看这篇文章。这篇文章也会随时更新,当有遇到新的内容或者技术时都会更新到此。这片文章的学习笔记依赖于k8s1.18版本。够用!!

菜鸟运维升级之路 3888

【知识点讲解】大模型参数量与计算量(FLOPs)估算方法

指标参数量 (Params)计算量 (FLOPs)含义模型的大小,静态模型的计算复杂度,动态决定因素模型结构(宽度、深度)模型结构 +输入数据(B, S)影响内存占用、磁盘空间运行速度、能耗单位M (百万), B (十亿)工具thopptflopstorchinfothopptflopsfvcore重要提示FLOPs ≠ 速度:FLOPs 是理论计算量。实际速度还受内存带宽 (Memory Bandwidth)并行度硬件架构等因素严重影响。

AI浩 2095

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

K8s学习笔记(一)

IaaS(Infrastructure as a Service):基础设施即服务。如,阿里云。 PaaS(Platform as a service):平台即服务。如,新浪云。 SaaS(Software as a Service):软件设施即服务。如,Office。 K8s:是一个开源的,用于管理云平台中多个主机上的容器化的应用。 特点:轻量级,资源消耗小;开源;弹性伸缩;负载均衡 K8s架构...

xuebi_1209的博客 445

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【云原生_K8S系列】Kubernetes 控制器之 Deployment

Deployment 是 Kubernetes 中的一个控制器,它管理 Pod 的副本集(ReplicaSet)。通过定义 Deployment,用户可以描述一个应用的期望状态,例如需要多少个副本、使用什么镜像以及如何进行滚动更新。Deployment 会根据这些定义自动创建和管理 Pod,确保应用始终处于期望状态。动态创建和销毁 Pod查看升级进度和状态升级回滚,并具有版本记录暂停和恢复升级滚动重启Kubernetes Deployment 是管理应用生命周期的强大工具。

didiplus 2725

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

K8S控制器之Deployment详解及配置。

一,引入Deployment 对于kubernetes来说Pod是资源调度最小单元,kubernetes主要的功能就是管理多个Pod,Pod中可以包含一个或多个容器,而kubernetes是如可管理多个Pod的呢?对,没错,就是通过控制器,比如Deployment和ReplicaSet(rs)。 kubernetes下有多个Deployment,Deployment下管理RepliceSet,通过RepliceSet管理多个Pod,通过Pod管理容器。 它们之间的关系图如下: 二,Deploy.

无求道贾的博客 1万+

【云原生 | 从零开始学Kubernetes】十五、k8s核心技术-Deployment 控制器

Deployment控制器可以部署无状态应用管理Pod和ReplicaSet部署,滚动升级等功能应用场景:web服务,微服务Deployment表示用户对K8S集群的一次更新操作。Deployment是一个比RS( Replica Set, RS) 应用模型更广的 API 对象,可以是创建一个新的服务,更新一个新的服务,也可以是滚动升级一个服务。滚动升级一个服务,实际是创建一个新的RS,然后逐渐将新 RS 中副本数增加到理想状态,将旧RS中的副本数减少到0的复合操作。

欢迎关注,一起进步! 4236

K8s控制器详解:从Deployment到HPA

Kubernetes控制器是维护系统期望状态的核心组件,主要包括Deployment、DaemonSet、Job/CronJob、StatefulSet和HPA等类型。Deployment管理无状态Pod集群,支持扩缩容和滚动更新;DaemonSet确保每个节点运行指定Pod;Job/CronJob处理一次性或定时任务;StatefulSet专为有状态应用设计,提供持久化存储;HPA则根据资源使用情况自动调整Pod数量。这些控制器通过YAML文件配置,能够自动监控系统状态差异并进行调整,大大减轻了管理负担。

m0_60035550的博客 1188
上一篇: K8S学习笔记之控制器-Replicaset
下一篇: K8S学习笔记之Service和kube-proxy
AlgebraFly
博客等级 码龄9年 260粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlgebraFly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值