K8s集群安装Devops

DevOps实战笔记--3(Jenkins流水线任务+K8S介绍) 当我们采用自由风格构建项目时,项目中的每个步骤都需要进行单独配置,而且构建时每一步之间没有明确的区分,若出现问题,需要单独查找控制台,定位起来较为困难。于是我们在此引入Jenkins流水线任务,此任务类型可以使项目的执行过程可视化,使问题的定位过程变得更加方便。在使用流水线任务时,我们通过Jenkinsfile对任务进行统一的配置与管理。通常,我们为方便后期维护,会选择将Jenkinsfile放在项目中。所以,通过流水线构建项目的方式往往较其他方式的操作更为灵活与简便。 阅读详情
  1. 以 admin 身份登录控制台,点击左上⻆的平台管理,选择集群管理。

在这里插入图片描述
2. 点击⾃定义资源 CRD,在搜索栏中输⼊ clusterconfiguration ,点击搜索结果查看其详细⻚⾯。

信息

⾃定义资源定义(CRD)允许⽤户在不增加额外 API 服务器的情况下创建⼀种新的资源类型,⽤户可以像使⽤其他 Kubernetes 原⽣对象⼀样使⽤这些⾃定义资源。

  1. 在资源列表中,点击 ks-installer 右边的三个点,选择编辑配置⽂件
    在这里插入图片描述
    搜索到资源以后点进去
    在这里插入图片描述

在这里插入图片描述
4. 在该 YAML ⽂件中,搜寻到 devops ,将 enabled 的 false 改为 true 。完成后,点击右下⻆的更新,保存配置。
在这里插入图片描述
等待大概两分钟左右,通过kubectl get pods --all-namespaces
会出现devops的组件安装成功
在这里插入图片描述

  1. 您可以使⽤ Web Kubectl ⼯具执⾏以下命令来检查安装过程:
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l
app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

在这里插入图片描述

  1. 验证组件的安装
    进⼊服务组件,检查 DevOps 的状态,可以看到如下类似图⽚:
kubectl get pod -n kubesphere-devops-system

在这里插入图片描述
当然也可以在这里查看。在这里插入图片描述
4、企业空间、项⽬、帐户和⻆⾊

架构
KubeSphere 的多租户系统分三个层级,即群集、企业空间和项⽬。KubeSphere 中的项⽬等同于Kubernetes 的命名空间。
您需要创建⼀个新的企业空间进⾏操作,⽽不是使⽤系统企业空间,该企业空间中运⾏着系统资源,绝⼤部分仅供查看。出于安全考虑,强烈建议给不同的租户授予不同的权限在企业空间中进⾏协作。
您可以在⼀个 KubeSphere 集群中创建多个企业空间,每个企业空间下可以创建多个项⽬。
KubeSphere 为每个级别默认设有多个内置⻆⾊。此外,您还可以创建拥有⾃定义权限的⻆⾊。
KubeSphere 多层次结构适⽤于具有不同团队或组织以及每个团队中需要不同⻆⾊的企业⽤户。
在这里插入图片描述
动⼿实验

在这里插入图片描述
步骤 1:创建帐户

安装 KubeSphere 之后,您需要向平台添加具有不同⻆⾊的⽤户,以便他们可以针对⾃⼰授权的资源在不同的层级进⾏⼯作。⼀开始,系统默认只有⼀个帐户 admin ,具有 platform-admin ⻆⾊。在本步骤中,您将创建⼀个帐户 user-manager ,然后使⽤ user-manager 创建新帐户。

  1. 使⽤默认帐户和密码 ( admin/P@88w0rd ) 以 admin 身份登录 Web 控制台。
    提示
    出于安全考虑,强烈建议您在⾸次登录控制台时更改密码。若要更改密码,在右上⻆的下拉菜单中选择个⼈设置,在密码设置中设置新密码,您也可以在个⼈设置中修改控制台语⾔。

在这里插入图片描述
2. 登录控制台后,点击左上⻆的平台管理,然后选择访问控制。
在这里插入图片描述
帐户⻆⾊中,有如下所示四个可⽤的内置⻆⾊。接下来要创建的第⼀个帐户将被分配 usersmanager ⻆⾊。

在这里插入图片描述
备注
内置⻆⾊由 KubeSphere ⾃动创建,⽆法编辑或删除。
3. 在帐户管理中,点击创建。在弹出窗⼝中,提供所有必要信息(带有*标记),然后在⻆⾊字段选择 users-manager 。请参考下图示例
在这里插入图片描述
完成后,点击确定。新创建的帐户将显示在帐户管理中的帐户列表中。

  1. 切换帐户使⽤ user-manager 重新登录,创建如下四个新帐户,这些帐户将在其他的教程中使⽤。
    提示
    帐户登出请点击右上⻆的⽤户名,然后选择登出。
    在这里插入图片描述
  2. 查看创建的四个帐户。

在这里插入图片描述
步骤 2:创建企业空间

在此步骤中,您需要使⽤上⼀个步骤中创建的帐户 ws-manager 创建⼀个企业空间。作为管理项⽬、DevOps ⼯程和组织成员的基本逻辑单元,企业空间是 KubeSphere 多租户系统的基础。

  1. 以 ws-manager 身份登录 KubeSphere,它具有管理平台上所有企业空间的权限。点击左上⻆的平台管理,选择访问控制。在企业空间中,可以看到仅列出了⼀个默认企业空间 systemworkspace ,即系统企业空间,其中运⾏着与系统相关的组件和服务,您⽆法删除该企业空间。
    在这里插入图片描述
  2. 点击右侧的创建,将新企业空间命名为 demo-workspace ,并将⽤户 ws-admin 设置为企业空间管理员,如下图所示:

在这里插入图片描述
完成后,点击创建。
备注
如果您已启⽤多集群功能,您需要为企业空间分配⼀个或多个可⽤集群,以便项⽬可以在集群中创建。

  1. 登出控制台,然后以 ws-admin 身份重新登录。在企业空间设置中,选择企业成员,然后点击邀请成员。
    在这里插入图片描述4. 邀请 project-admin 和 project-regular 进⼊企业空间,分别授予他们 workspace-selfprovisioner 和 workspace-viewer ⻆⾊。

备注
实际⻆⾊名称的格式: - 。例如,在名为 demo-workspace 的企业空间中,⻆⾊ viewer 的实际⻆⾊名称为 demo-workspace-viewer 。
在这里插入图片描述
4. 将 project-admin 和 project-regular 都添加到企业空间后,点击确定。在企业成员中,您可以看到列出的三名成员。

在这里插入图片描述
步骤 3:创建项⽬
在此步骤中,您需要使⽤在上⼀步骤中创建的帐户 project-admin 来创建项⽬。KubeSphere 中的项
⽬与 Kubernetes 中的命名空间相同,为资源提供了虚拟隔离。有关更多信息,请参⻅命名空间。

  1. 以 project-admin 身份登录 KubeSphere,在项⽬管理中,点击创建。
    在这里插入图片描述
  2. 输⼊项⽬名称(例如 demo-project ),然后点击确定完成,您还可以为项⽬添加别名和描述。

在这里插入图片描述3. 在项⽬管理中,点击刚创建的项⽬查看其详细信息。
在这里插入图片描述
3. 在项⽬的概览⻚⾯,默认情况下未设置项⽬配额。您可以点击设置并根据需要指定资源请求和限制(例如:CPU 和内存的限制分别设为 1 Core 和 1000 Gi)。

在这里插入图片描述
在这里插入图片描述

  1. 邀请 project-regular ⾄该项⽬,并授予该⽤户 operator ⻆⾊。请参考下图以了解具体步骤。

在这里插入图片描述
具有 operator ⻆⾊的⽤户是项⽬维护者,可以管理项⽬中除⽤户和⻆⾊以外的资源。
6. 在创建路由(即 Kubernetes 中的 Ingress)之前,需要启⽤该项⽬的⽹关。⽹关是在项⽬中运⾏的 NGINX Ingress 控制器。若要设置⽹关,请转到项⽬设置中的⾼级设置,然后点击设置⽹关。此步骤中仍使⽤帐户 project-admin 。

在这里插入图片描述
7. 选择访问⽅式 NodePort,然后点击保存。

在这里插入图片描述

  1. 在外⽹访问下,可以在⻚⾯上看到⽹关地址以及 http/https 的端⼝

如果要使⽤ LoadBalancer 暴露服务,则需要使⽤云⼚商的 LoadBalancer 插件。如果您的Kubernetes 集群在裸机环境中运⾏,建议使⽤ Porter 作为 LoadBalancer 插件。

在这里插入图片描述

步骤 4:创建⻆⾊
完成上述步骤后,您已了解可以为不同级别的⽤户授予不同⻆⾊。先前步骤中使⽤的⻆⾊都是KubeSphere 提供的内置⻆⾊。在此步骤中,您将学习如何创建⾃定义⻆⾊以满⾜⼯作需求。

  1. 再次以 admin 身份登录控制台,然后转到访问控制。
  2. 帐户⻆⾊中列出了四个系统⻆⾊,⽆法删除或编辑。点击创建并设置⻆⾊标识符。在本示例将创建⼀个名为 roles-manager 的⻆⾊。
    在这里插入图片描述
    建议您输⼊⻆⾊说明解释此⻆⾊的⽤途。此处创建的⻆⾊将仅负责⻆⾊管理,包括添加和删除⻆⾊。
    点击编辑权限继续

3 在访问控制中,选择该⻆⾊所拥有的权限。例如,本示例选择帐户查看、⻆⾊管理和⻆⾊查看。点击确定完成创建

在这里插入图片描述
某些权限依赖于其他权限。要选择从属的权限,必须选择其依赖的权限。

  1. 新创建的⻆⾊将列于帐户⻆⾊中,可以点击右侧的三个点对其进⾏编辑。

在这里插入图片描述
5. 在帐户管理中,添加⼀个新帐户并授予其 roles-manager ⻆⾊,您也可以通过编辑将现有帐户的⻆⾊更改为 roles-manager 。
在这里插入图片描述
备注
roles-manager 的⻆⾊与 users-manager 重叠,⽽后者还可以进⾏⽤户管理。本示例仅⽤于演示⽬的,您可以根据需要创建⾃定义⻆⾊。

步骤 5:创建 DevOps ⼯程

若要创建 DevOps ⼯程,需要预先安装 KubeSphere DevOps 系统,该系统是个可插拔的组件,提供CI/CD 流⽔线、Binary-to-Image 和 Source-to-Image 等功能。有关如何启⽤ DevOps 的更多信息,请参⻅ KubeSphere DevOps 系统

  1. 以 project-admin 身份登录控制台,在 DevOps ⼯程中,点击创建。
    在这里插入图片描述

  2. 输⼊ DevOps ⼯程名称(例如 demo-devops ),然后点击确定,也可以为该⼯程添加别名和描述。
    在这里插入图片描述

  3. 在 DevOps ⼯程中,点击刚创建的⼯程查看其详细信息
    在这里插入图片描述

  4. 转到⼯程管理,然后选择⼯程成员。点击邀请成员授予 project-regular ⽤户 operator 的⻆⾊,允许其创建流⽔线和凭证。
    在这里插入图片描述
    ⾄此,您已熟悉 KubeSphere 的多租户管理系统。在其他教程中, project-regular 帐户还将⽤于演示如何在项⽬或 DevOps ⼯程中创建应⽤程序和资源

【k8s】:DevOps 模式详解 运维嵌入grafana 运维devops, 一、什么是DevOps模式DevOps是目前非常热门的一个概念,受到了众多互联网大厂的推崇。那么什么是DevOps呢? 阅读详情

相关推荐

DevOps 内容分享(四):基于 Jenkins 和 K8S 构建企业级 DevOps 容器云平台

DevOps 中的 Dev 是 Devlopment(开发),Ops 是 Operation(运维),用一句话来说 DevOps 就是打通开发运维的壁垒,实现开发运维一体化。DevOps 整个流程包括敏捷开发->持续集成->持续交 付->持续部署。

之乎者也·的博客 2308

DevOps基于k8s发布系统的实现

在微服务、DevOps和云平台流行的当下,使用一个高效的持续集成工具也是一个非常重要的事情。虽然市面上目前已经存在了比较成熟的自动化构建工具,比如jekines,还有一些商业公司推出的自动化构建工具,但他们都不能够很好的和云环境相结合。

huashetianzu的专栏 1万+

云原生Kubernetes全栈架构师(基于世界500强的k8s实战课程)

第3~7章介绍Docker的基础和镜像的制作优化,以及Kubernetes的基础概念(Master、Node和Pod)、核心调度资源(Deployment、StatefulSet、DaemonSet、CronJob)、服务发布(Service和Ingress)和配置管理(ConfigMap和Secret)。第8~11章主要介绍Kubernetes的持久化存储、动态存储、CSI、高级调度(容忍、污点和亲和力)、服务质量、权限管理、Kubernetes资源配额管理。

cao_fujiang的博客 1292

基于K8s的DevOps平台实践(一)

本篇文章基于 k8s 集群部署 gitlab、sonarQube、Jenkins 等工具,并把上述工具集成到 Jenkins 中,以 Django 项目和 SpringBoot 项目为例,通过多分支流水线及 Jenkinsfile 实现项目代码提交到不同的仓库分支,实现自动代码扫描、单元测试、docker 容器构建、k8s 服务的自动部署。

Edison's 小宇宙 6032

Kubernetes全栈架构师:基于世界500强的k8s实战课程(视频以及课件资料)

本文系统介绍了Kubernetes(K8s)全栈知识体系,分为五大部分:安装篇详解Kubeadm和二进制两种高可用集群部署方案;基础篇涵盖Docker、K8s核心概念、调度策略和服务发布;进阶篇深入存储管理、高级调度与资源控制;高级篇聚焦云原生存储Rook和中间件容器化;运维篇包含日志收集与监控告警实践。内容循序渐进,从环境配置到集群管理,再到生产级运维方案,既包含1.1内核配置等基础操作,也涉及CSI存储接口等前沿技术,并配有丰富的实践案例,是掌握Kubernetes全栈技术的实用指南。

weixin_49186526的博客 359

还不会部署高可用的kubernetes集群?企业DevOps实践之使用kubeadm方式安装高可用k8s集群v1.23.7...

关注「WeiyiGeek」公众号设为「特别关注」每天带你玩转网络安全运维、应用开发、物联网IOT学习!本章目录:0x00 前言简述0x01 环境准备主机规划软件版本网络规划0x02 安装部署1.准备基础主机环境配置2.负载均衡管理ipvsadm工具安装与内核加载3.高可用HAProxy与Keepalived软件安装配置4.容器运行时containerd.io安装配置5.安......

全栈工程师修炼指南-IT知识分享 615

部署多控制节点k8s集群、删除k8s集群

本文从使用代理以及不使用代理两种方式来搭建了一套多控制节点的k8s集群,以及如何删除重置k8s集群

m0_62958037的博客 1593

Jenkins+Kubernetes企业级DevOps容器云平台

主 Master 发生单点故障时,整个流程都不可用了每个 Slave 的配置环境不一样,来完成不同语言的编译打包等操作,但是这些差异化的配置导致管理起来非常不方便,维护起来也是比较费劲资源分配不均衡,有的 Slave 要运行的 job 出现排队等待,而有的 Slave 处于空闲状态资源有浪费,每台 Slave 可能是物理机或者虚拟机,当 Slave 处于空闲状态时,也不会完全释放掉资源。

悦分享 1002

【DevOps】Kubernetes动态生成 Jenkins Slave(一)

动态实现Jenkins slave

YangLeitao的博客 1576

【DevOps】Azure Kubernetes 服务 (AKS) 集群中安装ArgoCD

Argo CD 是一个声明式的 GitOps 持续交付工具,用于 Kubernetes。它允许您使用 Kubernetes 清单定义应用程序的期望状态,并自动与您的集群同步。Argo CD 还提供了一个 Web UI 和 CLI,用于监控和管理您的部署。如果检测到更改,ArgoCD 将自动更新 GitOps 工具。每个 Pod 都有一个唯一的 IP 地址,如果没有服务,则不会在集群外部公开。Base64 是一种编码和解码技术,用于将二进制数据转换为 ASCII 文本格式,反之亦然。

欧阳天涵的专栏 447

医药领域知识图谱快速及医药问答项目(项目全过程)

该项目是中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目 Github项目地址:mirrors / liuhuanyong / qasystemonmedicalkg · GitCode 一、项目环境搭建 该部分要十分注意,由于版本升级的问题,一些用法及格式已经不兼容了。 python3.8 下载地址:Python Release Python 3.8.10 | Python.orght...

qq_52062182的博客 9914

Kubernetes安装方法及使用教程(史上最全,不全不要钱系列)

目录   前言: 1、Kubernetes介绍 2、k8s的架构 架构图 架构是master/node的主从架构 Pod分为两类(我自己给分的类): Pod的常用控制器: Service: 集群的附件AddOns: k8s集群的三种网络: k8s集群的三种通信: k8s的两种常见部署方案 总结一下使用kubeadm安装k8s: 3、k8s的安装部署 3.1、传统的部...

Null的博客 2万+

SAP高级外币评估_FINS_FXV_S4 2022 OP

摘要:S/4HANA 2022 On-Premise中的高级外币评估(FINS_FXV)取代了经典外币估值(FAGL_FCV),提供更优化的财务结算功能。主要创新包括:增量发布逻辑、简化账户配置、行项目级估值可见性等。该功能支持IFRS9等会计准则,通过会计原则(Accounting Principle)进行配置,需完成财务报表版本定义、语义标记分配等必要设置。系统演示展示了从汇率维护(FB60/MIRO)、测试运行到最终过账(FB03)的完整流程,能自动计算并过账汇率差异。高级外币评估简化了期末结算操作,

yanzibing99的博客 1258

【DevOps系列】使用kubeadm安装kubernetes集群

一、准备环境 两台以上主机 每台主机的主机名、Mac 地址、UUID 不相同 CentOS 7(本文用 7.6/7.7) 每台机器最好有 2G 内存或以上 Control-plane/Master至少 2U 或以上 各个主机之间网络相通 禁用交换分区 禁用 SELINUX 关闭防火墙(我自己的选择,你也可以设置相关防火墙规则) Control-plane/Master和Worker节点分别开放如下端口 Mas

qq_40290586的博客 282

游戏开发-GM系统的设计

游戏管理员(gm)作为游戏中拥有更高权限的账号,在游戏开发的过程中,我们需要很早的将gm系统做出来,作为测试游戏逻辑具有不可替代的作用。 内容目录 服务端与客户端通讯基本流程 gm命令格式设计 gm系统的实现 服务端与客户端通讯基本流程 服务端与客户端通信,如果基本的网络框架搭建完成,那么我们只需要写好命令就可以了 服务器完成一条命令的添加需要3个过程。 (1)命令格式的定义

微不足道 4616

ArcGIS基础:点要素分割线要素和提取线要素的交点

第一个实验:【点要素分割线要素】看下原始数据:下图所示,2个红点和一条绿线,用2个点去分割这条线。 找到【数据管理工具】,在找到【要素】,再找到【在点处分割线】,如下图所示。 输入线、点要素,然后在【搜索半径】里输入5米,查看一下结果。 查看结果发现,线段被分割了2段,我们查看一下原因。 发现第2个点与线有一段距离,肯定是大于5米的,所以分割没有成功。可以量测一下距离,重新输入搜索半径。 我们把搜索半径改为200米,勘察结果,被点分割了3段。 接下来使用另外一个工具【在折点处分割线】,如下所示。

yuanYW7556的博客 1万+

商城-学习整理-集群-K8S(二十三)

本文主要讲解了K8S的核心概念和部署、以及CI/CD

大数据知识梳理 3142

MOS管驱动电路设计全攻略

MOS管驱动电路设计全攻略

让你爱上电路设计 3634

在 Kubernetes 上安装 KubeSphere3.0 + DevOps

比起默认的 dashboard ,Kubesphere 集成了很多套件。我们用 kubesphere 可以打通全部的 devops 链路。所有的问题建议优先查看官方文档。

loakjwhb的博客 1503

JavaSwing_1.1: FlowLayout(流式布局)

FlowLayout,流式布局管理器。按水平方向依次排列放置组件,排满一行,换下一行继续排列。

谢TS的博客 7万+

【STM32项目】基于Stm32c8t6-镭射激光打印机的设计(完整工程资料源码)

随着打印技术的快速发展,镭射打印技术也开始得到越来越广泛的应用。这种技术可以被用于在木材、塑料、皮革、织物等各种材料上进行图形打印,并且通常比传统机器更快、更准确和更灵活。

嵌入式技术开发 7198

【DevOps】在CentOS中安装Rancher2,并配置kubernetes集群

准备 一台CentOS主机,安装DockerCE,用于安装Rancher2 一台CentOS主机,安装DockerCE,用于安装kubernetes集群管理主机 多台CentOS主机,安装DockerCE,用于运行kubernetes工作节点,工作节点需要与集群管理主机在同一个子网中 掌握Docker常用操作,了解K8s基本原理 安装Rancher2 第一步...

weixin_34380296的博客 286

面试提问:数据开发中如何通过指标拆解来指导SQL编写?(附拆解模板)

摘要:指标拆解是一种高效的数据分析方法,通过将复杂业务指标分解为可执行的原子指标,指导SQL查询的编写。核心步骤包括:明确指标定义、拆解原子指标、定位数据源、确定分组维度、构建中间表。文章提供了指标拆解模板和实际案例(如用户留存率计算),并总结了拆解带来的5大好处:逻辑清晰、易于调试、可复用、降低错误率、便于协作。最后强调"一定义、二拆解、三定位、四分步、五合并"的口诀,适用于数仓开发、BI报表等场景。

石榴姐yyds 266

Kubernetes DevOps环境搭建(四):使用kubeadm安装Kubernetes集群

文章目录一、前言二、安装Docker、kubectl、kubeadm三、配置K8S集群前的准备四、使用`kubeadm`初始化Kubenets集群五、安装pod网络(CNI网络插件)(1)在线下载的形式配置,下载网络插件配置(Kubernetes v1.7+ 以上)(2)如果上述方法遇到如下如问题五、部署一个Pod测试集群 一、前言 K8s官方安装操作文档: http://docs.kubernetes.org.cn/457.html 二、安装Docker、kubectl、kubeadm 全部的机器都要安装

Lenjor 的博客 573

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Docker安装rancher并搭建k8s集群

rancher是一套容器管理平台,它可以帮助组织在生产环境中轻松快捷的部署和管理容器,rancher可以轻松地管理各种环境的kubernetes,满足IT需求并为devops团队提供支持Kubernetes 不仅已经成为的容器编排标准,它也正在迅速成为各类云和虚拟化厂商提供的标准基础架构。Rancher 用户可以选择使用 Rancher Kubernetes Engine(RKE)创建 Kubernetes集群,也可以使用 GKE,AKS 和 EKS 等云 Kubernetes 服务。

kirk15951859811的博客 1223

深度学习工具包 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集群构建

一、云原生和kubernetes 1、云原生: 云是和本地相对的,传统的应用必须跑在本地服务器上,现在流行的应用都跑在云端,云包含了IaaS、PaaS和SaaS。原生就是土生土长的意思,我们在开始设计应用的时候就考虑到应用将来是运行云环境里面的,要充分利用云资源的优点,比如️云服务的弹性和分布式优势。 云原生是基于分布部署和统一运管的云端服务,以容器、微服务、DevOps等技术为基础建立的一套云技术产品体系。云原生指的是一个灵活的工程团队,遵循敏捷的研发原则,使用高度自动化...

fengchengwu2012的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: k8s集群安装Ingress,KubeSphere可视化界面安装K8s
下一篇: k8s创建并发布WordPress
凌晨里的无聊人
博客等级 码龄8年 2320粉丝 206原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

凌晨里的无聊人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值