摘要: 设计背景 关于个人笔记,每个人有每个的方案,就我而言大致经历了以下几个阶段: 笔记软件,比如 印象笔记,有道笔记 等。 优点:隐私性强,跨终端。 缺点:个人用起来不是很舒服,可定制化程度低。 开放博客,用作技术分享,比如某DN,某CTO,某书等等。 优点:使用方便。 缺点:广告多,可定制化程度低,博 阅读全文
posted @ 2023-01-11 13:46 Dy1an 阅读(444) 评论(4) 推荐(5) 编辑
摘要: Webhook Jenkins 一般是企业选择比较多的 CI/CD 构建工具,虽然 GitLab CI/CD 本身的功能也很强。但是在于管理和隔离上更倾向于 Jenkins。 使用 GitLab 触发 Jenkins 构建一般采用的都是 Webhook 的方式。为此需要给 Jenkins 安装一个比 阅读全文
posted @ 2023-04-10 22:53 Dy1an 阅读(575) 评论(0) 推荐(0) 编辑
摘要: Groovy Groovy 是一种基于 Java 平台的面向对象语言。在 Jenkins Pipeline 中通常用它来增强 Pipeline 的功能。 详细的语法可以参考: https://www.w3cschool.cn/groovy/groovy_overview.html 字符串(Strin 阅读全文
posted @ 2023-04-08 16:18 Dy1an 阅读(688) 评论(0) 推荐(0) 编辑
摘要: Pipeline Pipeline 是一套运行在 Jenkins 上的工作流框架,它能将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。 关于 Jenkins Pipeline: Pipeline 脚本是由 Groovy 语言实现的,但是没必要单独去学 阅读全文
posted @ 2023-04-07 17:24 Dy1an 阅读(193) 评论(0) 推荐(0) 编辑
摘要: Harbor Harbor 是一个 CNCF 基金会托管的开源的可信的云原生 docker registry 项目,可以用于存储、签名、扫描镜像内容。 Harbor 最核心的功能就是给 docker registry 添加上一层权限保护的功能。并支持在 registry 之间复制镜像,用户管理、访问 阅读全文
posted @ 2023-04-06 02:06 Dy1an 阅读(1478) 评论(0) 推荐(0) 编辑
摘要: CI/CD 日常运维中常常听到 CI/CD 这个词,它其实包含整个研发生命周期的三个阶段: CI,Continuous integration,持续集成 CD,Continuous delivery,持续交付 CD,Continuous deployment,持续部署 大致的流程图如下: 而对于 K 阅读全文
posted @ 2023-04-05 14:42 Dy1an 阅读(232) 评论(0) 推荐(0) 编辑
摘要: Longhorn 除了本地存储、NFS 共享存储之外,还有块存储。在 Kubernetes 中,块存储的方案有很多,比如 Ceph RBD,这里主要介绍 Rancher 开源的一款 Kubernetes 的云原生分布式块存储方案 - Longhorn。 使用 Longhorn 可以: 使用 Long 阅读全文
posted @ 2023-03-22 22:56 Dy1an 阅读(1978) 评论(1) 推荐(0) 编辑
摘要: Playbook 在之前使用 Ansible 的时候都是采用命令行的方式执行,这样的方式存在几个问题: 如果某个操作需要多次执行,如何保存命令。 生产中的操作往往不是一个模块能完成的,如何整合这些命令。 对于上面的需求,Playbook(剧本)的作用就在于能够通过声明配置的方式,对操作流程进行有序的 阅读全文
posted @ 2023-03-19 00:36 Dy1an 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 发展历史 Ansible 于 2012 年 3 月 9 日发布了 0.0.1 版,其作者兼创始人是 Michael DeHaan,同时也是 Cobbler 与 Func 的作者。 Michael DeHaan 在 RedHat 任职期间,在尝试了 Puppet、Chef、Cfengine、Capis 阅读全文
posted @ 2023-03-17 23:36 Dy1an 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 内置对象 前面提到过可以在模板中使用 {{ .Release.Name }} 获取 release 的名称,Release 是模板中可以访问的几个顶级对象之一: Release:该对象描述了 release 本身的相关信息 Release.Name:release 名称 Release.Namesp 阅读全文
posted @ 2023-03-08 20:53 Dy1an 阅读(373) 评论(0) 推荐(0) 编辑
摘要: Chart Helm 使用一种名为 charts 的包格式,一个 chart 是描述一组相关的 Kubernetes 资源的文件集合。单个 chart 既可以用于部署简单的应用,也可以是复杂的应用。 Charts 是创建在特定目录下面的文件集合,然后可以将它们打包到一个版本化的存档中来部署。 目录结 阅读全文
posted @ 2023-03-07 20:35 Dy1an 阅读(278) 评论(0) 推荐(0) 编辑
摘要: Helm Helm 可以帮助管理 Kubernetes 应用程序,其作用类似于 CentOS 的 yum。对于越来越复杂的 Kubernetes 应用程序来说,如果单纯依靠手动维护应用程序的 YAML 资源清单文件,成本是巨大的,此时 Helm 就解决了这方面的难题。通过使用 Helm Charts 阅读全文
posted @ 2023-03-05 00:35 Dy1an 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 调度器 kube-scheduler 是 kubernetes 的核心组件之一,主要负责整个集群资源的调度功能,根据特定的调度算法和策略,将 Pod 调度到最优的工作节点上面去,从而更加合理、更加充分的利用集群的资源。 默认情况下,kube-scheduler 提供的默认调度器能够满足绝大多数的要求 阅读全文
posted @ 2023-03-03 11:32 Dy1an 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 存储 前面有通过 hostPath 或者 emptyDir 的方式来持久化数据,但是显然还需要更加可靠的存储来保存应用的持久化数据,这样容器在重建后,依然可以使用之前的数据。可存储资源和 CPU 资源以及内存资源有很大不同,为了让用户更加方便的使用,Kubernetes 便引入了 PV 和 PVC 阅读全文
posted @ 2023-03-02 13:45 Dy1an 阅读(213) 评论(0) 推荐(0) 编辑
摘要: ConfigMap 前面的资源对象并不能满足日常工作中的所有需求,一个最重要的需求就是应用的配置管理,特别是可变配置。 比如,在开发过程中程序需要配置 MySQL 或者 Redis 的连接地址。如果是以前的部署方式,此时想要修改这些信息,就需要修改代码的配置,然后重新打包部署。如果使用 Config 阅读全文
posted @ 2023-03-01 21:35 Dy1an 阅读(121) 评论(0) 推荐(0) 编辑
摘要: ingress-nginx 前面已经了解了 Ingress 资源对象只是一个路由请求描述配置文件,要让其真正生效还需要对应的 Ingress 控制器才行,Ingress 控制器有很多,这里先介绍使用最多的 ingress-nginx,它是基于 Nginx 的 Ingress 控制器。 ingress 阅读全文
posted @ 2023-03-01 21:33 Dy1an 阅读(354) 评论(0) 推荐(0) 编辑
摘要: Ingress 前面知道了可以使用 NodePort 和 LoadBlancer 类型的 Service 可以把应用暴露给外部用户使用,这对于小规模的应用来说确实没多大问题,但是当你的应用越来越多的时候,就会发现对于 NodePort 的管理就会变得非常麻烦,特别是大量的端口管理。为此,Kubern 阅读全文
posted @ 2023-02-28 18:31 Dy1an 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 服务发现 通过 Service 知道了后端的 Pod 服务可以通过 Cluster IP 代理出来让其他服务能够访问到。但也存在一个问题,Service 可能会被更新或者重建,下一次的 IP 可能就变了,此时服务怎么办? 为了解决这个问题,在早期的 Kubernetes 中,通过设置环境变量的方法, 阅读全文
posted @ 2023-02-27 21:47 Dy1an 阅读(122) 评论(0) 推荐(0) 编辑
摘要: label Selector 在某些特殊的使用场景中,可能会遇到某些服务只能部署在某些特定的机器上面的情况。为了将这一部分机器逻辑上隔离出来,就需要用户给这批机器打上特定的标签。然后在部署的时候通过标签选择器限制服务的部署以实现这种特殊的需求。 查看标签: # 查看 Node 的标签 kubectl 阅读全文
posted @ 2023-02-27 15:28 Dy1an 阅读(47) 评论(0) 推荐(0) 编辑
摘要: HPA 使用 Deployment 的时候知道了可以通过 kubectl scale 的方式调整集群中 Pod 的副本数以满足业务的需求。 在生产环境中,应用的资源使用率通常都有高峰和低谷的时候,如何削峰填谷,提高集群的整体资源利用率,并且尽可能的减少人工干预。Kubernetes 提供了这样一种资 阅读全文
posted @ 2023-02-25 23:16 Dy1an 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 控制器 在实际应用中,一般不会直接使用 Pod,而是会使用各种 Pod 的上层封装 控制器 来满足使用需求。Kubernetes 中运行了一系列控制器来确保集群的当前状态与期望状态保持一致。 控制器会监听资源创建、更新、删除事件,并触发 Reconcile 调谐函数,该过程称为 Reconcile 阅读全文
posted @ 2023-02-25 00:54 Dy1an 阅读(82) 评论(0) 推荐(0) 编辑