运维
云原生下的 DevOps 平台
· ☕ 5 分钟
1. 什么是云原生 云原生是一个快速发展的领域。 2013 年, Pivotal 提出云原生的概念,并不断对其进行解读。下面是 Pivotal 对云原生架构的特征描述: 2015年,12-Factor、面向微服务、抗脆弱 2017年,可观测性、模块化、可替代性、可处理性 2019年,DevOp

DevOps 工具链之 Argo CD
· ☕ 4 分钟
1. Argo CD 能解决什么问题 1.1 从 GitOps 说起 GitOps 起源于 Weaveworks 公司在 2017 年发表的一篇博客, GitOps - Operations by Pull Request 。在文中,Alexis 介绍了一种以 Git 为唯一事实来源的部署方式。 在 GitOps 实践中,我们需要将软件设施定义在 Git 仓库中进行管理。其中的软件设施,包括 IaaS、Kubernet

本地执行没问题, 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 文件,获取主机的各种状态信息,比如进程列表、进程状态等。 第一反应就是,老板是不是不懂容器,容器怎么能这样玩,这样玩还要什么容器,内心万马奔腾。 直到最近遇到了一个命令行工具,才发现原来小丑是我自己