首页
在线工具
搜索
1
Kuboard与KubeSphere的区别:Kubernetes管理平台对比
2
ShardingSphere使用中的重点问题剖析
3
Flowable工作流引擎源码深度解析
4
用AI生成的原型设计稿效果还可以
5
如何将Virtualbox和VMware虚拟机相互转换
杂谈与随笔
工具与效率
源码阅读
技术管理
运维
数据库
前端开发
后端开发
Search
标签搜索
Angular
Docker
Phabricator
SpringBoot
Java
Chrome
SpringSecurity
SpringCloud
DDD
Git
Mac
K8S
Kubernetes
ESLint
SSH
高并发
Eclipse
Javascript
Vim
Centos
Jonathan
累计撰写
86
篇文章
累计收到
0
条评论
首页
栏目
杂谈与随笔
工具与效率
源码阅读
技术管理
运维
数据库
前端开发
后端开发
页面
搜索到
16
篇与
的结果
2023-06-16
Jumpserver的MFA配置
Jumpserver的MFA配置 [[ https://docs.jumpserver.org/zh/v3/guide/system/authentication/mfa/ | 官方文档说明 ]] 管理员配置账号 JumpServer开启MFA认证 普通用户使用 使用浏览器登录堡垒机,配置MFA 按需下载对应app进行绑定(使用阿里云APP) 第一步:打开阿里云,点击下方的【+】号。 第二步,在弹出的页面中,点击下方的【虚拟MFA】 第三步,进入虚拟MFA页面,点击【扫码添加】即可
2023年06月16日
2022-05-06
实施DevOps与监控
实施DevOps与监控 完成一套简单从环境安装、软件开发到应用发布的简单生命周期可持续的软件、应用管理流程。 背景 环境部署:项目实施每次部署环境都需要从头安装服务端软件,需要提一套简单流程让安装软件不需要每次都重复该项工作,并可复用,可迭代,多版本。 可持续软件发布:项目实施软件开发、测试、发布没有统一的标准、流程、规范。需要提供一套标准、规范的devops流程。 软件监控:项目实施发布后,性能、异常没有很好的监控,需要提供一套完整的监控体系进行监控和异常报警。 性能优化:提供异常、性能优化wiki供项目实施参考。 项目实施的环境安装 周期:项目实施的环境安装是一次性的。一般在项目初期的开发环境安装和测试环境安装。项目即将发布时环境的安装。 差异性:一般主要是实施单位的差异,每个公的环境不用、软件标准、服务器配置不同。 重复性:主要体现在多个实施单位、很多中间件、服务器环境是相同的。 使用Ansible进行环境的安装,该开源软件提供web ui界面帮助用户简单、流程化的完成环境的安装。 Ansible Awx的详细介绍参考Ansible Awx的介绍文档。基本的流程如下: 1. 脚本维护与版本控制 实施团队或开发团队根据需求更新 Ansible 脚本。 更改会通过 Pull Request 或合适的代码审查流程推送到 Git 仓库。 使用 Git 标签或分支管理不同版本的 Ansible 脚本,以适应不同版本的软件或不同客户的配置需求。 2. AWX 配置与准备 系统管理员或 DevOps 团队为实施团队配置 AWX,包括用户权限、团队、项目和作业模板。 在 AWX 中设置相应的 Git 仓库作为项目来源,确保 AWX 可以访问并同步该仓库。 3. 客户环境准备 实施团队与客户沟通,收集和配置目标服务器的信息。 在 AWX 中设置相应的库存,将客户的服务器信息录入。 如果需要,还可以为特定的客户或服务器组设置变量。 4. 软件部署 实施团队在 AWX 中选择合适的作业模板,并针对特定的库存执行它,以在客户的服务器上部署软件。 可以在 AWX 的 UI 中实时监控部署过程。 如有需要,可以调整 Ansible 脚本或 AWX 变量,然后重新运行作业模板。 5. 验证与确认 实施团队和/或客户验证软件是否已正确安装并按预期运行。 如有问题,返回到步骤 1 或步骤 4 进行调整。 6. 文档和培训 为客户提供任何相关的文档,说明如何使用或维护新安装的软件。 如有需要,为客户提供相关培训。 7. 支持与维护 实施团队或支持团队提供后续的技术支持,帮助客户解决可能出现的任何问题。 当软件有更新或需要变更配置时,回到步骤 1 开始新的部署周期。 这个流程提供了从脚本维护到客户软件部署的完整视图,以及后续的支持。当然,每个公司的具体需求和流程可能会有所不同,所以你可能需要根据你的实际情况进行调整。 sequenceDiagram participant 脚本开发者 participant 系统管理员 participant 实施团队 participant 客户 participant 支持团队 participant 公司 脚本开发者->>系统管理员: 推送更新的 Ansible 脚本到 Git 系统管理员->>系统管理员: 使 AWX 与 Git 仓库同步 公司->>实施团队: 提供 AWX 离线版本 客户->>实施团队: 提供目标服务器详情 实施团队->>系统管理员: 请求 AWX 访问权限 系统管理员->>实施团队: 在 AWX 上授予权限 实施团队->>AWX: 在 AWX 中配置库存 实施团队->>AWX: 运行作业模板进行软件部署 AWX->>客户: 在客户的服务器上部署软件 客户->>实施团队: 提供部署反馈 实施团队->>脚本开发者: 报告脚本中的问题或需要的更改 客户->>支持团队: 报告部署后的问题或提问 支持团队->>客户: 提供解决方案和答案 可持续软件发布 周期:软件开发、测试、发布、上线、迭代。 客户差异:客户已有devops流程与没有devops流程 复杂度:是单体应用还是微服务应用,代码管理是git还是svn。 综合考虑使用jenkins作为构建工具,主要因为jenkins专注于构建,生态完整,老牌开源产品,市场用户大,且PipeLine支持图形页面设计。详细devops流程请参考Devops流程 基于普通环境的devops流程: sequenceDiagram participant 项目经理 as 项目经理 participant 开发人员 as 开发人员 participant 测试人员 participant 运维人员 as 运维人员 participant Jenkins 项目经理->>开发人员: 定义需求 开发人员->>项目经理: 讨论技术可行性 测试人员->>项目经理: 了解需求为测试做准备 开发人员->>开发人员: 本地编码 开发人员->>Jenkins: 推送代码至版本控制系统 开发人员->>开发人员: 代码审查 Jenkins->>开发人员: 触发CI流程 开发人员->>Jenkins: 关注构建与测试结果 Jenkins->>开发人员: 执行静态代码检查 & 单元测试 Jenkins->>测试人员: 报告代码覆盖率 测试人员->>Jenkins: 使用JMeter进行性能测试 开发人员->>Jenkins: 基于性能结果优化代码 运维人员->>Jenkins: 配置预生产环境 测试人员->>Jenkins: 在预生产环境执行集成测试 运维人员->>Jenkins: 部署至生产环境 测试人员->>运维人员: 验证生产环境部署 运维人员->>Jenkins: 监控生产环境 开发人员->>测试人员: 基于生产反馈修复问题 项目经理->>所有人: 组织项目回顾 所有人->>项目经理: 分享反馈与经验教训 基于k8s部署的环境 sequenceDiagram participant 项目经理 as 项目经理 participant 开发人员 as 开发人员 participant 测试人员 participant 运维人员 as 运维人员 participant Jenkins participant K8s as Kubernetes 项目经理->>开发人员: 定义需求 开发人员->>项目经理: 讨论技术可行性 测试人员->>项目经理: 了解需求为测试做准备 开发人员->>开发人员: 本地编码 开发人员->>Jenkins: 推送代码至版本控制系统 开发人员->>开发人员: 代码审查 Jenkins->>开发人员: 触发CI流程 开发人员->>Jenkins: 关注构建与测试结果 Jenkins->>开发人员: 执行静态代码检查 & 单元测试 Jenkins->>测试人员: 报告代码覆盖率 测试人员->>Jenkins: 使用JMeter进行性能测试 开发人员->>Jenkins: 基于性能结果优化代码 Jenkins->>K8s: 使用Docker构建容器镜像 K8s->>Jenkins: 确认镜像构建成功 运维人员->>K8s: 配置预生产K8s环境 Jenkins->>K8s: 在K8s预生产环境部署应用 测试人员->>K8s: 在预生产环境执行集成测试 运维人员->>K8s: 部署应用至K8s生产环境 测试人员->>运维人员: 验证K8s生产环境部署 运维人员->>K8s: 使用K8s监控生产环境 开发人员->>测试人员: 基于生产反馈修复问题 项目经理->>所有人: 组织项目回顾 所有人->>项目经理: 分享反馈与经验教训 监控 搭建一个监控体系来监控 Kubernetes (K8s) 上运行的 Spring Boot 应用需要考虑几个方面:指标收集、日志收集、告警以及可视化。在本指南中,我们将使用 SkyWalking、Prometheus、Grafana 和 Elasticsearch (ES) 来完成这一任务。以下是如何整合这些组件的基本步骤: SkyWalking:用于分布式追踪,提供深入的性能指标和应用拓扑视图。 Prometheus:用于收集和存储指标数据。 Grafana:用于可视化 Prometheus 和 SkyWalking 的数据。 Elasticsearch (ES):用于存储和查询日志数据。 步骤如下: 1. 搭建 SkyWalking 在 Kubernetes 集群中部署 SkyWalking。 修改 Spring Boot 应用以包含 SkyWalking Java Agent。这通常涉及将 Java Agent JAR 文件添加到 JVM 的启动参数中,并配置 Agent 连接到 SkyWalking OAP 服务器。 skyWalking可观测sql的链路执行,java线程的执行链路,http请求的执行链路、打印log日志。 2. 搭建 Prometheus 使用 prometheus-operator 在 Kubernetes 上部署 Prometheus。它允许更容易地管理 Prometheus 实例,并与 Alertmanager 和其他相关组件一起工作。 为 Spring Boot 应用配置 micrometer,使其发布 Prometheus 格式的指标。 定义 ServiceMonitor 或 PodMonitor 资源,让 Prometheus 自动发现并抓取 Spring Boot 应用的指标。 3. 搭建 Grafana 在 Kubernetes 上部署 Grafana。 配置 Grafana 使用 Prometheus 作为数据源。 导入或创建用于 Spring Boot 应用和 Kubernetes 的仪表板。 4. 集成 Elasticsearch 在 Kubernetes 上部署 Elasticsearch。 配置 Spring Boot 使用 logback 或其他日志框架将日志发送到 Elasticsearch。 可以使用 Kibana 或 Grafana 为 Elasticsearch 创建仪表板,以可视化日志数据。 5. 警告和通知 使用 Prometheus 的 Alertmanager 来定义警告规则和接收警告。 配置 Alertmanager 将警告发送到所需的通知渠道,如 Slack、Email 等。 此步骤只是概述,具体的实施可能涉及更多的配置和调整,特别是考虑到 Kubernetes 和 Spring Boot 应用的特定需求和环境。确保在生产环境部署前进行充分的测试。 更多业务链路日志可以通过自定义skywalking自定义封装 kibana是否使用可以再讨论,应该不需要复杂的日志查询
2022年05月06日
2021-02-05
Kuboard与KubeSphere的区别:Kubernetes管理平台对比
Kuboard与KubeSphere的区别:Kubernetes管理平台对比 Kuboard和KubeSphere都是为Kubernetes设计的图形化管理平台,但它们在功能特性、设计理念和适用场景上有着明显的区别。下面我将对这两个平台进行全面的对比分析。 基本概述 Kuboard是一个基于Web的Kubernetes管理工具,专注于提供轻量级且易于使用的Kubernetes可视化管理界面。它是国产开源项目,由之前的Kubernetes Dashboard团队成员开发。 KubeSphere是一个更为全面的多租户企业级容器平台,不仅提供Kubernetes的管理功能,还集成了DevOps、微服务治理、监控告警、日志管理等多种功能。 架构与安装 Kuboard: 架构相对简单,核心组件较少 安装过程简便,只需要在Kubernetes集群中部署单个容器 资源占用较小,适合中小型集群 支持多集群管理但实现方式相对简单 KubeSphere: 采用模块化的架构设计,包含多个核心组件 安装较为复杂,但提供了多种安装方式(最小化安装、完整安装) 资源消耗相对较高,适合企业级大型集群 提供全面的多集群管理功能 功能对比 Kuboard: 专注于Kubernetes基础资源管理(Pod、Deployment、Service等) 提供直观的状态展示和问题诊断功能 具备基础的日志查看和事件监控能力 提供简单的RBAC权限管理 支持工作负载编排和应用管理 支持通过Web界面直接管理Pod内文件系统,可以浏览、编辑、上传和下载Pod中的文件,无需使用命令行工具 KubeSphere: 提供更全面的Kubernetes资源管理 集成了完整的DevOps工具链(Jenkins集成、流水线、代码仓库) 提供微服务治理能力(服务网格、灰度发布) 具备完善的监控告警系统(Prometheus集成) 支持多维度日志收集与分析 具有更强大的多租户和权限管理系统 提供应用商店功能,可一键部署常用应用 文件管理操作相对不如Kuboard直观和便捷 用户体验 Kuboard: 界面设计简洁明了,上手快速 专注于提高日常运维效率 适合已有Kubernetes基础知识的用户 操作流程更符合Kubernetes原生概念 文件管理功能降低了运维复杂度,特别适合需要频繁查看和修改容器内文件的场景 KubeSphere: 界面设计精美,功能分类清晰 抽象了许多Kubernetes复杂概念,降低了使用门槛 适合不同技术背景的团队使用 提供良好的可视化监控和分析能力 适用场景 Kuboard: 中小型企业或团队的Kubernetes管理 需要轻量级且易于部署的管理工具 团队已有一定的Kubernetes基础知识 主要需求集中在基础资源管理和监控 需要频繁进行容器内文件调试和维护的场景 KubeSphere: 大型企业的容器云平台 需要一站式解决方案,包括开发、测试、部署全流程 对多租户、安全性有较高要求 需要微服务治理和DevOps能力 团队技术背景多样,需要降低使用门槛 社区和支持 Kuboard: 主要面向国内用户,中文文档和支持更为丰富 社区规模相对较小,但活跃度较高 更新迭代速度快,响应用户需求积极 KubeSphere: 同时面向国内外用户,提供多语言支持 拥有较大的社区规模和商业支持 有更多的企业级用户案例 技术栈更广泛,集成了更多开源组件 结论 选择Kuboard还是KubeSphere,主要取决于您的具体需求和场景: 如果您需要一个轻量级、易于部署和使用的Kubernetes管理工具,主要用于基础资源管理、简单监控以及需要频繁进行容器内文件操作的场景,Kuboard是很好的选择。特别是其直接管理Pod内文件的功能,对于开发调试和日常运维非常实用。 如果您需要一个功能全面的企业级容器平台,包括DevOps、微服务治理、多租户管理等高级功能,那么KubeSphere更适合您的需求。 两者并非完全竞争关系,在某些场景下甚至可以互补使用:例如可以在开发环境使用Kuboard进行快速部署和测试,而在生产环境使用KubeSphere进行全面管理。 无论选择哪一个平台,它们都大大简化了Kubernetes的使用难度,提高了容器化应用的管理效率。根据您的团队规模、技术栈和业务需求,选择最适合的管理平台将帮助您更好地利用Kubernetes的强大能力。
2021年02月05日
2021-01-05
K8S笔记
2021年01月05日
2020-04-01
K8S搭建准备工作全解析
K8S搭建准备工作全解析 在容器编排领域,Kubernetes(简称K8S)已然成为了事实上的标准。它能够高效地管理容器化应用程序,实现自动化部署、扩展和管理。然而,在搭建K8S集群之前,有一系列重要的准备工作需要完成。本文将结合思维导图,深入介绍K8S搭建的前期准备要点。 一、机器准备 搭建K8S集群,首先需要准备合适的机器资源,这里计划准备5台机器,每台机器都承担着特定的角色: 第一台:软件服务器 glt:可能是用于特定的版本管理或者代码托管等相关功能,是软件开发和部署流程中的重要一环。 ssr证书签发:负责生成和管理SSL/TLS证书,这些证书对于保障网络通信的安全性至关重要,能够防止数据在传输过程中被窃取或篡改。 docker-nginx网关:作为网关,它可以对进入集群的流量进行管理和转发,同时借助Docker进行部署,方便快捷且易于维护。 harbor docker仓库:用于存储和管理Docker镜像,是容器镜像的集中存储地,方便在集群中进行镜像的分发和部署。 第二台:DNS服务/代理分发 这台机器主要负责域名系统(DNS)相关的服务以及代理分发功能。DNS服务可以将域名解析为IP地址,使得用户能够通过易于记忆的域名访问集群中的服务。代理分发功能则可以根据一定的策略,将请求合理地分配到不同的后端服务器上,实现负载均衡。 第三台:代理分发 进一步强化负载均衡和请求分发的能力,通过合理的配置和算法,将网络请求均匀地分配到集群中的各个节点,避免单个节点负载过高,提高整个集群的性能和可用性。 第四台和第五台:service/pod节点 这两台机器作为service/pod节点,是运行K8S中服务(Service)和容器组(Pod)的关键所在。它们承载着具体的应用程序容器,通过K8S的调度和管理,实现容器的高效运行和资源分配。 二、第三方软件准备 除了机器资源,还需要安装和配置一系列第三方软件,这些软件在K8S集群中各自发挥着不可或缺的作用: etcd 高可用的服务发现与存储:etcd是一个分布式键值存储系统,它为K8S集群提供高可用的服务发现和配置存储功能。集群中的各种配置信息、服务注册信息等都可以存储在etcd中,方便各个组件进行读取和更新。 基于Raft算法:采用Raft算法保证数据的一致性和高可用性,通过选举领导者等机制,确保在多个etcd节点之间数据能够正确同步和处理。 proxy,apiserver的注册发现:帮助K8S中的代理(proxy)和API服务器(apiserver)进行注册和发现,使得各个组件之间能够准确地相互通信和协作。 supervisor 作为守护进程工具,supervisor的作用是对集群中的所有程序进行统一管理。它可以监控程序的运行状态,在程序意外终止时自动重启,确保集群中的各项服务能够持续稳定地运行。 flanneld flanneld负责创建和管理虚拟网络,它解决了容器之间的通信问题。通过为容器提供一个虚拟的网络环境,使得不同节点上的容器能够像在同一网络中一样进行通信,方便了容器化应用的部署和运行。 coredns DNS服务器/转发器:coredns作为K8S集群内部的DNS服务器,承担着域名解析和转发的任务。它能够将服务名称解析为对应的IP地址,实现K8S中的服务发现功能。 解决K8S的服务发现:在K8S中,服务的IP地址可能是动态变化的,coredns通过动态解析和更新,能够及时准确地将服务名称映射到正确的IP地址,确保服务之间的通信顺畅。 解决pod的问题:对于Pod,coredns同样重要。它可以处理Pod的IP地址动态变化情况,以及service资源的创建和销毁等情况,类似于域名和IP的关系,实现service的自动发现,保障Pod能够正确访问到对应的服务。 三、总结 K8S搭建准备工作涉及机器资源的合理规划和第三方软件的精心选择与配置。每一个环节都至关重要,它们相互配合,共同为构建一个稳定、高效、可用的K8S集群奠定基础。在实际搭建过程中,需要严格按照要求进行操作,并根据具体的业务需求和环境特点进行适当的调整和优化,只有这样才能充分发挥K8S在容器编排和应用管理方面的强大优势。
2020年04月01日
1
2
...
4