DevopsCamp 第一期作业: 《cobra - 02 配置文件的读取与写入(简单)》 解题答案
DevopsCamp 第一期作业: 《cobra - 02 配置文件的读取与写入(简单)》 解题答案 原文链接: https://tangx.in/posts/2023/01/24/devopscamp-cobra-binding-config-file/ 本文为 DevOpsCamp 实战训练作业 cobra - 02 配置文件的读取与写入(简单) 的解题答案 DevoOpsCamp 作业地址: https://www.devopscamp.cc/semi-plan-202301-2/posts/homework/cobra02/ 作业要求 使用 https://github.com/spf13/cobra 实现命令工具 命令具有以下参数 --config , -c 配置文件 配置文件如下 1 2 3 # config.yml name: zhangsan age: 20 将配置文件保存为 JSON 格式 1 $ cat config.json 输出结……
DevopsCamp 第一期作业: 《cobra - 01 实现编译与参数绑定(简单)》 解题答案
DevopsCamp 第一期作业: 《cobra - 01 实现编译与参数绑定(简单)》 解题答案 原文链接: https://tangx.in/posts/2023/01/23/devopscamp-cobra01/ 本文为 DevOpsCamp 实战训练的作业解题答案 作业: cobra - 01 实现编译与参数绑定。 DevOpsCamp作业地址: https://www.devopscamp.cc/semi-plan-202301-2/posts/homework/cobra01/ 作业要求: 使用 https://github.com/spf13/cobra 实现命令工具 命令具有以下参数 --name 姓名 --age 年龄 如果年龄为空, 默认为 20 岁。 完成交叉编译脚本, 编译其他……
DevOpsCamp 《初一十五计划》 第一期
DevOpsCamp 《初一十五计划》 第一期 原文链接: https://tangx.in/posts/2023/01/14/devopscamp-semimonthly-plan-202301-2/ 《初一十五计划 202301-2》 第一期 作业地址 本地主题 cobra, 英语 cobra - 01 实现编译与参数绑定 cobra - 02 读取配置配置文件 cobra - 03 交互式命令 阅读并翻译 《Dockerfile 最佳实践》 cobra 是 golang 中非常流行的命令行库, 熟练掌握事半功倍。 英语重要性就不多说了,搞技术必须强……
知识星球「运维之路」免费指导与帮助 - 试运营到 2023/12/31
知识星球「运维之路」免费答疑 - 试运营到 2023/12/31 原文链接: https://tangx.in/posts/2023/01/12/zsxq-devops-camp/ 说公益也好、说免费也罢。 反正这一个不收费的知识星球。 这个星球的主题 「运维之路」指导与帮助。 为什么要搞这个星球 前段时间看到一部视频解说, 讲的是一个大学生到西藏支教的故事, 片面叫《藏草青青》, 有兴趣的可以看看。 让我想起了年轻的时候也……
开发 k8s 管理平台 - k8sailor - 01. 使用 k3s 快速搭建项目环境
开发 k8s 管理平台 - k8sailor - 01. 使用 k3s 快速搭建项目环境 原文地址: https://tangx.in/posts/books/k8sailor/chapter01/01-install-k3s-cluster/ 安装 k3s 安装过程参考 https://tangx.in/2021/06/07/k3s-architecture-single-server/ k3s 集群版本为 v1.21.4。 因此 k8s client-go sdk 的版本也需要安装对应版本 1 2 3 4 5 6 7 8 9 10 11 # curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh - [INFO] Finding release for channel stable [INFO] Using v1.21.4+k3s1 as release [INFO] Downloading hash http://rancher-mirror.cnrancher.com/k3s/v1.21.4-k3s1/sha256sum-amd64.txt [INFO] Downloading binary http://rancher-mirror.cnrancher.com/k3s/v1.21.4-k3s1/k3s [INFO] Verifying binary download [INFO] Installing k3s to /usr/local/bin/k3s ... 省略 初始化环境 通过命令创建一些工作负载, 以便后……
开发 k8s 管理平台 - k8sailor 02. 使用 cobra 初始化程序命令与参数
开发 k8s 管理平台 - k8sailor 02. 使用 cobra 初始化程序命令与参数 原文地址: https://tangx.in/posts/books/k8sailor/chapter01/02-design-cobra-command/ tag: https://github.com/tangx/k8sailor/tree/feat/01-cobra-command 为了更加方便的管理配置文件的来源, 这里使用 cobra 进行命令行构建 效果如下 1 2 3 4 5 6 7 8 9 cd cmd/k8sailor && go run . k8s 管理平台 Usage: k8sailor [flags] Flags: --config string k8s 配置授权文件 (default "./k8sconfig/config.yml") -h, --help help for k8sailor 编码 变量管理 在 cmd/k8sailor/global 目录中管理 全局 变量。 其中,定义一个 CmdFlag 结构体管理所有 cobra fl……
开发 k8s 管理平台 - k8sailor 03. 使用 client-go sdk 链接集群
开发 k8s 管理平台 - k8sailor 03. 使用 client-go sdk 链接集群 原文地址: https://tangx.in/posts/books/k8sailor/chapter01/03-connect-cluster/ tag: https://github.com/tangx/k8sailor/tree/feat/02-connect-cluster 使用 sdk 链接 k3s cluster 并获取 deployment 信息 1 2 3 4 cd cmd/k8sailor && go run . * my-nginx-1 (1 replicas) * my-nginx-2 (2 replicas) 下载 client-go sdk 之前在安装 k3s 集群的时候,版本是 v0.21.4。 因此。 这里选择 client-go sdk 的版本也是 v0.21.4 如果还有其他环境, 可以使用 go mod edit 命令锁定 client-go 的版本 1 2 3 go get k8s.io/[email protected] go mod edit -replace=k8s.io/client-go=k8s.io/[email protected] 连接集群并获取……
开发 k8s 管理平台 - k8sailor 04. 使用 gin 创建第一个 API 接口
开发 k8s 管理平台 - k8sailor 04. 使用 gin 创建第一个 API 接口 原文地址: https://tangx.in/posts/books/k8sailor/chapter01/04-init-httpserver/ tag: https://github.com/tangx/k8sailor/tree/feat/04-httpserver-initial 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 cd cmd/k8sailor && go run . httpserver 启动 web 服务器 Usage: k8sailor httpserver [flags] Flags: -h, --help help for httpserver Global Flags: --config string k8s 配置授权文件 (default "./k8sconfig/config.yml") 2021/09/24 07:56:51 open config/local.yml: no such file or directory [GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached. [GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production. - using env: export GIN_MODE=release - using code: gin.SetMode(gin.ReleaseMode) [GIN-debug] GET /k8sailor/v0/ping --> github.com/tangx/k8sailor/cmd/k8sailor/apis.RootGroup.func1 (3 handlers) [GIN-debug] Listening……
开发 k8s 管理平台 - k8sailor 05. RESTFul API 接口规范与请求应答约定
开发 k8s 管理平台 - k8sailor 05. RESTFul API 接口规范与请求应答约定 原文地址: https://tangx.in/posts/books/k8sailor/chapter01/05-design-restful-api-and-response-data/ tag: https://github.com/tangx/k8sailor/tree/feat/05-design-restful-api-and-response-data 强烈建议使用 RESTful 风格来设计 API 文档。 RESTful api 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # kubectl create deployment nginx-tools --image nginx:alpine --output=yaml --dry-run=client apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: nginx-tools name: nginx-tools # ... 省略 # kubectl create namespace hello --dry-run=client -o yaml apiVersion: v1 kind: Namespace metadata: creationTimestamp: null name: hello # ... 省略 可以看到, k8s api 中都有一个对应的 kind 描述资源类型, 这个正好符……
开发 k8s 管理平台 - k8sailor 06. 使用 api/biz/dao 分层结构管理数据请求,获取 deployment 数据
开发 k8s 管理平台 - k8sailor 06. 使用 api/biz/dao 分层结构管理数据请求,获取 deployment 数据 原文地址: https://tangx.in/posts/books/k8sailor/chapter02/06-get-all-deployments/ tag: https://github.com/tangx/k8sailor/tree/feat/06-get-all-deployments client -> apis -> biz -> dao -> 将业务逻辑部分分为经典三层,想法是这样的,可能实现有错误。 apis 接入层: 只用于管理 http 请求与交互。 biz 业务层: 用于处理 api 层来的请求, 封装原始数据 dao 数据访问层: 与数据库, cluster 等交互。 存取数据。 重新调整目……