
容器技术 Docker+K8S
文章平均质量分 92
容器技术笔记
hhzz
始终不渝,谦卑吾心。在 JAVA全栈前后端方面耕耘数年,同时也专注于前端流行框架vue 以及移动端 uniapp 和 uincloud 云端一体框架,平常喜欢记录学习博客,也乐于分享自己的学习心得;阿里云专家博主,目前专注重点是 docker 容器技术以及 k8s 集群管理、devops 开发运维和 aigc 大模型应用等;另外在地理信息 GIS 方面也有一定的研究。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Docker部署的gitlab升级的详细步骤(升级到17.6.1版本)
当前使用的是 17.1.2 版本!我们强烈建议您立即升级到以下版本之一:17.6.1, 17.5.3, 17.4.5。docker环境部署gitlab的升级很简单,直接基于高版本的镜像运行容器即可;Gitlab的版本平常更新很平凡,过一段时间就会提示更新弹框提示。本文是从17.1.2 版本升级到17.6.1最新版本。分别拉取三个版本的gitlab镜像。原创 2024-12-06 17:57:56 · 1827 阅读 · 2 评论 -
利用Docker搭建一套Mycat2+MySQL8一主一从、读写分离的最简单集群(保姆教程)
Mycat是一套布式数据库中间件(虚拟数据库类),它本身并不存储数据库。其原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的 SQL 语句,首先对 SQL 语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、 缓存分析等,然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。原创 2024-10-21 14:33:17 · 2449 阅读 · 18 评论 -
PlantUML的使用以及各种图表示例
PlantUML是一个通用性很强的工具,可以快速、直接地创建各种图表。利用简单直观的语言,用户可以毫不费力地绘制各种类型的图表。原创 2024-09-23 17:27:32 · 2330 阅读 · 0 评论 -
Docker部署gitlab私有仓库后查看root默认密码以及修改external_url路径和端口的方法
刷新gitlab,查看ssh和http地址,ip和端口已经完整显示了;原创 2024-07-10 08:34:14 · 972 阅读 · 0 评论 -
K8S两种安装方式如何选择?
nKubeadm VS kubernetes 二进制\n\n1、kubeadm 方式部署(推荐)\n推荐理由:\n\n官方推荐:kubeadm 是 Kubernetes 官方提供的工具,用于快速搭建生产级别的 Kubernetes 集群,尤其适合于初次部署和对集群稳定性要求较高的场景。\n\nFlannel:\n推荐理由:\n简单易用:Flannel设计简洁,易于安装和配置,特别适合于初学者和小型集群。\n性能优越:由于其基于 BGP 协议,数据路径效率较高,特别适合大规模集群和对性能敏感的应用场景。原创 2024-06-28 00:23:47 · 1011 阅读 · 1 评论 -
关于 kubernetes 的9个核心问题解答
1. 如何选择K8S的安装方式?2. 如何选择K8S集群网络组件?3. k8s集群中持久化存储方案如何选择?4. 是否 Helm 可作为线上应用管理工具?5. CICD 工具如何选择?6. k8s集群应用网关如何选择?7. k8s集群监控平台如何选择?8. 如何选择K8S中的可观察性工具?9. 在K8S集群中,Istio 是否具有全面应用的可行性?上述给出的解答仅仅是一种参考,涉及K8S集群技术栈的发展是一个动态的过程,既要实时了解技术趋势,同时也要贴合自身实际情况,适时调整和优化。原创 2024-05-28 10:54:02 · 718 阅读 · 0 评论 -
浅谈Docker容器的网络通信原理
Linux的namespace机制为容器提供了隔离的功能,使得我们在容器中看到了一个新的天地,好像进入了一个新的操作系统,这个时候我们查看网络信息,会发现也是全新的(包括网卡、本地回环设备、路由表和 iptables 规则),这是怎么做到的呢?让我们考虑一种场景:假如容器要访问百度首页,百度的Server要返回给容器数据,如果百度的Server将目的地址设置为容器的IP,由于容器的IP在外部是不可见的,就会导致结果的数据包无法返回,所以在发送请求给百度Server时需要将源IP转换为宿主机的IP。原创 2024-05-26 18:10:44 · 968 阅读 · 0 评论 -
记录一次使用docker部署gitlab完成后,推送代码成功,但是gitlab仓库中显示不出来项目信息的错误
Gitlab是我用docker部署在阿里云服务器上,当时gitlab的版本使用的是:gitlab/gitlab-ce:latest;这个版本的gitlab,阿里云云防火墙检测报了一个 敏感信息泄漏漏洞,建议要求升级Gitliab 至 14.8.2、14.7.4或14.6.5 及其以上。上述日志视乎没什么报错的地方,但是有个ip信息,这个ip是我机子的ip,使用这个ip给gitlab服务器发送请求,来获取项目信息;我的ip发送的请求被拦截了,其中的部分功被云安全中心判定为漏洞攻击;原创 2024-04-26 07:29:27 · 1747 阅读 · 3 评论 -
如何排查k8s集群中Pod内mysqld进程占用内存消耗过高?
在Pod内部占用内存的具体原因,进而采取相应的优化措施,如调整MySQL配置、优化查询、合理安排数据导入时间等,以降低内存使用或使其保持在一个合理的范围内。这些命令分别显示MySQL的内存分配、InnoDB缓冲池大小以及InnoDB引擎的状态,有助于了解内存使用的大致分布。在Kubernetes (K8s) 中,当发现Pod内。(如果已安装)命令查看各进程的内存使用情况,重点关注。这将显示Pod的CPU和内存使用情况,确认。进程及其子进程的内存使用概况。进程是否确实占用了大量内存。或者,如果容器内已安装。原创 2024-04-11 19:32:48 · 1488 阅读 · 0 评论 -
Docker部署SpringBoot+Vue前后端分离项目
因为我们是本地虚拟机,不能像云服务器一样无时无刻在运行,所以我们需要配置一下,让他开机自启,省得我们每次打开虚拟机都要打开docker。这里创建两个目录,springboot目录主要放后端项目的一些jar包,dockerfile等文件,vue目录主要放dist打包目录。浏览器打开http://192.168.186.101:80 ,进行访问,这里80是可以省略的,默认访问的就是80端口。然后发现我们的数据库,可以看到初始的四个数据库,说明本次安装成功!可以看到,我们Nginx的默认欢迎页,大功告成!原创 2024-04-11 18:49:03 · 1737 阅读 · 2 评论 -
三款好用的 Docker 可视化管理工具
Docker Desktop是一款针对个人开发者和小型团队设计的桌面应用程序,它提供了一种简单、方便的方式来创建、管理和运行Docker容器。作为Docker在桌面环境中的官方版本,DockerDesktop为用户提供了完整的Docker开发环境,支持在本地计算机上构建、测试和部署容器化应用程序。跨平台支持: Docker Desktop可在Windows、Linux 、MacOS操作系统上运行,为不同平台的开发者提供了一致的Docker体验。原创 2024-04-11 10:52:27 · 13809 阅读 · 1 评论 -
使用Docker中构建Java jar包,并且实现开启自启
确保在运行 docker build 命令之前已经构建了你的Java应用程序的JAR包,并将其放置在适当的位置。这样,当你的系统启动时,Docker服务会自动启动,并且在Docker服务启动后,my-java-app 容器也会自动启动。如果你想在Docker守护程序启动时自动启动容器,你可以使用系统级的工具(如 systemd)来管理Docker容器。这里假设你的应用程序将在容器内部的8080端口运行,并且你希望将容器的8080端口映射到主机的8080端口。确保在你的项目根目录下执行此命令。原创 2024-04-10 19:22:21 · 1581 阅读 · 0 评论 -
Langchain---开源、离线、免费商用的大模型知识库来袭!全流程可使用开源模型实现的本地知识库问答应用!快速搭建个人和企业私有智能知识库!
GitHub开源了一款可离线,支持检索增强生成(RAG)大模型的知识库项目。虽然开源时间不长,但是势头很猛,已经斩获25K Star。具备以下特点:项目利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案;项目支持的开源 LLM 与 Embedding 模型,本项目可实现全部使用开源模型离线私有部署。与此同时,本项目也支持 OpenAI GPT API 的调用,并将在后续持续扩充对各类模型及模型 API 的接入;原创 2024-04-10 10:27:13 · 3639 阅读 · 0 评论 -
使用 Jenkins、Gitlab、Harbor、Helm、k8s 来实现流水线作业
Dockerfile是一个文本文件,用于定义Docker镜像的构建过程,它包含了一系列指令和说明,用于指导Docker如何构建镜像。Dockerfile的基本结构包括基础镜像、镜像元信息、镜像操作指令以及容器启动时执行的命令。通过这些指令的组合,可以定义复杂的镜像构建过程,包括安装软件包、配置环境变量、复制文件等操作。Dockerfile不仅定义了软件的原材料(Dockerfile),还涉及到Docker镜像和Docker容器的概念,这三者共同构成了Docker体系的基石。注释:使用#进行注释。原创 2024-04-08 18:06:23 · 1307 阅读 · 1 评论 -
在 KubeSphere 中玩转 KubeEdge 边缘计算
根据国内网络(国内有多张骨干网,分别是电信 CHINANET 与 CN2,联通 CNCNET 以及移动 CMNET)现状,骨干网节点,城际网节点,汇聚网节点,接入网节点,以及数以万计的业务现场计算节点都可以安置边缘计算,因此范围太广难以形成统一标准。可以说边缘计算是云计算的延伸,是云计算把一些业务下沉到了边缘层。边缘计算发生在边缘层,位于云层和设备层中间,显而易见的好处就是离用户更近了,所以时延更小,提高了实时响应能力,降低了网络不稳定或带宽不足带来的影响,提高了业务持续性和可用性,也增强了数据安全性。原创 2024-03-31 19:39:12 · 2288 阅读 · 0 评论 -
详解k8s集群内外的访问方式
Ingress、NodePort和LoadBalancer都是Kubernetes中用于将Service公开到外部的方法,但它们之间有一些区别和适用场景。Ingress:如果需要在同一IP地址和端口上公开多个服务,并根据请求路径或主机名进行路由,则可以使用Ingress。Ingress是Kubernetes中的一个抽象层,它可以将多个Service公开到同一个IP地址和端口上,并根据请求路径或主机名进行路由,非常适合用于Web应用程序。NodePort。原创 2024-03-31 17:00:38 · 4302 阅读 · 0 评论 -
开源知识库平台Raneto--使用Docker部署Raneto
Raneto是一个免费、开放、简单的 Markdown 支持的 Node.js 知识库。知识库知识库是指存储和组织知识的系统或库,它包括了各种类型的信息和知识,如文本、图像、音频、视频等。知识库可以用于存储和检索知识,帮助人们获取特定领域的知识和解决问题。知识库通常由专业人员创建和维护,他们通过收集和整理各种资源和信息来构建一个完整的知识库。知识库可以包含大量的知识和信息,涵盖多个领域和主题。知识库可以用于多种用途,例如教育、研究、咨询等。原创 2024-03-30 18:18:55 · 2432 阅读 · 0 评论 -
利用Prometheus监控Kubernetes以及其应用
Prometheus是一个开源系统监控和警报工具包,最初由SoundCloud构建。自2012年成立以来,许多公司和组织都采用了Prometheus,并且该项目拥有非常活跃的开发人员和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并澄清项目的治理结构,Prometheus于2016年加入了云原生计算基金会,成为继Kubernetes之后的第二个托管项目。普罗米修斯收集并存储其指标作为时间序列数据,即指标信息与记录时间戳一起存储,以及称为标签的可选键值对。原创 2024-03-30 15:58:49 · 960 阅读 · 0 评论 -
常用的8个应用和中间件的Docker运行示例
【代码】常用的8个应用和中间件的Docker运行示例。原创 2024-03-28 11:56:32 · 1087 阅读 · 0 评论 -
Kubernetes常用命令汇总大全(备忘清单)
可以使用的文件扩展名有 .yaml、.yml 和 .json。资源名称: persistentvolumeclaims, 缩写: pvc。资源名称: persistentvolumes, 缩写: pv。资源名称: daemonsets, 缩写: ds。资源名称: ingresses, 缩写: ing。资源名称: services, 缩写: svc。资源名称: events, 缩写: ev。资源名称: nodes, 缩写: no。资源名称: pods, 缩写: po。原创 2024-03-28 11:46:01 · 1300 阅读 · 0 评论 -
Kubernetes中PV和PVC的几种状态类型
如果在系统中没有满足 PVC 要求的 PV,PVC则一直处于 Pending 状态,直到系统里产生了一个合适的 PV。PVC 创建成功之后,Pod 就可以以存储卷(Volume)的方式使用 PVC 的存储资源了。对于 PV,这意味着它已经被挂载到某个 PVC,并可能已经挂载到了使用该 PVC 的 Pod 中。没有PV之前,服务器的磁盘没有分区的概念,有了PV之后,相当于通过PV对服务器的磁盘进行分区。这通常发生在删除了引用它的 PVC 之后,但具体的后续处理取决于 PV 的回收策略。原创 2024-03-20 14:33:46 · 1406 阅读 · 0 评论 -
8种Kubernetes集群中Pod处于 Pending状态的故障排除方法
通过kubectl get pod -o yaml 查看pod的信息,其中status.phase字段表示该pod的阶段。pod中的容器地位均等且一同调度,在共享的上下文中运行。资源请求和限制:将节点上调度的所有 pod 的请求和限制总和与节点的可分配资源进行比较,以识别潜在的资源短缺。可分配与容量:了解差异;Pod 计数限制:除了 CPU 和内存之外,配额还可以限制 Pod 的数量,这可能是导致问题的原因。搜索 Pod 名称:按 Pod 名称过滤日志,以跟踪特定的调度尝试以及任何失败背后的原因。原创 2024-03-20 11:44:58 · 1990 阅读 · 0 评论 -
Kubernetes(k8s)集群健康检查常用的五种指标
使用 kubectl logs -f polardbx-hpfs-9scjk -n polardbx-operator-system命令可以查看Pod中容器的日志,这对于诊断Pod为什么崩溃非常有用。使用 kubectl describe pod calico-node-tw42m -n kube-system命令查看Pod的详细信息,包括其事件历史、容器状态、资源使用情况等。(需要安装集群指标监控组件metrics)资源使用情况:监控Pod的CPU、内存等资源的使用情况,确保Pod没有资源不足的问题。原创 2024-03-19 21:19:01 · 2925 阅读 · 0 评论 -
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD原创 2024-03-16 21:35:47 · 526 阅读 · 0 评论 -
云原生技术落地实现之一KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (1/2)
DevOps 是一系列做法和工具,可以使 IT 和软件开发团队之间的流程实现自动化。其中,随着敏捷软件开发日趋流行,持续集成 (CI) 和持续交付 (CD) 已经成为该领域一个理想的解决方案。在 CI/CD 工作流中,每次集成都通过自动化构建来验证,包括编码、发布和测试,从而帮助开发者提前发现集成错误,团队也可以快速、安全、可靠地将内部软件交付到生产环境。原创 2024-03-16 19:04:48 · 1458 阅读 · 0 评论 -
利用Helm在K8S上部署 PolarDB-X 集群(详细步骤--亲测!!!)
Helm 是 Kubernetes 上的包管理器,用来管理 Kubernetes 应用程序,Helm Charts 可帮助您定义,安装和升级复杂的 Kubernetes 应用程序。Helm 把 Kubernetes 资源(比如deployments、services或ingress等) 打包到一个chart 中,而 chart 被保存到 chart 仓库。通过 chart 仓库可用来存储和分享 chart。原创 2024-03-12 19:48:39 · 1483 阅读 · 0 评论 -
Docker安装部署RabbitMQ & 密码修改 &创建用户及角色
其中 rabbitmq 是自己的容器中 RabbitMQ 的名称,可通过 docker ps -a 进行查看,然后替换自己容器中的 名称 即可。-v:映射目录或文件,启动了一个数据卷容器,数据卷路径为:/var/lib/rabbitmq,再将此数据卷映射到住宿主机的/data目录。–hostname:主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名)username:对应不同用户映射的密码,比如需要修改管理员 admin 的密码那么就填 admin。原创 2024-03-12 16:28:55 · 2689 阅读 · 0 评论 -
LLM 技术图谱(LLM Tech Map)& Kubernetes (K8s) 与AIGC的结合应用
LLM 技术图谱(LLM Tech Map)是将 LLM 相关技术进行系统化和图形化的呈现,此图谱主要特点是“专注于技术人视角”,不求从 LLM 产业角度汇聚信息,而是希望让从事相关工作或是想了解 LLM 的技术人有一个快速感知。LLM 技术图谱(LLM Tech Map)从基础设施、大模型、Agent、AI 编程、工具和平台,以及算力几个方面,为开发者整理了当前 LLM 中最为热门和硬核的技术领域以及相关的软件产品和开源项目。核心价值:帮助技术人快速了解 LLM 的核心技术和关键方向。原创 2024-03-11 17:14:52 · 1224 阅读 · 0 评论 -
Jenkins自动构建 CI/CD流水线学习笔记(从入门到入土,理论+示例)
Jenkins 流水线是一套插件,它支持实现和集成持续交付流水线到 Jenkins。流水线提供了一组可扩展的工具,用于通过流水线 DSL 将简单到复杂的交付流水线建模为“代码”。对Jenkins 流水线的定义被写在一个文本文件中 (成为 Jenkinsfile),该文件可以被提交到项目的源代码的控制仓库。这是"流水线即代码"的基础;将CD 流水线作为应用程序的一部分,像其他代码一样进行版本化和审查。创建并提交它到源代码控制中提供了一些即时的好处:自动地为所有分支创建流水线构建过程并拉取请求。原创 2024-03-11 15:58:30 · 1961 阅读 · 0 评论 -
KubeSphere平台安装系列之三【Linux多节点部署KubeSphere】(3/3)
*《KubeSphere平台安装系列》****《KubeSphere平台安装系列》**原创 2024-03-02 20:32:09 · 1437 阅读 · 1 评论 -
KubeSphere平台安装系列之二【Linux单节点部署KubeSphere】(2/3)
*《KubeSphere平台安装系列》****《KubeSphere平台安装系列》**原创 2024-03-02 19:02:28 · 1630 阅读 · 1 评论 -
Kubernetes工作负载重点总结
临时容器可以在现有 Pod 中临时运行,以便完成用户发起的操作,例如故障排查。边车容器是一种特殊的常驻init容器,遵循init容器启动顺序,在创建Init 容器时将 restartPolicy 设置为 Always将变为边车容器,在整个 Pod 的生命周期中都处于活动状态,并且可以独立于主容器启动和停止,具有独立生命周期并支持探针来控制其生命周期。Pod支持优雅停止,删除一个Pod时会先发Term信号,提示Pod内的服务开始排空请求,默认30s后,如果Pod还没终止,就发送KILL信号强制杀死Pod。原创 2024-02-29 17:05:16 · 1064 阅读 · 0 评论 -
Kubernetes 外部 HTTP 请求到达 Pod 容器的全过程
如第二节图所示,全过程大致为:用户从 web/mobile/pc 等客户端发出 HTTP/HTTPS 请求。由于应用服务通常是通过域名的形式对外暴露,所以请求将会先进行 DNS 域名解析,得到对应的公网 IP 地址。公网 IP 地址通常会绑定一个 Load Balancer 负载均衡器,此时请求会进入此负载均衡器。• Load Balancer 负载均衡器可以是硬件,也可以是软件,它通常会保持稳定(固定的公网 IP 地址),因为如果切换 IP> 地址会因为 DNS 缓存的原因导致服务某段时间内不可达。原创 2024-02-28 10:58:32 · 1697 阅读 · 1 评论 -
Kubernetes服务网络Ingress网络模型分析、安装和高级用法
Ingress翻译过来是“入口”的意思,也就是说:K8S希望Ingress能成为整个k8s集群的流量入口;Ingress网络是一组规则,充当Kubernetes集群的入口点。Ingress:Service的统一网关入口Service:Pod的统一网关入口所有流量首先进入Ingress,由Ingress转交给Service,最终由Service负载均衡后交到各个Pod应用。Ingress其实就是nginx封装的一个API对象。,通常通过HTTP管理集群中服务的外部访问,是暴露服务的最有效方式。原创 2024-02-22 11:11:11 · 1193 阅读 · 0 评论 -
Docker命令实战
去docker hub或者其他镜像仓库,找到nginx镜像。启动nginx应用容器,并映射88端口,测试的访问。推送镜像到阿里云个人镜像仓库;修改默认的index.html 页面。将自己修改好的镜像提交。原创 2024-02-19 16:29:13 · 341 阅读 · 0 评论 -
KubeSphere 核心实战之四【在kubesphere平台上部署Ruoyi-cloud项目】(实操篇 4/4)
*《KubeSphere 核心实战系列》****《KubeSphere 核心实战系列》**原创 2024-01-30 17:07:20 · 2480 阅读 · 10 评论 -
KubeSphere 核心实战之三【在kubesphere平台上部署ElasticSearch、应用商店部署RabbitMQ和应用市场部署Zookeeper】(实操篇 3/4)
Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎。注意: 子路径挂载,配置修改后,k8s不会对其Pod内的相关配置文件进行热更新,需要自己重启Pod。仓库相关学习 Helm即可,去helm的应用市场添加一个仓库地址,比如:bitnami。至此,zookeeper从应用市场bitnami中创建成功并运行!一个是es产生的数据,另一个是es的配置。目前kubesphere应用商店中只有38个应用。游览器输入任意节点外网ip+端口号。填写和选择相关信息后,点击下一步。原创 2024-01-17 16:51:13 · 1728 阅读 · 2 评论 -
KubeSphere 核心实战之二【在kubesphere平台上部署redis】(实操篇 2/4)
(强烈建议以后创建pvc时,按照这种方式进行创建,好处就是将来redis容器组pod进行扩缩容时,每个pod自动增减对应的pvc,而不至于多个pod容器组共用一个pvc)。在kubesphere平台上部署redis应用都是基于redis镜像进行部署的,所以所有的部署操作请先到docker hub中仔细查阅redis镜像的操作说明进行。这里需要注意的是:kubesphere平台上部署redis时,创建pvc时,如果是2核4G就不要配置CPU和内存的限制,不然调度失败。redis的ConfigMap创建好了。原创 2024-01-17 10:05:18 · 2197 阅读 · 3 评论 -
KubeSphere 核心实战之一【在kubesphere平台上部署mysql】(实操篇 1/4)
在在kubesphere平台上部署MySQL,首先搭建好k8s集群,并且在集群上安装配置好kubesphere。kubesphere中的配置中的配置字典 对应的是kubernetes中的配置集ConfigMap。kubesphere中的存储中的持久卷申明 对应的是kubernetes中的数据存储卷PVC挂载。kubesphere中的应用路由对应的是kubernetes中的ingress服务。kubesphere中的任务对应的是kubernetes中的Job和CronJob。原创 2024-01-16 16:49:11 · 2966 阅读 · 3 评论 -
KubeSphere平台安装系列之一【Kubernetes上安装KubeSphere(亲测--实操完整版)】(1/3)
选择2核4G(master)、2核4G(node1)、2核4G(node2) 三台机器,操作系统CentOS7.9。配置动态供应的默认存储类(注意下面两处的ip修改为自己master节点的ip)sc.yaml。在 cluster-configuration.yaml中指定我们需要开启的功能。每个机器配置自己的hostname,不能用localhost。Kubernetes的从节点上运行命令【kubectl】第一步安装完成后,记录master执行完成后的日志。系统会自动创建对应的pv服务,并绑定pvc。原创 2024-01-15 17:54:08 · 1965 阅读 · 4 评论