基础镜像Dockerfile集中管理 优点 结合Gitlab CI,可以快速便捷地新建和更新镜像。 可以快速找到镜像对应的 Dockerfile,明确镜像的具体组成,避免重复造轮子。 基于Dockerfile,方便对镜像进行扩展。 如何使用 创建、修改Dockerfile文件,提交到仓库,就会触发 Gitlab 流水线,自动构建镜像并上传到Harb…
和k8s部署runner相比,Docker安装runner的优势 缓存,项目里用到的各种依赖,不可能每次都下载,以及构建、语法检测等都会产生缓存。在k8s runner中使用分布式存储ceph来保存这些文件,大概700m。每次使用时特别慢,大部分时间都花在下载缓存,上传缓存。当前项目整个流水线跑下来需要10多分钟。而是用docker部署的runne…
创建账号 进入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 来做源码管理了。 触发更简单,更敏捷,更灵活。 当在开发环境调试时,有的问题需要在环境里才能复现,就需要经常更新代码到环境,如果…
为什么需要服务发现 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 的形式存到宿主机,非;临时的可以往云盘…
需求来源 可变的配置不能放到容器里,否则配置改变,需要重新构建镜像 ConfigMap —— 资源 敏感信息的存储和使用 Secret —— 资源 认证相关,例如容器访问集群的 kube-apiserver ServiceAccount —— 资源 容器在节点上运行的资源要求 Resources —— spec 字段 容器是共享内核的,统一 nod…