[云原生专题-60]:Kubesphere云治理-DevOps-自动化开发与自动化上云部署流程概述

2023-11-06

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/123015489


目录

前言:

第1章 Kubesphere的DevOps功能概述

1.1 Kubesphere概述

1.2 Kubesphere的四大能力:

第2章 kubesphere的DevOps功能

2.1 官方文档

2.2 DevOps功能概述

2.3 kubesphere DevOps功能概述

2.4 kubesphere DevOps的系统架构

2.5 kubesphere DevOps功能特点

第3章 如何开启安装 DevOps系统

3.1 前置条件

3.2 安装过程-没有按照KubeSphere之前

3.3 安装过程-已经按照KubeSphere之后

感悟


前言:

前面阐述和实践了通过手工的方式部署微服务应用程序,手工build,手工打包,手工上传文件,手工部署镜像等工作。如果这种部署几个月发布一次,如果是只有少量的微服务应用,这种手工操作是可以接受的,但如果这种部署天天都在发生、时时刻刻都在发生;如果微服务的数量成百上千,这种手工操作就显得力不从心、非常低效,最终导致无法实施。然而基于云原生的软件开发,具备了天然的时刻发布和微服务数据庞大的特点,因此就需要一种更加高效、更加自动化的手段来实现软件的开发和部署,Kubesphere的DevOps应运而生。

第1章 Kubesphere的DevOps功能概述

1.1 Kubesphere概述

KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式治理平台完全开源,支持多云与多集群管理,提供全栈的 IT 自动化运维能力,简化企业的 DevOps 工作流。它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用 (plug-and-play) 的集成。

1.2 Kubesphere的四大能力:

(1)kubesphere的运维Ops能力

kubesphere是其他微服务的Ops运维治理平台,可以轻松的实现对非kubesphere的微服务部署、管理、运维、治理,管理在线运行的各种业务应用的微服务。前面的章节就是再参数其运维Ops能力。

(2)kubesphere的软件开发Dev管理能力

kubesphere在云端集成了Jikens等各种其它的微服务软件开的工具套件,可以轻松的实现微服务软件工程的开发流程自动化,包括编译、测试、打包、镜像生成、镜像发布、镜像的部署的全流程化、全自动化。而微服务部署后的微服务的运维与治理,就是kubesphere的运维Ops能力

kubesphere的运维Ops能力+kubesphere的软件开发Dev管理能力就构成了kubesphere的DevOps能力。

(3)kubesphere自身功能的微服务化能力

kubesphere其自身的各种功能模块本身就是基于微服务构建起来,可以即插即用地部署在云端,kubesphere的DevOps功能能力或功能,也是基于微服务发布和集成进kubesphere系统的。

(4)kubesphere自身行为的微服务化能力

kubesphere的DevOps把整个开发过程中的各种行为,按照流水线pipeline的方式进行了动态的组织和组装,它是如何做到得呢?kubesphere把开发过程中的开发每个行为,都抽象成一个一个的微服务,通过这些微服务的动态部署和删除,就实现了流水线行为的动态组装和定制化功能。

第2章 kubesphere的DevOps功能

2.1 官方文档

KubeSphere DevOps 系统 | KubeSphere Documents

2.2 DevOps功能概述

2.3 kubesphere DevOps功能概述

KubeSphere 针对容器与 Kubernetes 的应用场景,基于 Jenkins 提供了一站式 DevOps 系统,包括丰富的 CI/CD 流水线构建与插件管理功能,还提供 Binary-to-Image(B2I)、Source-to-Image(S2I),为流水线、S2I、B2I 提供代码依赖缓存支持,以及代码质量管理与流水线日志等功能。

内置的 DevOps 系统将应用的开发和自动发布与容器平台进行了很好的结合,还支持对接第三方的私有镜像仓库和代码仓库形成完善的私有场景下的 CI/CD,提供了端到端的用户体验。

可参考如下文档进一步了解 KubeSphere DevOps 系统的功能:

  • Binary-to-Image:将 WAR、JAR、Binary 这一类的制品快速打包成 Docker 镜像,并发布到镜像仓库中,最终将服务自动发布至 Kubernetes;
  • Source-to-Image:无需写 Dockerfile,仅输入源代码地址即可自动打包成可运行程序到 Docker 镜像的工具,方便构建镜像发布至镜像仓库和 Kubernetes;
  • 图形化构建流水线:通过图形化编辑的界面构建流水线,无需写 Jenkinsfile,交互更友好;
  • 基于 Jenkinsfile 构建流水线:基于项目仓库中已有的 Jenkinsfile 快速构建流水线;
  • 基于 GitLab + Harbor 构建流水线:支持对接第三方的镜像仓库和代码仓库;

2.4 kubesphere DevOps的系统架构

在上述架构中:

(1)微服务治理工具K8S + kubesphere :安装在云端

(2)DevOps套件(包括Jenkins、maven等工具): 与kubesphere一起,安装在云端

(3)微服务应用:与K8S + kubesphere一起,部署在云端

(4)编译、测试服务器:可以与kubesphere部署在一起,并通过名字空间与运维系统加以隔离,也可以是指定的外部服务器,部署的优势是kubesphere已经集成了大量的开发工具。

(5)外部的服务器仓库:github等代码仓库、包制品参考、docker镜像仓库、K8S仓库。

网络上有大量免费、开源、共享的资源,

(6)私有的服务器仓库:私有服务器存放公司核心数据,如公司自己的产品代码、文档、资料等。

可以看出,在云生系统中,几乎所有生成资料(土地、厂房、机器设备、工具、原料),都部署在云端,不受限于物理空间的限制,包括劳动者。

缺点是,需要大量的云服务器资源,云服务器被恶意释放的风险

2.5 kubesphere DevOps功能特点

  • 自动化:整个流程全自动完成
  • 动态组装:在这个流程中,不同的人,有不同的行为需求,需要动态组装各种行为。
  • 行为的微服务化:把各种基本行为包装在微服务中

第3章 如何开启安装 DevOps系统

DevOps并不是kubesphere的基础功能,而是一个动态组件,是需要动态的加载。

KubeSphere DevOps 系统 | KubeSphere Documents

开启DevOps的基本方法其实很简单:

(1)先编辑相应的配置文件,devops_enabled: true

(2)然后开始安装kubesphere,在安装kubesphere的过程中安装Deops,如果是已经安装了kubesphere,则直接安装DevOps。

因此,配置文件是关键。

3.1 前置条件

注意:开启可选功能组件之前,请先参考 可插拔功能组件列表,确认集群的可用 CPU 与内存空间是否充足,开启安装前可能需要提前扩容集群或机器配置,否则可能会因为资源不足而导致的机器崩溃或其它问题。

3.2 安装过程-没有按照KubeSphere之前

(1)编译配置文件

安装前,在 installer 目录下编辑 conf/common.yaml文件,然后参考如下开启。

#DevOps Configuration
devops_enabled: true # 是否安装内置的 DevOps 系统(支持流水线、 S2i 和 B2i 等功能),若机器配置充裕建议安装
jenkins_memory_lim: 8Gi # Jenkins 内存限制,默认 8 Gi
jenkins_memory_req: 4Gi # Jenkins 内存请求,默认 4 Gi
jenkins_volume_size: 8Gi # Jenkins 存储卷大小,默认 8 Gi
jenkinsJavaOpts_Xms: 3g # 以下三项为 jvm 启动参数
jenkinsJavaOpts_Xmx: 6g
jenkinsJavaOpts_MaxRAM: 8g
sonarqube_enabled: true # 是否安装内置的 SonarQube (代码静态分析工具)
#sonar_server_url: SHOULD_BE_REPLACED # 安装支持对接外部已有的 SonarQube,此处填写 SonarQube 服务的地址
#sonar_server_token: SHOULD_BE_REPLACED  # 此处填写 SonarQube 的 Token

devops_enabled: true # 是否安装内置的 DevOps 系统(支持流水线、 S2i 和 B2i 等功能),若机器配置充裕建议安装

(2)安装KubeSphere

3.3 安装过程-已经按照KubeSphere之后

(1)启动 ks-installer

通过修改 ks-installer 的 configmap 可以选装组件,执行以下命令(kubectl 命令需要以 root 用户执行)

$ kubectl edit cm -n kubesphere-system ks-installer

(2)修改配置文件

devops:
      enabled: True
      jenkinsMemoryLim: 2Gi
      jenkinsMemoryReq: 1500Mi
      jenkinsVolumeSize: 8Gi
      jenkinsJavaOpts_Xms: 512m
      jenkinsJavaOpts_Xmx: 512m
      jenkinsJavaOpts_MaxRAM: 2g
      sonarqube:
        enabled: True

保存退出,参考 验证可插拔功能组件的安装 ,无需再次执行安装命令 ./install.sh,仅需通过查询 ks-installer 日志或 Pod 状态即可验证功能组件是否安装成功。

感悟:

云原生更本质的目标是: 把从事软件生产,包括嵌入式软件生产的一切生产资料,包括厂房、机器、设备、工具、原材料等都放到云端,把生产出来的产品的销售、运维也放到云端,实现全过程的全自动化,甚至把甚至是生产者自身也是在云端,结合未来的人工智能,编程创作也是由机器完成,系统自动完成生产过程,生产力得到极大的提升,大多数人在整个环节中只是消费者,人存在的意义就只有消费,最终实现共产主义,甚至超越共产主义。以云原生技术为基础生产资料的创业就是轻资产创业。


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/123015489

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[云原生专题-60]:Kubesphere云治理-DevOps-自动化开发与自动化上云部署流程概述 的相关文章

随机推荐

  • Java数据结构——平衡二叉树(AVL树)

    AVL树的引入 搜索二叉树有着极高的搜索效率 但是搜索二叉树会出现以下极端情况 这样的二叉树搜索效率甚至比链表还低 在搜索二叉树基础上出现的平衡二叉树 AVL树 就解决了这样的问题 当平衡二叉树 AVL树 的某个节点左右子树高度差的绝对值大
  • 蚂蚁感冒 (acwing)

    文章目录 蚂蚁感冒 思路 AC代码 蚂蚁感冒 长 100 厘米的细长直杆子上有 n 只蚂蚁 它们的头有的朝左 有的朝右 每只蚂蚁都只能沿着杆子向前爬 速度是 1 厘米 秒 当两只蚂蚁碰面时 它们会同时掉头往相反的方向爬行 这些蚂蚁中 有 1
  • 字符串哈希,帮您解决记不住kmp的烦恼~

    思想 把字符串映射为哈希值 通过哈希值就可以定位唯一字符串 可以某种程度上替代kmp 而且比kmp好理解好记忆 字符串hash模板 int P 131 或者13331 经验值 String s hello int n s length lo
  • Log360与人工智能AI的结合

    随着信息技术的不断发展和普及 企业面临着越来越多的安全威胁和挑战 为了应对这些威胁 企业需要使用先进的安全技术和工具 其中 人工智能 AI 是一种非常有前途的技术 它可以自动分析大量的安全数据 发现和预测安全威胁 而Log360则是一款综合
  • 新服务器装rocks系统,采用ROCKS+的戴尔第12代HPC解决方案

    IT168 方案 ROCKs 6 0 1基于开源项目ROCKS而且被StackIQ所支持 该解决方案堆栈在Dell最新的硬件平台上进行了测试与验证 Dell最新的硬件平台采用的处理器是Intel Sandy Bridge以及AMD Inte
  • Python XML解析方法

    XML介绍 XML eXtensible Markup Language 可扩展标记语言 一种用于标记电子文件使其具有结构性的标记语言 被用来传输和存储数据 XML文档结构 一种树结构 从根部开始 扩展到枝叶
  • html中引入调用另一个html的方法有很多种

    发现html中引入调用另一个html的方法有很多种 我都尝试了一下 就把他们都列出来吧 其中推荐第一种和第六种 因为代码太长就写在最后了 其他的方法 可以自己尝试 看是不是适合你当前项目 一 需要借助 jquery div page1 lo
  • 已解决,硬盘安装Ubuntu时unable to find a medium containing a live file system

    U盘太老速度不快还不稳定 所以硬盘安装 出现 unable to find a medium containing a live file system提示 原因是在拷贝ISO文件到FAT32分区时 使用了系统的虚拟光驱自动挂载 然后拷贝所
  • 帆软开发中,在数据平台登录时,如何获取当前登录用户的用户名

    在公式中插入 fr username 可以直接获取到当前登录用户的用户名
  • Kubernetes系列~Master节点安装

    Master安装 gary 172 36 13 5 s password MobaXterm 10 9 SSH client X server and networking tools SSH session to gary 172 36
  • 阳过还需姑姑

    自由了 国家在12月5号宣布全面放开疫情 可惜我还是没能躲过第一批阳 回想一下可能的感染的地方吧 公司有几个阳阳来上夜班 等我们下班后 有2只阳就跑来加班 问题是其他几个同事又没事呢 这几天因为事情比较多 满成都的跑 在途中感染 问题是家里
  • 【Bias 04】Adversarial Feature Disentanglement for Place Recognition Across Changing Appearance

    Abstract Introduction Visual place recognition 给不同环境下的一系列图片 找到一对相同位置图片的联系 特征提取是这个任务的关键 因为appearance是改变的 需要找到不变的特征 本文提出分离
  • 字体单位大小对照换算表(字号、磅、英寸、像素)

    字号 数值 越大 字就越小 中文字号 英文字号 磅 毫米 像素 1英寸 72pt 25 30mm 95 6px 大特号 63pt 22 14mm 83 7px 特号 54pt 18 97mm 71 7px 初号 42pt 14 82mm 5
  • Unity游戏场景加载Loading详解

    游戏中的Loading现在都做得很漂亮 但是归根究底就两种类型 静态Loading和动态Loading 静态Loading可能就是一张背景图 而动态的Loading就是在读取的同时有一个东西在 转圈 1 静态Loading 优点 读取场景使
  • 开票软件金税盘时钟校对失败(跨月)修复方法

    当使用航天信息开票软件 aisino 金税盘出现时间不对 无法操作时 有两种情况 一种是时间仍在当月 可以直接校对 一种是跨月的情况 会提示需要到税局授权才能处理 实际上并不用去税局也可以处理 此方法有参考sometime918的部分内容
  • tq210-kernel 4.1.33移植(2)网卡驱动+NFS启动

    2016 10 17 设置了dts中网卡地址 配置了kernel的tcp ip IP PNP nfs Root file system on NFS 不再报vfs 挂载nfs panic的错误 但是也没有任何打印输出了 Starting k
  • BigDecimal转String

    BigDecimal是处理高精度的浮点数运算的常用的一个类 code public static void main String args 浮点数的打印 System out println new BigDecimal 10000000
  • JVM调优之 -Xms -Xmx -Xmn -Xss

    原博客地址 http uule iteye com 1 JVM垃圾回收与性能调优总结 2 JVM调优的几种策略 一 JVM内存模型及垃圾收集算法 1 根据Java虚拟机规范 JVM将内存划分为 New 年轻代 Tenured 年老代 永久代
  • CNN Matlab例子RGB_CNN(卷积神经网络)介绍

    什么是CNN 首先什么是CNN呢 我们在这里模仿儿童的学习方式 当小孩子学习一个陌生东西的时候 往往会从问题开始 这里我们拿CNN做对比 来介绍什么是CNN 从上面的对话 我们知道CNN的全称是 Convolutional Neural N
  • [云原生专题-60]:Kubesphere云治理-DevOps-自动化开发与自动化上云部署流程概述

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 123015489 目录 前言 第1章