Myluzh Blog

Docker多阶段构建

2024-2-22 myluzh Docker

0x01 概述 Docker 分阶段构建是指在 Dockerfile 中使用多个 FROM 指令来分割构建过程,将整个构建过程分为多个阶段。每个阶段可以有自己的基础镜像,执行特定的构建步骤,并且可以从前一个阶段复制构建结果。最终只有最后一个阶段的构建结果会被保留在最终的镜像中,其它阶段的中间产物不会被包含在最终的镜像中。 分阶段构建的优点包括: 减小镜像大小:通过将构建过程分解为多个阶段,可以避免将构建工具和中间产物包含在最终的镜像中,从而减小镜像的大小。 加快构建速度:每个阶段可以并行执行,节省构建时间。 更好的可维护性:分阶段构建可以更清晰地组织构建过程,使得 Dockerfile 更易于阅读和维护。 0x02 示例 下面是一个使用 Docker 分阶段构建 Python 应用的示例: # 第一阶段:构建依赖环境 FROM python:3.8 AS builder WORKDIR /app COPY requirements.txt . RUN pip install --upgrade pip RUN pip install -r ...

阅读全文>>

标签: docker 多阶段 构建 builder

评论(0) (238)

Rancher 2.5.x证书过期问题 [X509 certificate has expired or is not yet valid]

2024-2-17 myluzh Kubernetes

0x01 故障描述 ranhcer UI 无法进入,查看logs提示X509 certificate has expired or is not yet valid # 查看 rancher agent 日志 root@iZbp1bddlmdujngbc11omnZ:~# docker logs -f --tail 10 b109 time="2024-02-17T03:26:04Z" level=fatal msg="Server certificate is not valid, please check if the host has the correct time configured and if the server certificate has a notAfter date and time in the future. Certificate information is displayed above. error: Get \"https://172.30.233.87:8443\": x509: certificate has expired or is not yet valid: curren...

阅读全文>>

标签: rancher

评论(0) (327)

K8S istio安装以及入门(使用istioctl安装)

2024-1-31 myluzh Kubernetes

0x01 安装istio [root@k8s-master01 istio]# wget https://github.com/istio/istio/releases/download/1.20.2/istio-1.20.2-linux-amd64.tar.gz [root@k8s-master01 istio]# tar -zxvf istio-1.20.2-linux-amd64.tar.gz [root@k8s-master01 istio]# cd istio-1.20.2/bin/ # 对于本次安装,我们采用 demo 配置组合。https://istio.io/latest/zh/docs/setup/additional-setup/config-profiles/ [root@k8s-master01 bin]# ./istioctl install --set profile=demo -y ✔ Istio core installed ...

阅读全文>>

标签: istio service mesh istioctl

评论(0) (324)

全面理解Sentinel(隔离、系统保护、熔断降级、服务授权)

2024-1-30 myluzh NOTE

0x01 关于微服务血崩问题 什么是微服务血崩: 微服务调用链路中的某个服务器故障,引起整个链路中所有微服务不可用,这就是血崩。 解决微服务血崩问题常见方式有四种: 1、超时处理:设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待。 2、舱壁模式:限定每个业务能使用的线程数,避免耗尽整个tomcat的资源,因此也线程隔离。 3、熔断降级:由断路器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截该业务的一切请求。 4、流量控制:限制业务访问的QPS,避免服务因流量的突增而故障。 0x02 安装Sentinel # web端口8090 账号 sentinel 密码xMbiP1d5e5R4R52C java -Dserver.port=8090 \ -Dproject.name=sentinel-dashboard \ -Dcsp.sentinel.dashboard.server=localhost:8090 \ -Dsentinel.dashboard.auth.password=xMbiP1d5e5R4R52C \ -jar /data/sentinel-das...

阅读全文>>

评论(0) (335)

ESXi精简置备磁盘空间回收

2024-1-28 myluzh VMware

0x01 注意事项 回收磁盘磁盘类型必须为精简置备(thin) 回收前最好先备份 0x02 空间回收 1、打开ESXi,服务里面开启SSH 2、连接SSH,进入虚拟机所在磁盘 # 进去虚拟机所在磁盘,切换到需要回收的虚拟机目录 [root@ESXi:~] cd /vmfs/volumes/NAS-iSCSI/ [root@ESXi:/vmfs/volumes/65b3d3e4-bbc82bfd-c13e-e86a64d30a91/]cd CentOS # 查看当前占用大小 [root@ESXi:/vmfs/volumes/65b3d3e4-bbc82bfd-c13e-e86a64d30a91/CentOS] du -sh *.vmdk 4.0M CentOS-ctk.vmdk 50.0G CentOS-flat.vmdk 0 CentOS.vmdk # 使用vmkfstools -K 空间回收,等待100% done. [root@ESXi:/vmfs/volumes/65b3d3e4-bbc82bfd-c13e-e86a64d30a91/CentOS] vmkfstools -K CentOS.vmdk Hole ...

阅读全文>>

标签: vmware esxi 硬盘 精简置备 空间回收 thin

评论(0) (360)

K8S 基于Rook搭建Ceph集群 云原生存储最佳实践

2024-1-23 myluzh Kubernetes

0x00 关于Rook Rook 是一款云原生存储编排服务工具,Ceph 是一种广泛使用的开源分布式存储方案,通过 Rook 可以大大简化 Ceph 在 Kubernetes 集群中的部署和维护工作。 Rook 由云原生计算基金会( CNCF )孵化,且于2020 年 10 月正式进入毕业阶段。Rook 并不直接提供数据存储方案,而是集成了各种存储解决方案,并提供一种自管理、自扩容、自修复的云原生存储服务。社区官方资料显示, Rook 目前最新的稳定版本中,只有 Rook +Ceph 存储集成方案处于 stable 状态,版本升级较平滑。 Ceph 是一种广泛使用的开源分布式存储方案,通过 Rook 则可以大大简化 Ceph 在 Kubernetes 集群中的部署和维护工作。基于 Rook+Ceph 的存储方案,能为云原生环境提供文件、块及对象存储服务。 建立Ceph集群不仅需要大量的服务器资源,本身的复杂度也需要人力成本。但是在企业内部使用Kubemetes时,无论是在部署业务服务还是中间件服务,都能很明显地体会到Kubernetes的便利性和强大之处,所以我们在企业内部使用Kubernetes时,同时也会把中间件...

阅读全文>>

标签: k8s ceph rook

评论(0) (465)