KubeCon2020/微服务技术与实践论坛/Spring Cloud Alibaba 在 Kubernetes 下的微服务治理最佳实践-方剑
Spring Cloud 多语言微服务 API管理 服务压测 分布式事务 分布式调度 API网关 服务注册发现 负载均衡 服务配置 无损下线 服务容错 服务路由 服务鉴权 限流降级 服务元数据 服务测试 服务mock 持续集成 IDE插件 应用监控 链路追踪 日志管理 应用诊断 微服务架构总览 https://www.jetbrains.com/lp/devecosystem-2019/java/ 运维治理效率 大幅提升 • 无侵入 • 0升级成本 • 全面兼容开源 • 无侵入 • 多语言 • 依赖冲突难管理 • SDK升级成本高 微服务治理演进路线 • 服务元信息 • 服务契约管理 • 服务测试 • 服务Mock • 开发环境隔离 • 端云互联 运行态Ops 开发态Dev • 无损下线 • 无损上线 • 金丝雀发布 • A/B Test • 全链路灰度 安全态Sec 服务治理中心 提供者 消费者 Agent Agent 用户 配置中心 治理规则 Dev-Sec-Ops 无损下线 离群实例摘除 标签路由 服务鉴权 链路跟踪 金丝雀发布 API管理 服务测试 限流降级 故障注入 • 业务无侵入、无感知 • 0升级成本 • 全面兼容开源 注册中心 元数据中心 微服务引擎 基于 Java Agent 的服务治理 public class BaseLoadBalancer0 码力 | 27 页 | 7.10 MB | 1 年前3第29 期| 2023 年9 月- 技术雷达
Thoughtworks, Inc. All Rights Reserved. Thoughtworks 技术雷达 关于技术雷达 Thoughtworker 酷爱技术。我们致力于建造技 术,研究技术,测试技术,开源技术,书写技术, 并不断改进技术。支持卓越软件并掀起 IT 革命是 我们的使命,Thoughtworks 技术雷达就是为了 完成这一使命。它由 Thoughtworks 中一群资深 挪出 没有变化 © Thoughtworks, Inc. All Rights Reserved. 采纳 1. 设计系统 2. 轻量级的 RFCs 方法 试验 3. 具有可访问性意识的组件测试设计 4. 攻击路径分析 5. 自动合并依赖项更新 PR 6. 针对 FAIR 数据的数据产品思维 7. OIDC for GitHub Actions 8. 使用 Terraform Terraform 创建监控和告警 9. ReAct 提示工程 10. 检索增强生成 11. 基于风险的故障建模 12. 大语言模型半结构化自然语言输入 13. 追踪健康债务状况 14. 对告警规则的单元测试 15. CI/CD 的零信任保护 评估 16. 通过依赖健康检查化解包幻觉风险 17. 设计系统决策记录 18. GitOps 19. 大语言模型驱动的自主代理 20. 平台编排 21. 自托管式大语言模型0 码力 | 43 页 | 2.76 MB | 1 年前3石油巨头与Kubernetes, Microservice & DevOps 共舞1114最终版
DevOps过程中的安全问 题 项⺫管理 快速迭代开发,更短的发布周期, 并统⼀流程,规范化管理 持续交付 提⾼部署的效率,降低部署的⻛ 险,提⾼部署的质量,消除部⻔ 壁垒,交付过程标准化, 透明化 持续构建与测试 保障代码质量,提升开发效率 知识共享 知识共享与积累,不断完善,持 续学习改进 认证与改进 持续优化, 形成闭环 运维监控 运⾏状态可视化,数据化,降低 部署⻛险,快速反馈 运营统计 镜像仓 库 测试管 理平台 流⽔线编 排⼯具 代码质 量管控 镜像安 全扫描 运营统 计⼯具 XXXX 指标统计 XXXX 指标统计 XXXX 指标统计 XXXX 指标统计 运营统计 编译打 包 代码质量 管理 多语⾔ 构建 安全管控 构建实 践 测试管理 功能测 试 性能测试 接⼝测 试 产出物管 理 持续构建与测试 ⾃动部 署 配置管理 配置管理 环境管 理 数据库变 更 运维监 控 通知反馈 部署策 略 持续交付 ⼯具链 最佳实践 测试管理 规范 流⽔线建设 规范 敏捷开发 规范 流程协作与最 佳实践 项⺫管理 进度 管理 范围 管理 质量 管理 ⼈⼒ 管理 ⻛险 管理 沟通 管理 知识共享 知识 库建 设 ⽂档 协作 学习培训体系 培训规划建设 平台培训 ⼯具培训 培训效果评估0 码力 | 33 页 | 7.49 MB | 1 年前3石墨文档Go在K8S上微服务的实践-彭友顺
应用开发 启动方式 日志采集 加载配置 监控采集 资源隔离 故障转移 资源调度 权限控制 编译 部署 2014年6月K8S开源 微服务的生命周期 第二部分 微服务的生命周期 开发 测试 部署 启动 调用 治理 微服务的开发阶段 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 统一配置、调用用方式,降低开发心智负担 • Proto的管理 • 错误码管理 错误码管理 • 调试gRPC • 调试信息 • 错误定位 微服务的测试阶段 测试类型 工具生成测试用例 简单高效做单元测试 • 单元测试 • 本地docker-compse • 提交代码,触发gitlab ci • 接口测试 • 接口平台 • 性能测试 • benchmark • 全链路压测 • 集成测试 • 以前gitlab ci,docker in docker • • 目前结合配置中心拓扑图,自动生成jekins编排,ing 微服务的测试阶段 测试类型 工具生成测试用例 简单高效做单元测试 protoc --proto_path=${ROOT}/examples/helloworld --go-test_out=pkg=main,paths=source_relative:. helloworld.proto • 业务代码中不要有框架、组件代码,减少单侧用例0 码力 | 41 页 | 3.20 MB | 1 年前3Kubernetes全栈容器技术剖析
资源一键式创建 应用运维 AOM 应用性能管理 APM 应用拓扑 调用链 SLA指标 日志关联分析 异常预警 故障回溯 软件开发服 务 DevCloud 云性能测试 CPTS PaaS IaaS 开发测试 统一编排 自动化部署、微服务注册发现与治理、中间件运行环境 智能运维 开放网关APIG 应用 函数计算 FunctionStage FunctionGraph 4 • 将旧的加速计算应用程序容器化,并部署 在较新的系统或者云环境中。 • 将特定的 GPU 资源分配给容器,以获得 更好的隔离效果和性能。 • 轻松地跨不同的环境共享应用程序、协同 工作和测试应用程序。 主流DL框架 13 iCAN容器网络:实现高性能容器网络和大规模高效部署 14 Fuxi容器存储:实现有状态应用和分布式中间件容器化部署 15 全球首发云容器实例服务CCI kubernetes API,原有容器化业务无缝迁移上云 蓝鲸传媒是证券时报旗下,国内首家针对科技媒体人打造的工具型SaaS服务,包含新闻线索平台和记者编辑工作平台 19 案例:打通线下开发、测试和线上部署、运维自动化流程,助力成都某互联网公司 提升业务发放速度和运维效率 Node Node Node 集群 CCE 云容器引擎 部署 SWR容器 镜像仓库 研发交付 容器镜像 Node0 码力 | 26 页 | 3.29 MB | 1 年前3腾讯云 Kubernetes 高性能网络技术揭秘——使用 eBPF 增强 IPVS 优化 K8s 网络性能-范建明
TKE使用eBPF优化 k8s service Jianmingfan 腾讯云 目录 01 Service的现状及问题 优化的方法 02 和业界方法的比较 性能测试 03 04 解决的BUG 未来的工作 05 06 01 Service的现状及问题 什么是k8s Service • 应用通过固定的VIP访问一组pod,应用对Pod ip变化 无感知 • 本质是一个负载均衡器 map没有timer的问题 • 继承了IPVS丰富的功能,稳定性。例如调度算法丰富。 • 优势 • 完全绕过了conntrack/iptables • 对内核修改更小 04 性能测试 性能测试踩过的坑 设置测试环境 • 配置一样的cluster,性能可能不同。 • 多个CVM分布在同一台物理主机 • 同一个cluster,在不同的时间段,性能可能不同 • cpu 超卖 • 使用同 种mode • 使得cpu成为瓶颈点 • cpu和网卡pps的比例关系 < 1/50w pps • Target server pool /client pool 的配置要足够强大。 测试拓扑 测试数据 • 处理每一个req耗费的指令数 目降低了38% 05 解决的BUG IPVS conn_reuse_mode = 1性能低 • 原因 • conn_reuse_mode的本0 码力 | 27 页 | 1.19 MB | 9 月前3Chaos Mesh让应用与混沌在 Kubernetes 上共舞-杨可奥
和内核打交道通常都是困难的! Kubernetes 上的混沌工程方案 Chaos Mesh Cloud Native ● 在 Kubernetes 上运行,被测对象也运行在 Kubernetes 上 ● 测试的最小单元是 Pod 或 Container ● 使用 Helm 一键部署 友善的接口 ● 实验是作为 Kubernetes Custom Resource 管理的 友善的接口 强大的工具箱 StressChaos: burn cpu and memory ● DNSChaos …. Dashboard 和 Grafana 插件 使用方案 ● 在生产环境中使用 ! ○ 限制爆炸半径 ● 在测试环境、测试集群中使用 " ● 在 CI 中使用 ○ 使用预先定义的 Github Actions ○ 使用 Kubernetes Client 创建实验 Chaos Mesh 的结构 以 NetworkChaos NetworkChaos 实现方法 如何进入目标 Pod 的 Network Namespace ● setns 系统调用 ● nsenter 命令 或在其他进程中 setns ○ 开发、测试更加方便 ○ 使用起来更加简单 ● SideCar 共享 Network Namespace ○ 范围和权限更加可控 Chaos Mesh 使用案例 以 TiDB 为例 ● 假设 ○ TiDB0 码力 | 30 页 | 1.49 MB | 9 月前3K8S安装部署开放服务
host-time mountPath: "/etc/localtime" readOnly: true Step3. 安装和测试 redis client helm install redis-cluster redis-cluster kubectl exec -it redis-cluster-0 -- redis-cli host-time mountPath: "/etc/localtime" readOnly: true Step3. 安装和测试 mongodb helm install mongodb-replicaset mongodb-replicaset kubectl exec -it mongodb-replicaset-0 services: - name: influxdb2-headless port: 9999 tls: secretName: iot-tls Step3. 安装和测试 influxdb helm install influxdb2 influxdb2 浏览器访问: https://iot.xxx.com:9999 用 admin/admin123 登录0 码力 | 54 页 | 1.23 MB | 1 年前3Kubernetes开源书 - 周立
持续开发,集成和部署 :通过快速轻松的回滚(由于镜像的不可变性)提供可靠且频繁的容器镜像构建和部署。 Dev和Ops分离问题 :在构建/发布期间⽽⾮部署期间创建镜像,从⽽将应⽤程序与基础架构分离。 开发、测试和⽣产环境⼀致 :在笔记本电脑运⾏与云中⼀样。 云和操作系统可移植性 :可运⾏在Ubuntu、RHEL、CoreOS、内部部署,Google Container Engine以及任何其他 地⽅。 EXTERNAL-IP PORT(S) AGE nginx NodePort 10.233.29.9680:32345/TCP 14s # 访问测试,如果能够正常返回NGINX⾸⻚,说明正常 ]# curl localhost:32345 卸载 ]# ansible-playbook -i inventory/mycluster/hosts 误。 默认禁⽤ ⼀些功能可能随时会被废弃,恕不另⾏通知 API可能会以不兼容的⽅式更改,恕不另⾏通知 建议仅在短期测试集群中使⽤,因为增加了bug带来的⻛险,⽽且缺乏⻓期⽀持 Beta级别: 版本名称包含 beta (例如 v2beta3 ) 代码经过了良好的测试。启⽤该功能被认为是安全的。 默认启⽤ 整体功能不会被删除,尽管细节可能会改变 对象的schema/语义可能会在后续 0 码力 | 135 页 | 21.02 MB | 1 年前3k8s操作手册 2.3
unix:///var/run/cri-dockerd.sock 相 当 于 v1.23 及 之 前 版 本 的 的 unix:///var/run/dockershim.sock 不过,不建议使用了,调用层次太多,本小节仅供学习测试 首先安装docker # yum install docker-ce # systemctl enable docker # systemctl start docker # cat 原因是没有找到有效的网卡,因为默认没有在kube-flannel.yml指定vxlan使用的 底层网络接口,所以它根据ip route show去查找default via这行的网卡(有默认 路由的网络接口),但我们测试环境的服务器没有配置网关,所以它找不到默 认路由,导致flannel启动失败 解决方法是给服务加个网关(默认路由)或者在kube-flannel.yml里指定vxlan绑 定的网卡设备(不建议直接 10.7.35.680:31796/TCP 40m # curl h�p://node1.cof-lee.com:31796/ #测试 ★修改NodePort端口范围 NodePort默认的有效端口范围是 30000-32768 # vi /etc/kubernetes/manifests/kube-apiserver 0 码力 | 126 页 | 4.33 MB | 1 年前3
共 24 条
- 1
- 2
- 3