从零开始写 k8s 发布工具 - 3.1. 为 Container 添加环境变量

3.1. 为 Container 添加环境变量 再前面一章中, 我们已经完成了 Deployment, Service, Ingress 和 Kustomization API 的封装。 并通过 cobra 库创建了属于我们自己的 kustz 命令。 然而 kustz 的功能还简陋。 今天我们就先来为容器添加环境变量。 为容器设置环境变量 在官方文档中, 提高了两种为容器设置环境变量的方法 https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/ env: 提供 k-v 模式 键值对。 值可以直接 value 提供。 也可以通过 valueFrom 从 secret……

阅读全文

从零开始写 k8s 发布工具 - 2.5. 使用 cobra 实现 kustz 命令

2.5. 使用 cobra 实现 kustz 命令 有了前面几章的努力, 我们的命令行工具 kustz 终于要问世了。 kustz 命令 当前命令功能就很简单。 default: 输出 kustz 默认配置。 render: 读取 kustz 配置并生成 kustomize 配置四件套。 1 2 3 4 5 $ kustz -h Available Commands: default 在屏幕上打印 kustz 默认配置 render 读取 kustz 配置, 生成 kustomize 所需文件 编码 本章的代码都很简单, 就是设计的文件比较多。 使用 cobra 创建命令……

阅读全文

从零开始写 k8s 发布工具 - 2.4. 使用 kustomize 管理所有 k8s 文件

2.4. 使用 kustomize 管理所有 k8s 文件 前面已经简单的封装了 Deployment, Service, Ingress, 完成了零部件的创建。 今天就通过 Kustomization 进行组装, 实现流水线。 Kustomize 开始之前, 先来安装 kustomize 库。 1 $ go get sigs.k8s.io/kustomize/v3 这里补充一下, 访问 Github https://github.com/kubernetes-sigs/kustomize/ 。 kustomize () 首页 README.md 并没有提到 go get 的包名。 通常 k8s 的代码在 github 上都是镜像。 这时候只需要进到 go.mod , 包名就一目了然。 1 2 3 4……

阅读全文

从零开始写 k8s 发布工具 - 2.3. 解析 URL 为 Ingress

2.3. 解析 URL 为 Ingress 之前已经提到过, 在 kustz.yml 中的字段值, 要尽量做到 见名知义。 对于 Ingress 而言, 在发布之后, 我们访问的就是 URL 地址。 http://api.example.com/v1 因此我们可以考虑 从结果推导解析渲染 Ingress 。 Kubernetes Ingress 老规矩, 我们还是通过命令看看创建一个 ingress 需要提供哪些参数。 1 2 $ kubectl create ingress simple --rule="foo.com/bar=svc1:8080,tls=my-cert" -o yaml --dry-run=client 在 rule 中, 提供了两组 k-v。 其中, foo.com/bar 就是一个不带协……

阅读全文

从零开始写 k8s 发布工具 - 2.2. 定义字符串创建 Service

2.2. 定义字符串创建 Service 大家好, 我是老麦, 一个小运维。 今天我们为 kustz 增加 service 解析功能。 通过 kubectl create service 命令可以看到, service 的模式还是挺多的。 1 2 3 4 5 6 7 8 9 10 11 $ kubectl create service -h Create a service using a specified subcommand. Aliases: service, svc Available Commands: clusterip Create a ClusterIP service externalname Create an ExternalName service loadbalancer Create a LoadBalancer service nodeport Create a NodePort service 除了以上列出来的四种之外, 还用一种 Headless Service( https://kubernetes.io/docs/concepts/services-networking/service/#headless-services )。 Headless Service 是当 类型 为 Clu……

阅读全文

从零开始写 k8s 发布工具 - 2.1. 模仿 kubectl create 创建 Deployment 样例

2.1. 模仿 kubectl create 创建 Deployment 样例 为了简单, 我们假定所管理的 Deployment 都是 单容器 的。 首先参考 kubectl create 命令 1 $ kubectl create deployment my-dep --image=busybox --replicas 1 --dry-run=client -o yaml 安装 client-go API 访问 client-go https://github.com/kubernetes/client-go 1 $ go get k8s.io/[email protected] 这里直接选用最新版本 v0.25.4。 对于其他版本的兼容, 留在以后再做。 定义 Kustz Config 参考 kubectl create 命令, 创建配置文件 kustz.yml 结构如下 1 2 3 4 5 6 7 8 # kustz.yml namespace: demo-demo name: srv-webapp-demo service: name: nginx image: docker.io/library/nginx:alpine……

阅读全文

从零开始写 k8s 发布工具 - 1.0. kustz 介绍和设计思想

从零开始写 k8s 发布工具(1) - kustz 介绍和设计思想 介绍 如果要在 Kubernets 发布一个应用, 并对外提供服务, 需要配置诸如 Dep, Ing, Svc 等 Config API。 他们之间又是通过 Label 组合选择而实现的 松耦合。 如果想要这些 Config API 之间的关系更加紧密, 我们可以自己再向上抽象, 通过自己的配置将他们整合在一起。 更重要的是, 我们可以通过这层……

阅读全文

怎么在 Kustomize 中添加多行变量

怎么在 Kustomize 中添加多行变量 原文链接: https://tangx.in/posts/2023/01/05/how-to-create-multiple-line-variables-in-kustomize/ kustomize 是 k8s 官方出的一个 应用管理工具 , 说起来还是很好用的。 可以参考 k8s 部署工具 kustomize 的实用小技巧 Kustomize 中的 ConfigMap/Secrets Generator 在配置管理方面, kustomize 为我们提供了 Generator 帮助我们管理配置文件。 提供了三个 API 模块 files: 通过 文件 生成 文件 literals: 通过文字 字面量 k=v 生成 k=v 数据 envs: 通过 文件 生成 k=v 数据。 这个应该是 files 和……

阅读全文

Hugo 网站优化(9): 【废弃】 实施更新与缓存加速兼顾, 使用 Github Action 主动预热 CDN 缓存

Hugo 网站优化(9): 实施更新与缓存加速兼顾, 使用 Github Action 主动预热 CDN 缓存 原文链接: https://tangx.in/posts/2023/01/04/hugo-qcloud-cdn-purge-and-push/ Github Page 实现的 纯静态 网站加 CDN 就是麻烦。 缓存时间设置短了, 回源网站打开慢。 缓存时间设置长了, 发布新文章又很长时间无法展示。 于是, 我又盯上了 Github Action 的实现发布文章后主动预热网站, 这样在 CDN 中的缓存配置就更通用了。 实际上……

阅读全文

Hugo 网站优化(8): 书房装上了小电视, 使用 hugo shortcodes 支持 bilibili 视频播放

Hugo 网站优化(8): 书房装上了小电视, 使用 hugo shortcodes 支持 bilibili 视频播放 原文链接: https://tangx.in/posts/2023/01/04/hugo-bilibili-support/ 在学习的时候希望资料和笔记内容都能在一起。 这样 查阅、回顾 起来就更方便了。 hugo 短代码(shortcodes) 模版 在搜索的时候, 找到 利用hugo的短代码功能插入b站视频并且自适应 了这篇文章, 实现了嵌入 Bilibili 的播放器。 进一……

阅读全文

福利派送

  • (免费星球)「运维成长路线」

  • 又拍云免费 CDN

最近文章

分类

标签

其它