运维基础设施规划纲要
发表于
本文字数:
29
阅读时长 ≈
1 分钟
基于k8s的一套DevOps方案
发表于
更新于
本文字数:
671
阅读时长 ≈
1 分钟
这里有一些DevOps各环节的技术选型
开发 | workflows/pipeline | 包管理 | ci | cd | progressive delivery tool(渐进式交付) | service mesh | 基础设施 |
---|---|---|---|---|---|---|---|
kt-connect | argo-workflows | Helm | GitLab/GitHub | argo cd | Argo Rollouts | istio | OpenTofu |
Jenkins file | Jenkins | Flagger | Linkerd | terraform | |||
Apache Airflow | Spinnaker | zadig | crossplane | ||||
Ingress
Feature | Apisix | Contour | Gloo | NGINX | Skipper | Traefik |
---|---|---|---|---|---|---|
Canary deployments (weighted traffic) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
A/B testing (headers and cookies routing) | ✔️ | ✔️ | ✔️ | ✔️ | ➖ | ➖ |
Blue/Green deployments (traffic switch) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Webhooks (acceptance/load testing) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Manual gating (approve/pause/resume) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Request success rate check (L7 metric) | ✔️ | ✔️ | ✔️ | ➖ | ✔️ | ✔️ |
Request duration check (L7 metric) | ✔️ | ✔️ | ✔️ | ➖ | ✔️ | ✔️ |
Custom metric checks | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
k8s各种蓝绿及金丝雀发布
目前Kubernetes Gateway API并没有特别好的选型方案
最好能使用API Gateway来进行流量控制
各网关进度:
https://gateway-api.sigs.k8s.io/implementations/
使用原生集群完成灰度
Ps.无需安装其他工具
使用apisix-ingress可以使灰度颗粒度更细
可通过jenkins pipeline 控制流水线
linux排查-cpu
排查工具汇总
- stress 是一个 Linux 系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景。
- mpstat 是一个常用的多核 CPU 性能分析工具,用来实时查看每个 CPU 的性能指标,以及所有 CPU 的平均指标。
- pidstat 是一个常用的进程性能分析工具,用来实时查看进程的 CPU、内存、I/O 以及上下文切换等性能指标。
- vmstat 是一个常用的系统性能分析工具,主要用来分析系统的内存使用情况,也常用来分析 CPU 上下文切换和中断的次数。
- pidstat 每个进程的详细情况上下文切换和中断的次数。
- sysbench 是一个多线程的基准测试工具,一般用来评估不同系统参数下的数据库负载情况。当然,在这次案例中,我们只把它当成一个异常进程来看,作用是模拟上下文切换过多的问题。
docker搭建openvpn
搭建
配置OpenVPN
配置数据卷,生成配置文件。预计网段人数不多,使用192.168.0.0/24网段,但需要注意的是在配置固定IP时,掩码必须为/30,因此固定IP需要注意正确配置。#配置数据卷
创建挂载目录
初始化配置
1 | mkdir -p /home/openvpn |
xxl-job接入ldap
ingress重定向例子
子路径重定向
所有子路径匹配转发
1 | apiVersion: extensions/v1beta1 |
或
1 | apiVersion: extensions/v1beta1 |