 石墨文档Go在K8S上微服务的实践-彭友顺errors.Is(eerrors.FromError(err), UserErrNotFound()) 微服务的开发阶段 • protobuf lint的注释,利于阅读文档 • 调试gRPC,服务中注入reflection.Register的方法 • 通过K8S API,选择环境、应用、pod, 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 . 单元测试大部分的玩法,都是在做解除依赖 • 面向接口编程 • mock • 依赖注入 解除依赖很好,但成本很高 基础设施将所有依赖构建起来,就不要让研发用代码去实现 微服务的部署阶段 注入信息 版本信息 发布版本 • 注入应用名称、应用版本号、编译所在机器、编译时间配置 • 启动应用,获取debug.ReadBuildInfo,注入框架版本号 https://ego.gocn vip/ micro/chapter1/build.ht ml 微服务的部署阶段 注入信息 版本信息 发布版本 • 执行./bin/hello --version • 查看线上使用框架版本 https://ego.gocn.vip/ micro/chapter1/build.ht ml 微服务的部署阶段 注入信息 版本信息 发布版本 • 配置 • 过去自己实现agent读取etcd,写文件0 码力 | 41 页 | 3.20 MB | 1 年前3 石墨文档Go在K8S上微服务的实践-彭友顺errors.Is(eerrors.FromError(err), UserErrNotFound()) 微服务的开发阶段 • protobuf lint的注释,利于阅读文档 • 调试gRPC,服务中注入reflection.Register的方法 • 通过K8S API,选择环境、应用、pod, 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 . 单元测试大部分的玩法,都是在做解除依赖 • 面向接口编程 • mock • 依赖注入 解除依赖很好,但成本很高 基础设施将所有依赖构建起来,就不要让研发用代码去实现 微服务的部署阶段 注入信息 版本信息 发布版本 • 注入应用名称、应用版本号、编译所在机器、编译时间配置 • 启动应用,获取debug.ReadBuildInfo,注入框架版本号 https://ego.gocn vip/ micro/chapter1/build.ht ml 微服务的部署阶段 注入信息 版本信息 发布版本 • 执行./bin/hello --version • 查看线上使用框架版本 https://ego.gocn.vip/ micro/chapter1/build.ht ml 微服务的部署阶段 注入信息 版本信息 发布版本 • 配置 • 过去自己实现agent读取etcd,写文件0 码力 | 41 页 | 3.20 MB | 1 年前3
 k8s操作手册 2.3e.pem ②安装k8s二进制组件 #使用aliyun的源(如果用的是RHEL8系列的系统,也是用的el7的仓库源,因为 k8s组件是用go语言写的,直接二进制文件就可用,不需要特殊的库依赖,于是 和系统弱相关,8或9系列的系统也直接可用这些rpm软件) # cat >> /etc/yum.repos.d/k8s-ali.repo < k8s操作手册 2.3e.pem ②安装k8s二进制组件 #使用aliyun的源(如果用的是RHEL8系列的系统,也是用的el7的仓库源,因为 k8s组件是用go语言写的,直接二进制文件就可用,不需要特殊的库依赖,于是 和系统弱相关,8或9系列的系统也直接可用这些rpm软件) # cat >> /etc/yum.repos.d/k8s-ali.repo <- 依赖于存储类的辅助,PVC必须向一个已申明的存储类发起动态 分配PV的请求,没有指定存储类的PVC请求会被禁止动态创建PV ★第10章、ConfigMap和Secret ConfigMap对象就是一系列配置数据的集合,这些数据以键值对的形式进行存 储,可“注入”到pod对象中,并为容器应用所使用。注入方式有挂载为存储卷和 传递为环境变量两种。 ini�alDelaySeconds: 10 restartPolicy: Always #重启策略,默认Always # #如果configmap里有多个键值对,则直接全部注入pod中,注入时可指定键名前 缀,防止从多个cm中导入的键名有冲突(如果cm中的键名中有-减号,则自动 转为_下划线) envFrom: #给容器传递的环境变量,从cm中全部导入,和env同级 0 码力 | 126 页 | 4.33 MB | 1 年前3
 云计算白皮书作伙伴作为连接云厂商与企业的桥梁,是云厂商长期稳定发展的保 障。过去一年,全球主流云服务商积极汇聚伙伴生态、变革伙伴合 作模式、坚持伙伴优先战略,合作伙伴生态被提升到新高度。一是 云服务商关注到上云企业对 ISV 等合作伙伴依赖突出,通过“赢得 伙伴”的战略赢得市场。随着数字化转型进入深水区,企业上云着 重于把数字技术与企业业务、运营、管理等深入结合,获得端到端 的解决方案和服务,这离不开细分领域解决方案提供商的深度支持。 云管理与优化 治理成效。 稳定性层面,云上系统稳定性挑战持续存在,系统稳定性保障 云计算白皮书(2023 年) 20 体系不断完善、技术不断创新。云上系统自带“分布式”属性,各 模块之间依赖关系错综复杂,给服务性能分析、故障定位、根因分 析等带来了诸多困难;云上系统故障率随设备数量的增加而呈指数 级增长,单一节点问题可能会被无限放大,日常运行过程中一定会 伴随“异常”发生;同时,节点分布范围更广,节点数量更多,对 云原生安全演进。云原生经过多年发展,已实现全行业高质量规模化 落地。云原生革新了传统用云方式,驱动传统应用充分享受云原生 化红利,也给传统安全防护体系带来了新的挑战。同时,云原生轻 量敏捷、高可靠、可编排的技术优势又为传统安全注入了新的活力, 为安全与基础设施、业务应用的深度融合提供了可能。云原生安全 已成为云上安全防护的最佳路径,并呈现以下态势:一是云原生安 全体系日趋成熟。当前,云原生安全产业生态日趋完善,技术创新和0 码力 | 47 页 | 1.22 MB | 1 年前3 云计算白皮书作伙伴作为连接云厂商与企业的桥梁,是云厂商长期稳定发展的保 障。过去一年,全球主流云服务商积极汇聚伙伴生态、变革伙伴合 作模式、坚持伙伴优先战略,合作伙伴生态被提升到新高度。一是 云服务商关注到上云企业对 ISV 等合作伙伴依赖突出,通过“赢得 伙伴”的战略赢得市场。随着数字化转型进入深水区,企业上云着 重于把数字技术与企业业务、运营、管理等深入结合,获得端到端 的解决方案和服务,这离不开细分领域解决方案提供商的深度支持。 云管理与优化 治理成效。 稳定性层面,云上系统稳定性挑战持续存在,系统稳定性保障 云计算白皮书(2023 年) 20 体系不断完善、技术不断创新。云上系统自带“分布式”属性,各 模块之间依赖关系错综复杂,给服务性能分析、故障定位、根因分 析等带来了诸多困难;云上系统故障率随设备数量的增加而呈指数 级增长,单一节点问题可能会被无限放大,日常运行过程中一定会 伴随“异常”发生;同时,节点分布范围更广,节点数量更多,对 云原生安全演进。云原生经过多年发展,已实现全行业高质量规模化 落地。云原生革新了传统用云方式,驱动传统应用充分享受云原生 化红利,也给传统安全防护体系带来了新的挑战。同时,云原生轻 量敏捷、高可靠、可编排的技术优势又为传统安全注入了新的活力, 为安全与基础设施、业务应用的深度融合提供了可能。云原生安全 已成为云上安全防护的最佳路径,并呈现以下态势:一是云原生安 全体系日趋成熟。当前,云原生安全产业生态日趋完善,技术创新和0 码力 | 47 页 | 1.22 MB | 1 年前3
 Kubernetes 异常配置检测框架节点防火墙软件等修改 iptables、内核参数 • 网络链路长,手动排查成本高 异常影响 • 应用间无法正常通信 • 集群内 Controller 无法正常工作 YUM 安装自动运维工具 自动安装依赖 firewalld 网络未知原因导致异常 Node Pod eth0 调用 iptables 增加阻断规则 FORWARD_IN_ZONES_SOURCE FORWARD_OUT_ZONES s 兼容性检查) • 节点上自定义数据的收集(依赖于自定义插件) 问题上报 • 需要采集和分析结果文件 Kube* CIS Kubernetes Benchmark 集群安全扫描 集群综合检查 执行 bpftrace 检测工具小结 工具 适用场景 局限性 kube-bench 在集群中运行 CIS Benchmark 检测项依赖于 CIS Benchmark 内容 能发现集群核心组件配置错误 网卡、驱动配置错误 安全组配置错误 VPC 转发配置错误 Autopilot Engine 诊断任务 网络检测 Conntrack 采集 网卡丢包事件 所有包采集 Flow 采集 ebpf 注入 trace 读取 集群升级 集群异常检测闭环 • 集群升级前置检查 • 集群升级 • 集群升级后置检查 Autopilot Engine 诊断任务 前置检查 检测通过 检测未通过0 码力 | 31 页 | 9.57 MB | 1 年前3 Kubernetes 异常配置检测框架节点防火墙软件等修改 iptables、内核参数 • 网络链路长,手动排查成本高 异常影响 • 应用间无法正常通信 • 集群内 Controller 无法正常工作 YUM 安装自动运维工具 自动安装依赖 firewalld 网络未知原因导致异常 Node Pod eth0 调用 iptables 增加阻断规则 FORWARD_IN_ZONES_SOURCE FORWARD_OUT_ZONES s 兼容性检查) • 节点上自定义数据的收集(依赖于自定义插件) 问题上报 • 需要采集和分析结果文件 Kube* CIS Kubernetes Benchmark 集群安全扫描 集群综合检查 执行 bpftrace 检测工具小结 工具 适用场景 局限性 kube-bench 在集群中运行 CIS Benchmark 检测项依赖于 CIS Benchmark 内容 能发现集群核心组件配置错误 网卡、驱动配置错误 安全组配置错误 VPC 转发配置错误 Autopilot Engine 诊断任务 网络检测 Conntrack 采集 网卡丢包事件 所有包采集 Flow 采集 ebpf 注入 trace 读取 集群升级 集群异常检测闭环 • 集群升级前置检查 • 集群升级 • 集群升级后置检查 Autopilot Engine 诊断任务 前置检查 检测通过 检测未通过0 码力 | 31 页 | 9.57 MB | 1 年前3
 KubeCon2020/微服务技术与实践论坛/Spring Cloud Alibaba 在 Kubernetes 下的微服务治理最佳实践-方剑html • 业务高可用、多可用区部署 • 同城/异地容灾,业务多活 • 微服务需要更安全、更可信 成本 稳定 效率 • 白天流量高峰期发布 • 云边端一体化开发部署联调 • 服务治理体系强依赖SDK升级 • K8s下应用IP的不确定、导致服务治理规则的失效 • 应用迁移上云成本很高 • 极致、灵活的弹性 微服务在云原生下的挑战 后端服务BaaS化 DB,MQ, Redis, 注册中心、配置中心、服务治理中心 Fat-SDK Pandora One Agent One Mesh • 基于隔离容器 • 运维治理效率 大幅提升 • 无侵入 • 0升级成本 • 全面兼容开源 • 无侵入 • 多语言 • 依赖冲突难管理 • SDK升级成本高 微服务治理演进路线 • 服务元信息 • 服务契约管理 • 服务测试 • 服务Mock • 开发环境隔离 • 端云互联 运行态Ops 开发态Dev 消费者 Agent Agent 用户 配置中心 治理规则 Dev-Sec-Ops 无损下线 离群实例摘除 标签路由 服务鉴权 链路跟踪 金丝雀发布 API管理 服务测试 限流降级 故障注入 • 业务无侵入、无感知 • 0升级成本 • 全面兼容开源 注册中心 元数据中心 微服务引擎 基于 Java Agent 的服务治理 public class BaseLoadBalancer0 码力 | 27 页 | 7.10 MB | 1 年前3 KubeCon2020/微服务技术与实践论坛/Spring Cloud Alibaba 在 Kubernetes 下的微服务治理最佳实践-方剑html • 业务高可用、多可用区部署 • 同城/异地容灾,业务多活 • 微服务需要更安全、更可信 成本 稳定 效率 • 白天流量高峰期发布 • 云边端一体化开发部署联调 • 服务治理体系强依赖SDK升级 • K8s下应用IP的不确定、导致服务治理规则的失效 • 应用迁移上云成本很高 • 极致、灵活的弹性 微服务在云原生下的挑战 后端服务BaaS化 DB,MQ, Redis, 注册中心、配置中心、服务治理中心 Fat-SDK Pandora One Agent One Mesh • 基于隔离容器 • 运维治理效率 大幅提升 • 无侵入 • 0升级成本 • 全面兼容开源 • 无侵入 • 多语言 • 依赖冲突难管理 • SDK升级成本高 微服务治理演进路线 • 服务元信息 • 服务契约管理 • 服务测试 • 服务Mock • 开发环境隔离 • 端云互联 运行态Ops 开发态Dev 消费者 Agent Agent 用户 配置中心 治理规则 Dev-Sec-Ops 无损下线 离群实例摘除 标签路由 服务鉴权 链路跟踪 金丝雀发布 API管理 服务测试 限流降级 故障注入 • 业务无侵入、无感知 • 0升级成本 • 全面兼容开源 注册中心 元数据中心 微服务引擎 基于 Java Agent 的服务治理 public class BaseLoadBalancer0 码力 | 27 页 | 7.10 MB | 1 年前3
 第29 期| 2023 年9 月- 技术雷达Inc. All Rights Reserved. 采纳 1. 设计系统 2. 轻量级的 RFCs 方法 试验 3. 具有可访问性意识的组件测试设计 4. 攻击路径分析 5. 自动合并依赖项更新 PR 6. 针对 FAIR 数据的数据产品思维 7. OIDC for GitHub Actions 8. 使用 Terraform 创建监控和告警 9. ReAct 提示工程 10. 检索增强生成 11. 基于风险的故障建模 12. 大语言模型半结构化自然语言输入 13. 追踪健康债务状况 14. 对告警规则的单元测试 15. CI/CD 的零信任保护 评估 16. 通过依赖健康检查化解包幻觉风险 17. 设计系统决策记录 18. GitOps 19. 大语言模型驱动的自主代理 20. 平台编排 21. 自托管式大语言模型 暂缓 22. 忽略 OWASP 十大安全风险榜单 暂缓 暂缓 评估 评估 试验 试验 采纳 采纳 采纳 1. 设计系统 2. 轻量级的 RFCs 方法 试验 3. 具有可访问性意识的组件测试设计 4. 攻击路径分析 5. 自动合并依赖项更新 PR 6. 针对 FAIR 数据的数据产品思维 7. OIDC for GitHub Actions 8. 使用 Terraform 创建监控和告警 9. ReAct 提示工程0 码力 | 43 页 | 2.76 MB | 1 年前3 第29 期| 2023 年9 月- 技术雷达Inc. All Rights Reserved. 采纳 1. 设计系统 2. 轻量级的 RFCs 方法 试验 3. 具有可访问性意识的组件测试设计 4. 攻击路径分析 5. 自动合并依赖项更新 PR 6. 针对 FAIR 数据的数据产品思维 7. OIDC for GitHub Actions 8. 使用 Terraform 创建监控和告警 9. ReAct 提示工程 10. 检索增强生成 11. 基于风险的故障建模 12. 大语言模型半结构化自然语言输入 13. 追踪健康债务状况 14. 对告警规则的单元测试 15. CI/CD 的零信任保护 评估 16. 通过依赖健康检查化解包幻觉风险 17. 设计系统决策记录 18. GitOps 19. 大语言模型驱动的自主代理 20. 平台编排 21. 自托管式大语言模型 暂缓 22. 忽略 OWASP 十大安全风险榜单 暂缓 暂缓 评估 评估 试验 试验 采纳 采纳 采纳 1. 设计系统 2. 轻量级的 RFCs 方法 试验 3. 具有可访问性意识的组件测试设计 4. 攻击路径分析 5. 自动合并依赖项更新 PR 6. 针对 FAIR 数据的数据产品思维 7. OIDC for GitHub Actions 8. 使用 Terraform 创建监控和告警 9. ReAct 提示工程0 码力 | 43 页 | 2.76 MB | 1 年前3
 从Mesos到Kubernetes CMD固定为Docker-init  环境变量指引功能 Docker-Init 进程组 健康检查端口 容器启动退出钩子 回收僵尸进程 调试模式 注入环境变量开关 与内部基础设施对接 基础架构组合 负载均衡(ELB) 自动配置域名,按运 营商自动划分线路 docker-init和ELB服 务都会动态更新LVS 配置,可重入  引入人为延时,模拟服务降级  寻找未使用、可被清理的资源  寻找不符合预定义最佳实践的服务  发现和跟踪异常修改,排查安全问题 DCBrain 根因分析  自动发现依赖拓扑  完善的监控点  决策树找到最末报警点 ServiceA HOST SWITCH ServiceB Domain LB 故障自愈 StackStorm0 码力 | 30 页 | 2.12 MB | 1 年前3 从Mesos到Kubernetes CMD固定为Docker-init  环境变量指引功能 Docker-Init 进程组 健康检查端口 容器启动退出钩子 回收僵尸进程 调试模式 注入环境变量开关 与内部基础设施对接 基础架构组合 负载均衡(ELB) 自动配置域名,按运 营商自动划分线路 docker-init和ELB服 务都会动态更新LVS 配置,可重入  引入人为延时,模拟服务降级  寻找未使用、可被清理的资源  寻找不符合预定义最佳实践的服务  发现和跟踪异常修改,排查安全问题 DCBrain 根因分析  自动发现依赖拓扑  完善的监控点  决策树找到最末报警点 ServiceA HOST SWITCH ServiceB Domain LB 故障自愈 StackStorm0 码力 | 30 页 | 2.12 MB | 1 年前3
 腾讯云 Kubernetes 高性能网络技术揭秘——使用 eBPF 增强 IPVS 优化 K8s 网络性能-范建明为什么纯粹的eBPF方法不行 • 不够成熟 eBPF 简介 • 编写eBPF程序 • 编译成eBPF中间代码 • 注入内核 • 挂载到network traffic control • 报文激发eBPF代码 技术创新点一 • IPVS 对conntrack的功能依赖 • Iptables SNAT • 具体如何绕过conntrack? • 进报文 • 将处理请求的钩子从nf0 码力 | 27 页 | 1.19 MB | 9 月前3 腾讯云 Kubernetes 高性能网络技术揭秘——使用 eBPF 增强 IPVS 优化 K8s 网络性能-范建明为什么纯粹的eBPF方法不行 • 不够成熟 eBPF 简介 • 编写eBPF程序 • 编译成eBPF中间代码 • 注入内核 • 挂载到network traffic control • 报文激发eBPF代码 技术创新点一 • IPVS 对conntrack的功能依赖 • Iptables SNAT • 具体如何绕过conntrack? • 进报文 • 将处理请求的钩子从nf0 码力 | 27 页 | 1.19 MB | 9 月前3
 Chaos Mesh让应用与混沌在 Kubernetes 上共舞-杨可奥那网络故障呢?磁盘故障呢?恢复呢?如何控制作用范围? 这是一件复杂的事 TBF/NETEM/... 这是一件困难的事 1. 天然的隔离性和安全性 2. Go 的线程模型与 namespace 机制难以融合 3. 要求运行时注入和恢复 4. 和内核打交道通常都是困难的! Kubernetes 上的混沌工程方案 Chaos Mesh Cloud Native ● 在 Kubernetes 上运行,被测对象也运行在 Kubernetes0 码力 | 30 页 | 1.49 MB | 9 月前3 Chaos Mesh让应用与混沌在 Kubernetes 上共舞-杨可奥那网络故障呢?磁盘故障呢?恢复呢?如何控制作用范围? 这是一件复杂的事 TBF/NETEM/... 这是一件困难的事 1. 天然的隔离性和安全性 2. Go 的线程模型与 namespace 机制难以融合 3. 要求运行时注入和恢复 4. 和内核打交道通常都是困难的! Kubernetes 上的混沌工程方案 Chaos Mesh Cloud Native ● 在 Kubernetes 上运行,被测对象也运行在 Kubernetes0 码力 | 30 页 | 1.49 MB | 9 月前3
 Kubernetes 容器编排与应用编排DaemonSet DaemonSet Pod 1. 可以在指定节点一个副本 * NodeSelector * Affinity 2. 可控的滚动更新模式 3. 独立的调度模式 * 不依赖 Scheduler * 无视 unschedulable Kubernetes 控制器 CronJob CronJob Job Pod 1. 定时执行的批处理任务 2. 定时任务并发策略 Update 3. 极简的部署方式:YAML + Image Kubernetes 的现状 1. 对于大型应用而言,需要组合使用大量的 Kubernetes 资源 2. 缺乏统一的依赖管理机制,需要用户自行解决依赖关系 3. 极简的部署方式也给用户带来了新的负担 应用编排架构 应用单元 应用是什么? = + + 应用 Services Pods Volumes 应用编排架构 应用单元0 码力 | 20 页 | 4.22 MB | 1 年前3 Kubernetes 容器编排与应用编排DaemonSet DaemonSet Pod 1. 可以在指定节点一个副本 * NodeSelector * Affinity 2. 可控的滚动更新模式 3. 独立的调度模式 * 不依赖 Scheduler * 无视 unschedulable Kubernetes 控制器 CronJob CronJob Job Pod 1. 定时执行的批处理任务 2. 定时任务并发策略 Update 3. 极简的部署方式:YAML + Image Kubernetes 的现状 1. 对于大型应用而言,需要组合使用大量的 Kubernetes 资源 2. 缺乏统一的依赖管理机制,需要用户自行解决依赖关系 3. 极简的部署方式也给用户带来了新的负担 应用编排架构 应用单元 应用是什么? = + + 应用 Services Pods Volumes 应用编排架构 应用单元0 码力 | 20 页 | 4.22 MB | 1 年前3
共 24 条
- 1
- 2
- 3














 
 