Heartsuit
物联网平台架构师,优快云博客专家,阿里云专家博主,PMI认证项目管理专家(PMP),具备物联网、云原生、大数据等领域的研发经验。
展开
-
云原生之运维监控实践-OpenEuler22.03SP3上安装Prometheus与Grafana实现主机状态监测
本文记录了在 Docker 环境下使用 docker-compose 部署 Prometheus 和 Grafana 监控系统的过程,并通过 node-exporter 实现对主机状态的监控。文章介绍了 Prometheus 和 Grafana 的主要功能,提供了具体的安装步骤、配置文件示例、以及验证和可视化的操作指南。通过这些步骤可以在两台虚拟机上成功部署和运行 Prometheus 和 Grafana ,并实现对微服务主机的监控和数据可视化。原创 2024-09-28 13:30:00 · 1377 阅读 · 0 评论 -
使用docker-compose部署时序数据库InfluxDB1.8.4
考虑团队成员对 `2.x` 熟悉程度与学习成本,保守选择了 `1.8.4` 版本;以下主要记录了使用 `Docker` 安装 `InfluxDB` 遇到的问题与解决方法。对于一个数据库的基本操作,除了增删改查外,我们还经常需要进行数据的迁移与同步,这就涉及到数据的备份与恢复操作。原创 2024-05-25 09:00:00 · 1729 阅读 · 0 评论 -
云原生之容器编排实践-OpenEuler23.09离线安装Kubernetes与KubeSphere
本文介绍了如何在 OpenEuler 23.09 操作系统上离线安装 Kubernetes 和 KubeSphere 。首先,需要在一台联网的机器上下载所需的镜像和软件包,制作成离线安装包。然后,在离线环境的虚拟机上,通过配置和安装依赖组件,准备安装环境。接着,使用 KubeKey工具初始化本地镜像仓库 Harbor ,并创建所需的 Harbor 项目。最后,通过 KubeKey 配置文件,指定 Harbor 认证信息和私有镜像仓库地址,完成 Kubernetes 集群和 KubeSphere 的离线安装。原创 2024-09-28 08:30:00 · 1330 阅读 · 0 评论 -
云原生之容器编排实践-OpenEuler23.09在线安装Kubernetes与KubeSphere
前几篇文章中介绍了如何将ruoyi-cloud项目部署到Kubernetes集群中,包括网关服务、认证服务和系统服务并且对全部服务采用YAML文件的方式来进行部署,这虽然有助于理解K8S组织管理资源的风格与底层机制,但是对于团队中不太熟悉命令行操作的成员不太友好,现在我们借助由青云开源的容器平台KubeSphere来进行可视化的服务部署。KubeSphere是在Kubernetes之上构建的面向云原生应用的分布式操作系统,完全开源,支持多云与多集群管理,提供全栈的IT自动化运维能力;KubeKey一键安装。原创 2024-06-30 10:03:26 · 1669 阅读 · 0 评论 -
云原生之容器编排实践-ruoyi-cloud项目部署到K8S:网关服务、认证服务与系统服务
部署一个服务前,需要明确它是有状态服务还是无状态服务,这里 `MySQL` , `Nacos` , `Redis` , `Nginx` 当做有状态服务(StatefulSet)来部署;而 `Gateway` , `Auth` , `System` 这些微服务作为无状态服务(Deployment)来部署。这一次对全部服务采用 `YAML` 文件的方式来进行部署,这有助于理解K8S组织管理资源的风格,后续我们可以借助开源的容器平台,eg: `KubeSphere` 来进行可视化的服务部署。原创 2024-03-10 14:30:00 · 3314 阅读 · 0 评论 -
云原生之容器编排实践-ruoyi-cloud项目部署到K8S:Nginx1.25.3
部署一个服务前,需要明确它是有状态服务还是无状态服务,这里 MySQL , Nacos , Redis , Nginx 当做有状态服务(StatefulSet)来部署;而 Gateway , Auth , System 这些微服务作为无状态服务(Deployment)来部署。这次我们先是借助 kompose 工具,实现对 dokcer-compose 的 yaml 到 K8S 的 yaml 的转换,经过简单的加工后即可应用部署;通过以上操作,成功将 Nginx 1.25.3 部署到了 K8S 集群。原创 2024-03-10 09:00:00 · 1390 阅读 · 0 评论 -
云原生之容器编排实践-ruoyi-cloud项目部署到K8S:Redis7.2.3
部署一个服务前,需要明确它是有状态服务还是无状态服务,这里 `MySQL` , `Nacos` , `Redis` , `Nginx` 当做有状态服务(StatefulSet)来部署;而 `Gateway` , `Auth` , `System` 这些微服务作为无状态服务来部署。这次我们先是借助 kompose 工具,实现对 dokcer-compose 的 yaml 到 K8S 的 yaml 的转换,经过简单的加工后即可应用部署;通过以上操作,成功将 Redis 7.2.3 部署到了 K8S 集群。原创 2024-03-03 21:12:06 · 1333 阅读 · 0 评论 -
云原生之容器编排实践-ruoyi-cloud项目部署到K8S:Nacosv2.2.3
部署一个服务前,需要明确它是有状态服务还是无状态服务,这里 MySQL , Nacos , Redis , Nginx 当做有状态服务(StatefulSet)来部署;而 Gateway , Auth , System 这些微服务作为无状态服务(Deployment)来部署。这次我们先是借助 kompose 工具,实现对 dokcer-compose 的 yaml 到 K8S 的 yaml 的转换,经过简单的加工后即可应用部署;通过以上操作,成功将 Nacos v2.2.3 部署到了 K8S 集群。原创 2024-03-03 10:16:33 · 1484 阅读 · 0 评论 -
云原生之容器编排实践-ruoyi-cloud项目部署到K8S:MySQL8
本系列拿 ruoyi-cloud 项目进行练手,按照 MySQL , Nacos , Redis , Nginx , Gateway , Auth , System 的顺序来部署 ruoyi-cloud 微服务应用。这次我们先是借助 kompose 工具,实现对 dokcer-compose 的 yaml 到 K8S 的 yaml 的转换,经过简单的加工后即可应用部署;通过以上操作,成功将 MySQL 8.0 部署到了 K8S 集群,下一步我们安装下 Nacos v2.2.3 。原创 2024-02-25 18:21:05 · 2252 阅读 · 0 评论 -
云原生之容器编排实践-kubectl get pod -A没有coredns
前面搭建的3节点 Kubernetes 集群,其实少了一个组件: CoreDNS ,这也是我后面拿 ruoyi-cloud 项目练手时,部署了 MySQL 和 Nacos 服务后才意识到的:发现Nacos无法通过服务名连接MySQL,这里 Nacos 选择使用 MySQL 进行配置数据的持久化。初步分析,这可能是 K8S 内部的域名解析有问题,通过 kubectl get pod -A 一看,还真没有 coredns 。最后,我们了解了 K8S 集群内部服务之间调用的方式。原创 2024-02-25 13:12:45 · 1205 阅读 · 0 评论 -
云原生之容器编排实践-在K8S集群中使用Registry2搭建私有镜像仓库
基于前面搭建的3节点 Kubernetes 集群,今天我们使用 Registry2 搭建私有镜像仓库,这在镜像安全性以及离线环境下运维等方面具有重要意义。作为测试环境,本次使用 Registry2 搭建了私有镜像仓库,实际生产环境建议使用 Harbor;创建了一个 local-storage 的 StorageClass ,并使用本地磁盘的方式创建使用 PV ,实际建议使用 NFS 。原创 2024-02-18 17:31:58 · 1850 阅读 · 0 评论 -
云原生之容器编排实践-基于CentOS7搭建三个节点的Kubernetes集群
前面采用 minikube 作为 Kubernetes 环境来体验学习 Kubernetes 基本概念与操作,这样避免了初学者在裸金属主机上搭建 Kubernetes 集群的复杂度,但是随着产品功能的逐渐完善,我们需要过渡到生产环境中的 K8S 集群模式;而在实际上生产环境之前,我们先在本地虚拟机上进行了环境搭建与流程验证,作为新的起点,今天就先搭建一个3节点的 Kubernetes 集群,并总结了可能遇到的问题。原创 2024-02-18 10:20:47 · 1577 阅读 · 0 评论 -
Docker构建镜像时空间不足:/var/lib/docker,no space left on device
在一次更新业务服务功能后,重新在服务器上构建微服务镜像,在构建镜像时报错空间不足:/var/lib/docker, no space left on device赶紧用 df -h 看了下磁盘使用情况,果然, devicemapper 已经满了。。由于需要紧急上线,没有采用迁移 Docker 工作目录的方式;而是想办法删除一些没用的文件,空出本次镜像构建、容器运行的空间。记得在操作之前备份数据。原创 2023-12-16 15:13:00 · 3274 阅读 · 0 评论 -
Docker容器化部署若依微服务ruoyi-cloud项目
本文是关于使用Docker容器化部署若依微服务ruoyi-cloud项目的详细步骤和操作指南。通过这些步骤,您可以在Ubuntu或CentOS系统上安装Docker,并使用Docker基本操作来下载、运行、管理和部署若依微服务项目。此外,还介绍了离线部署容器化的微服务和Docker可视化管理工具的安装和使用方法。原创 2023-11-26 10:00:00 · 3955 阅读 · 2 评论 -
GitLab与GitLab Runner安装(RPM与Docker方式),CI/CD初体验
GitLab 是一个强大的版本控制系统和协作平台,记录一下在实际工作中关于 GitLab 的安装使用记录。一开始使用 GitLab 时,是在 CentOS7 上直接以 rpm 包的方式进行安装,仅作为代码托管工具来使用,版本: 14.10.4 。后续预研 GitLab 的 CI/CD 及流水线时,采用 Docker 方式安装,版本: 16.2.3-jh ;引入了 GitLab Runner ,版本: 16.2.0 。原创 2023-08-20 09:03:33 · 1739 阅读 · 0 评论 -
CentOS7.8离线安装Docker24.0.2,离线安装gcc与g++环境
有时候运维时要求在内网环境下操作,即服务器无法连接互联网,那么就无法通过 yum 源在线安装。。这时,一般通过以下3种方式来安装需要的软件:下载源码包编译安装;下载对应平台编译好的安装包,解压即可;下载rpm包,本地安装。在离线环境下,如果需要进行源码编译安装,比如 Nginx 、 Redis 等,则要求具备 gcc 与 g++ 这些基础环境。以下通过 rpm 包进行 gcc 与 g++ 的离线安装。原创 2023-07-16 20:22:28 · 2158 阅读 · 0 评论 -
云原生之容器编排实践-Kubernetes资源管理:标签选择器,注解以及命名空间
例如,指定创建对象的人员姓名的注解可以使在集群中工作的人员之间的协作更加便利。此外,我们做物联网平台开发时,为了方便对设备的管理,我们会对设备进行分组,同样也是通过不同的标签来实现,说白了,标签无非就是为了进行。也是为了对资源进行分组与隔离,而且可以将对象分割成完全独立且不重叠的组(显然,这一点与前面的标签进行分组有区别啦。作为一种容器编排工具,面临的服务实例动辄成百上千,需要一种手段通过一次操作对属于某个组的所有。的标签管理操作中新增、修改、删除也很简单,关键在查询过滤标签:标签选择器。原创 2022-10-07 19:22:48 · 696 阅读 · 1 评论 -
云原生之容器编排实践-以k8s的Service方式暴露SpringBoot服务
Kubemetes服务是一种为一组功能相同的Pod提供单一不变的接入点的资源。当服务存在时,它的IP地址和端口不会改变。客户端通过IP地址和端口号建立连接,这些连接会被路由到提供该服务的任意一个Pod上。通过这种方式,客户端不需要知道每个单独的提供服务的Pod的地址,这样这些Pod就可以在集群中随时被创建或移除。原创 2022-10-06 22:40:35 · 791 阅读 · 0 评论 -
云原生之容器编排实践-SpringBoot应用以Deployment方式部署到minikube以及弹性伸缩
的世界中都是这样的。当指定副本数为5时,那么最终调整得到的结果便是5个副本,不多也不少。需要注意的是,伸缩过程并不是一蹴而就的。由于一开始我们的副本数配置是2,当指定副本数为5时,我们看到现在的。并不会让你的应用变得可扩展,它只是让应用的扩缩容变得简单。的详细信息,不过其输出内容过长,这里省略了。应该执行什么操作,而是声明性地改变系统的期望状态,并让。检查当前的状态是否与期望的状态一致。有3个新增的副本:即Age为5s的那3个。来观察所发生的变化:根据我们的。,只设置新的期望的实例数量并让。原创 2022-10-05 20:11:52 · 1081 阅读 · 3 评论 -
云原生之容器编排实践-SpringBoot应用以YAML描述文件部署pod到minikube
关于Pod,以下知识点值得注意。一个Pod中可以有多个容器。一个Pod是一组紧密相关的容器,它们总是一起运行在同一个工作节点上,以及同一个Linux命名空间中。每个Pod就像一个独立的逻辑机器,拥有自己的IP、主机名、进程等,运行一个独立的应用程序。当一个Pod包含多个容器时,这些容器总是运行于同一个工作节点上,一个Pod绝不会跨越多个工作节点。Kubenetes集群中的所有Pod都在同一个共享网络地址空间中,这意味着每个Pod都可以通过其他Pod的IP地址来实现相互访问。原创 2022-10-04 11:02:31 · 742 阅读 · 0 评论 -
云原生之容器编排实践-CentOS7升级内核版本
一开始安装启动 minikube 时报错,原因之一是说操作系统的内核版本不支持。。其实,后来我指定了 Kubernetes 的版本就可以了,也就没有用到升级后的内核: minikube start --force --kubernetes-version=v1.23.1 。这里记录下 CentOS7 升级内核版本的操作。原创 2022-09-11 07:42:06 · 430 阅读 · 0 评论 -
云原生之容器编排实践-Docker使用JDK-Alpine镜像的时区问题导致定时任务不执行
的文档提示:https://docs.alpinelinux.org/user-handbook/0.1a/Installing/manual.html#_timezone,我们可以将以下代码添加到。经过排查后发现,定时任务与实际时间有关联,而容器内(openjdk:8-jdk-alpine)的时间与实际时间相差了8小时,应该是时区问题。那么,如何解决容器内的时区问题呢?网上有给出各类方式解决这个问题,而且针对了不同的操作系统的镜像都给出了方案。镜像,参考其官方文档后,直接在构建自己的镜像时设置好时区。原创 2022-09-10 21:45:26 · 1150 阅读 · 2 评论 -
云原生之容器编排实践-minikube传递秘钥使用阿里云私有镜像仓库
,我并没有看到一个选项来指定拉取镜像的密钥,好像无法将镜像的密钥作为运行命令的一部分进行传递。中拉取私有容器镜像仓库的镜像时,并不能直接拉取,还需要进行认证秘钥信息的配置,这在后续文章中会专门介绍到。两种方式下如何指定镜像拉取的密钥,完成从阿里云私有镜像仓库的拉取操作,然后部署到。即可根据指定的秘钥完成从阿里云私有镜像仓库的拉取操作,然后部署到。描述文件中使用的格式,不过是以单行命令的形式出现。显然,我们需要将私有镜像仓库的认证信息以某种方式告诉。Note:如果你的镜像仓库是公开的,那么直接。原创 2022-09-04 19:03:05 · 620 阅读 · 0 评论 -
云原生之容器编排实践-在CentOS7上安装minikube
作为初学者,为避免在裸金属主机上搭建 `Kubernetes` 集群的复杂度,以及使用云服务商提供的容器编排服务的一脸懵逼等打击信心的深坑,建议使用 `minikube` 来进入 `Kubernetes` 的世界。Minikube提供了一个轻量级的Kubernetes环境,可以在本地机器上快速搭建和测试Kubernetes应用程序。这对于学习和开发Kubernetes相关的技术非常有帮助。Minikube可以在没有互联网连接的情况下运行,这对于在没有稳定网络连接的环境中进行开发和测试非常有用。原创 2022-09-03 20:05:02 · 1955 阅读 · 7 评论 -
云原生之容器编排实践-阿里云私有容器镜像仓库
以上是使用阿里云提供的私有容器镜像仓库托管服务的具体实践,其实,其他云服务提供商提供的此类服务的用法基本一致,eg: 腾讯云,因为都是参考的Docker官方的镜像仓库来实现的。当然如果网络环境(主要是上传和拉取镜像的速度)具备条件,可直接使用Docker官方提供的镜像库。有了私有的容器镜像仓库,当在minikube或者Kubernetes中拉取私有容器镜像仓库的镜像时,并不能直接拉取,还需要进行认证信息配置,这在后续文章中会专门介绍到。原创 2022-09-03 09:32:00 · 248 阅读 · 0 评论 -
云原生之容器编排实践-SpringBoot应用Docker化
借助 Dockerfile 与 Maven 打包插件实现一键部署 Spring Boot 应用到远程 Docker 容器。将 Spring Boot 应用程序 Docker 化可以提供便携性、一致性、可扩展性、开发和测试效率以及资源利用率的优势。这使得 Docker 成为部署和运行 Spring Boot 应用程序的理想选择。Note:源码已上传。原创 2022-08-28 19:50:16 · 359 阅读 · 0 评论 -
云原生之容器编排实践-通过IDEA连接Docker服务
下可以看到有个Docker菜单。通过快捷键“Ctrl+Alt+S”呼出配置菜单,在。服务,包括容器、镜像、网络以及数据卷。安装在虚拟机(VMWare)中,我实际是在宿主机。开发工具,可以将我们的镜像直接发布到虚拟机中的。不出意外,输入完成后可以看到下方的。插件连接之前,先要配置允许远程访问。上进行开发,但是宿主机上并未安装。Tab下看到已建立连接的。我使用的是2021版本的。,可以直接运行容器。...原创 2022-08-28 16:31:48 · 1292 阅读 · 0 评论 -
云原生之容器编排实践-在CentOS7上安装使用Docker
本系列文章从一个容器化、云原生初学者的角度出发,介绍云原生基础设施、容器编排平台以及云原生应用的相关实践,侧重于云原生应用容器化部署的快速入门。容器化技术的应用场景:标准化的迁移方式,统一的参数配置,自动化部署,应用集群监控,开发与运维之间的桥梁。层面的隔离,虚拟化是物理资源层面的隔离。两者解决的问题不一样,在未来,两者将各自持续发展。拉取一个示例应用并运行,表明安装成功:hello-world。容器化技术的三个阶段:物理机时代,虚拟机时代,容器化时代。环境下进行实际的部署与运维工作。...原创 2022-08-28 12:44:09 · 346 阅读 · 0 评论