运维
本地执行没问题, GitHub Actions 却一直报错
· ☕ 2 分钟
1. 一个令人困惑的问题 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 name: Go on: [push, pull_request] jobs: build: name: CI runs-on: ubuntu-latest steps: - name: Set up Go 1.13 uses: actions/setup-go@v1 with: go-version: 1.13 - name: Check out code into the Go module directory uses: actions/checkout@v2 - name: Check pr is properly formatted run: diff -u <(echo -n) <(gofmt -d ./pkg ./cmd ./tools ./test) - name: Test & Build run: make all 上面是项目中 workflow 的一部分, 主要用来检测代码风格、执行单元测试、

Kubernetes 系统下的 `rm -rf /`执行完就可以跑路了
· ☕ 2 分钟
本文档主要用于展示 Docker 特权模式的危害,请谨慎操作。对于没有 CLI 操作权限的用户,可以拷贝示例的 Yaml,直接创建集群负载 Pod、Job、DaemonSet 等进行操作。 1. 直接删除全部资源 如果能登陆机器,收拾好东西,执行命令: 1 kubectl delete all --all --all-namespaces 但是也有可能

如何在主机上调试容器、在容器中操作主机
· ☕ 6 分钟
1. 一个奇怪的需求 老板有个奇怪的需求,通过一个 kubeconfig 文件,获取主机的各种状态信息,比如进程列表、进程状态等。 第一反应就是,老板是不是不懂容器,容器怎么能这样玩,这样玩还要什么容器,内心万马奔腾。 直到最近遇到了一个命令行工具,才发现原来小丑是我自己

使用 ChatOps 改进研发流程
· ☕ 3 分钟
1. 什么是 ChatOps GitOps、ChatOps、AIOps 等(以下简称 NewOps )是近几年出现的新兴运维理念。NewOps 将 Ops 从混沌的状态离析为两个部分:一个面向用户,趋势是更加人性化、可审计、可回溯;另一个面向基础设施,趋势是更加程序化、自动化、智能化。

使用 S3 存储 Terraform 的状态
· ☕ 2 分钟
1. Terraform 如何管理资源状态 在执行 terraform init 之后,Terraform 会将依赖的插件下载到本地 plugins 目录。 1 2 3 4 5 6 7 8 9 10 11 12 13 tree -aL 5 . |-- myresource.tf |-- .terraform | `-- plugins | |-- registry.terraform.io | | |-- hashicorp | | | `-- null | | `-- shaowenchen | | `-- qingcloud | `-- selections.json `-- var.tf 在执行 terraform apply 之后,Terraform 会使用 terraform.tfstate 文件存储资源的