基础镜像Dockerfile集中管理 完整代码:https://github.com/EchoGroot/dockerfile 优点 结合Gitlab CI,可以快速便捷地新建和更新镜像。 可以快速找到镜像对应的 Dockerfile,明确镜像的具体组成,避免重复造轮子。 基于Dockerfile,方便对镜像进行扩展。 如何使用 创建、修改Dock…
和k8s部署runner相比,Docker部署runner的优势 缓存,项目里用到的各种依赖,不可能每次都重新下载。同时构建应用、语法检测等也会产生缓存文件。 某个项目在k8s runner中使用分布式存储ceph来保存这些文件,大概700m。每次使用时特别慢,大部分时间都花在下载缓存,解压缓存,流水线结束时压缩缓存,上传缓存。 整个流水线跑下来需…
创建账号 进入ceph-tools pod kubectl -n rook-ceph exec -it rook-ceph-tools-6ccb958485-j7pvb bash 查看可用的对象存储 [root@rook-ceph-tools-6ccb958485-j7pvb /]# radosgw-admin realm list { "…
背景 最近负责公司的 Devops 改造,使用 Gitlab CI/CD 替代之前的Jenkins。 为什么选择Gitlab CI/CD 而不是 Jenkins? 不引入其他服务,降低复杂度。 公司已经采用 Gitlab 来做源码管理了。 触发更简单,更敏捷,更灵活。 当在开发环境调试时,有的问题需要在环境里才能复现,就需要经常更新代码到环境,如果…
前言 client-go是一个调用kubernetes集群资源对象API的客户端,即通过client-go实现对kubernetes集群中资源对象增删改查等操作。大部分对kubernetes进行前置API封装的二次开发都通过client-go这个第三方包来实现。 RESTClient 最基础的,封装了指定资源URL访问Kubernetes API的…
为什么需要服务发现 Pod 生命周期不等于应用的生命周期,Pod 创建和销毁会导致它的 ip 地址发生变化 Service:Kubernetes 中的服务发现与负载均衡 Service 语法 port:外部访问这个 service 的端口 targetPort:service 访问后端服务的端口 查看 service kubectl discrib…
背景 在 Kubernetes 中,监控和日志属于生态的一部分,它并不是核心组件,因此大部分的能力依赖上层的云厂商的适配。Kubernetes 定义了介入的接口标准和规范,任何符合接口标准的组件都可以快速集成。 日志:排查问题的重要途径。 监控:及时暴露问题,防止进一步恶化。 监控 监控类型 在 K8s 中可以分成四个不同的类型: 资源监控 CPU…
需求来源 当把应用迁移到 K8S 后,如何保障应用的健康与稳定? 提高应用的可观测性 资源使用情况 应用自身的健康 实时日志,方便进行问题的诊断和分析 提高应用的可恢复能力 出现问题时首先是降低影响范围 例如 pod 不可用时,service 会在负载均衡里去掉该 pod 理想情况是通过 k8s 集成的自愈机制进行完整的恢复 例如 node 故障,…
快照 锁定某一个磁盘的状态,被锁定的数据无法修改 如果需要修改被锁定的数据,就复制一份,再进行修改 未修改的数据,磁盘只保留一份,共正常使用和作为快照 快照是磁盘内容的一部分,占用磁盘空间,不能存到其他磁盘 存储快照产生背景 提高数据操作的容错性 支持快速 restore 存储快照用户接口-Snapshot K8s 中通过 pvc 以及 pv 的设…
Volumes 介绍 Pod Volumes 场景一:如果 pod 中的某一个容器在运行时异常退出,被 kubelet 重新拉起之后,如何保证之前容器产生的重要数据没有丢失? 场景二:如果同一个 pod 中的多个容器想要共享数据,应该如何去做? 有状态的容器,就需要卷。 根据使用场景,临时文件直接用 host 的形式存到宿主机,非;临时的可以往云盘…