分类 kubernetes 中的文章

从零开始写 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.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.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 发布工具 - 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 发布工具 - 3.2. ConfigMap 和 Secret 的生成器

3.2. ConfigMap 和 Secret 的生成器 上一节我们通过 k-v 和 YAML文件 为容器添加环境变量。 同时也提到了可以通过 envFrom 这个关键字, 直接读取 ConfigMap 或 Secret 中的 k-v 作为容器的环境变量。 除了环境变量之外, ConfigMap 和 Secret 还能管理的东西还很多。 所以我个人觉得单应用管理部署的话, 对于配置的管理,还是比较重要的。 Kustomize 中的 ConfigMap Env File 在 kustzomize 中, ConfigMap 和 Secret 都……

阅读全文

从零开始写 k8s 发布工具 - 3.3. 注入 ConfigMap 和 Secrets 到容器环境变量

3.3. 注入 ConfigMap 和 Secrets 到容器环境变量 大家好, 我是老麦。 一个运维小学生。 有了前面两张的铺垫, 今天这个很简单。 我们说说另外一种为容器注入环境变量的方式。 容器变量注入 EnvFrom 前面我们提到过, Container 有两种方式定义环境变量, 其中一种就是 envFrom, 从 ConfigMap 或 Secret 中读取所有键值对作为容器的变量。 ConfigMap 和 Secret 看起来是这样……

阅读全文

从零开始写 k8s 发布工具 - 3.4. 用字符串定义容器申请资源上下限

3.4. 用字符串定义容器申请资源上下限 Pod 的资源申请, 在调度策略中, 是一个重要的参数数据。 因此其重要性自然不必多说 容器资源申请 在官网中, 对于资源的申请和管理有详细的描述。 https://kubernetes.io/zh-cn/docs/concepts/configuration/manage-resources-containers/ 和 服务质量 QoS 息息相关, https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/quality-service-pod/ 这里简单的归类, 可以速记, 按照服务质量高到低 Guaranteed: request = limit Burstable: request < limit BestEffort: 没有 request 和 limit kustz.yml 配置 还是先来看看 kustz.yml……

阅读全文

从零开始写 k8s 发布工具 - 3.5. 为 Container 添加健康检查方法

3.5. 为 Container 添加健康检查方法 kustz 终于到了准生产的地步了。 今天的健康检查接口, 就为我们解决这个问题。 我们要知道, 确定一个应用能不能对外提供服务之前, 需要进行一个 可用性 检测。 而这个检测通常被我们称为 健康检查。 Kubernetes 的健康检查 在 Kubernetes 中, 为我们提供了 主要 的 3类状态 的健康检查。 startup: 等待探针。 如果执行成功,……

阅读全文

从零开始写 k8s 发布工具 - 3.6. 镜像拉取鉴权和策略

3.6. 镜像拉取鉴权和策略 今天我们解决镜像拉取鉴权和策略 镜像拉取鉴权 拉取私有镜像或私有仓库镜像的时候, 需要提供鉴权信息。 在 Kubernets 中, 通过 Secret 管理账号这些账号信息。 Secret 类型分为两种, kubernetes.io/dockerconfigjson: 如果有linux安装了 docker, 就是 ~/.docker/config.json 这个文件。 kubernetes.io/dockercfg: 不太熟。 在 /pkg/tokube/pod.go 中, 可以看到 ImagePullSecrets 的处理方法。 就是将字符串转为 kubernetes 的……

阅读全文

从零开始写 k8s 发布工具 - 4.1. 使用 cobrautils 为命令添加更实用的命令参数

4.1. 使用 cobrautils 为命令添加更实用的命令参数 之前的章节, 我们陆陆续续给 kustz 库添加了很多丰富服务的配置 但 kustz 命令, 还是处于一个很原始的命令状态。 接下来我们给 kustz 添加一些更丰富的参数 , 使 kustz 用起来更顺手。 在 CICD 的中, 一般情况下 变量,健康检查, 镜像策略 等很难发生变动。 而镜像名称 经常性 的在每次打包后发生变化……

阅读全文

福利派送

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

  • 又拍云免费 CDN

最近文章

分类

标签

其它