 第29 期| 2023 年9 月- 技术雷达Reserved. 14 7. OIDC for GitHub Actions 试验 推荐实现 CI/CD 的零信任安全的技术之一是通过使用 OpenID Connect(OIDC)等联合身份机制对流水线进行 身份验证,以访问云服务。这一重要的技术仍未被充分利用在 GitHub Actions 中,因此推荐 OIDC for GitHub Actions。通过这种方式,可以避免存储长期 系统 的健康状况与债务,可为维护和增强系统提供结构化的循证战略。 14. 对告警规则的单元测试 试验 可观测性和监控对于软件团队至关重要。鉴于特定事件的不可预测性,创建具有复杂规则的准确告警机制至关 重要。然而,只有当事件真实出现时,这些规则才能得到真正的验证。对告警规则的单元测试让团队通过预先、 主动地测试和完善规则,来更好地定义规则,从而增加对规则的信心。这有助于减少误报,并确保报告真正的 问关键数据和系统,如源代码、凭据和机密数据,去构建和部署软件。这让这些系统对恶意攻击者充满了吸引 力。因此,我们强烈推荐为 CI/CD 流水线和基础设施引入零信任安全机制——尽可能少地信赖它们。这项机制 包含一系列技术:如果可行,使用云供应商提供的联合身份校验机制,如 OIDC,来验证流水线,而不是赋予它 们直接访问机密数据的权限。实行最小权限原则去最小化个人用户和执行器账户的权限,而不是使用具有无限 访问0 码力 | 43 页 | 2.76 MB | 1 年前3 第29 期| 2023 年9 月- 技术雷达Reserved. 14 7. OIDC for GitHub Actions 试验 推荐实现 CI/CD 的零信任安全的技术之一是通过使用 OpenID Connect(OIDC)等联合身份机制对流水线进行 身份验证,以访问云服务。这一重要的技术仍未被充分利用在 GitHub Actions 中,因此推荐 OIDC for GitHub Actions。通过这种方式,可以避免存储长期 系统 的健康状况与债务,可为维护和增强系统提供结构化的循证战略。 14. 对告警规则的单元测试 试验 可观测性和监控对于软件团队至关重要。鉴于特定事件的不可预测性,创建具有复杂规则的准确告警机制至关 重要。然而,只有当事件真实出现时,这些规则才能得到真正的验证。对告警规则的单元测试让团队通过预先、 主动地测试和完善规则,来更好地定义规则,从而增加对规则的信心。这有助于减少误报,并确保报告真正的 问关键数据和系统,如源代码、凭据和机密数据,去构建和部署软件。这让这些系统对恶意攻击者充满了吸引 力。因此,我们强烈推荐为 CI/CD 流水线和基础设施引入零信任安全机制——尽可能少地信赖它们。这项机制 包含一系列技术:如果可行,使用云供应商提供的联合身份校验机制,如 OIDC,来验证流水线,而不是赋予它 们直接访问机密数据的权限。实行最小权限原则去最小化个人用户和执行器账户的权限,而不是使用具有无限 访问0 码力 | 43 页 | 2.76 MB | 1 年前3
 张海宁:使用Kubernetes部署超级账本FabricKubernetes架构简介 3 用Kubernetes部署Fabric 4 总结 SACC2017 超级账本项目概览 SACC2017 商用区块链的要求 5 共享账本 智能合约 隐私性 共识算法 多方共享数据 访问权限控制 交易具有合适的可见性 交易需认证身份 用代码描述业务 可验证和签名确认 多方共同认可交易 满足需求的吞吐量 SACC2017 公有链的不足之处 管理方式 Linux基金会 社区 社区(众筹) 货币 无 BTC 比特币 Ether 以太币 挖矿 无 有 有 状态数据方式 键值数据、文档数据 交易数据 帐号数据 共识网络 PBFT等 PoW PoW, PoS 网络 公开或私有 公开 公开 隐私性 有 无 无 智能合约 Go, Java等多种开发语言 无 Solidity • 90+贡献者 • 5000+commits 13 SACC2017 Hyperledger Fabric 1.0 特点 • 提供了交易的机密性 • 权限管理和控制 • 分离了共识和记账职能 • 节点数动态伸缩 • 吞吐量有望提升 • 可升级的智能合约(chaincode) • 成员服务是高可用 14 SACC2017 供应链场景(1) 15 商店0 码力 | 45 页 | 2.70 MB | 1 年前3 张海宁:使用Kubernetes部署超级账本FabricKubernetes架构简介 3 用Kubernetes部署Fabric 4 总结 SACC2017 超级账本项目概览 SACC2017 商用区块链的要求 5 共享账本 智能合约 隐私性 共识算法 多方共享数据 访问权限控制 交易具有合适的可见性 交易需认证身份 用代码描述业务 可验证和签名确认 多方共同认可交易 满足需求的吞吐量 SACC2017 公有链的不足之处 管理方式 Linux基金会 社区 社区(众筹) 货币 无 BTC 比特币 Ether 以太币 挖矿 无 有 有 状态数据方式 键值数据、文档数据 交易数据 帐号数据 共识网络 PBFT等 PoW PoW, PoS 网络 公开或私有 公开 公开 隐私性 有 无 无 智能合约 Go, Java等多种开发语言 无 Solidity • 90+贡献者 • 5000+commits 13 SACC2017 Hyperledger Fabric 1.0 特点 • 提供了交易的机密性 • 权限管理和控制 • 分离了共识和记账职能 • 节点数动态伸缩 • 吞吐量有望提升 • 可升级的智能合约(chaincode) • 成员服务是高可用 14 SACC2017 供应链场景(1) 15 商店0 码力 | 45 页 | 2.70 MB | 1 年前3
 Operator Pattern 用 Go 扩展 Kubernetes 的最佳实践加入 K8s 社 区并正式发布; 自此,CRD + controller-runtime 逐渐成为开发 operator 的首选 Operator Pattern 是官方定义的标准扩 展机制,是 K8s Native Application; Operator = CRD + control loop, i.e, Declaretive API + Automation; kubebuilder Cache Informer 机制 Cache 如何获取到本地(内存中) Informer 启动后会通过 reflector 的 list & watch 机制获取某种资源的 全量 objects。list 可以简单理解为一个 HTTP GET 请求,watch 为一 个 HTTP/2 长连接 Cache 如何保持与 API Server 一致性 list & watch 机制中,list 获取 API 通过网络异步(asynchronous)获取增量数据,所以 cache 提供 的是最终一致性(eventual consistency)。 期间遇到网络、API Server 报错等异常时,会有重试机制 Controller-runtime 的 Informer 增加一段逻辑:如果上层 GET 某个 object 没有对应的 informer, controller-runtime 会马上为其增加0 码力 | 21 页 | 3.06 MB | 9 月前3 Operator Pattern 用 Go 扩展 Kubernetes 的最佳实践加入 K8s 社 区并正式发布; 自此,CRD + controller-runtime 逐渐成为开发 operator 的首选 Operator Pattern 是官方定义的标准扩 展机制,是 K8s Native Application; Operator = CRD + control loop, i.e, Declaretive API + Automation; kubebuilder Cache Informer 机制 Cache 如何获取到本地(内存中) Informer 启动后会通过 reflector 的 list & watch 机制获取某种资源的 全量 objects。list 可以简单理解为一个 HTTP GET 请求,watch 为一 个 HTTP/2 长连接 Cache 如何保持与 API Server 一致性 list & watch 机制中,list 获取 API 通过网络异步(asynchronous)获取增量数据,所以 cache 提供 的是最终一致性(eventual consistency)。 期间遇到网络、API Server 报错等异常时,会有重试机制 Controller-runtime 的 Informer 增加一段逻辑:如果上层 GET 某个 object 没有对应的 informer, controller-runtime 会马上为其增加0 码力 | 21 页 | 3.06 MB | 9 月前3
 第1930期:Kubernetes基础介绍也提供稳定、兼容的基础(平台),用于构建定制化的workflows 和更 高级的自动化任务。Kubernetes 具备完善的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明 的服务注册和服务发现机制、内建负载均衡器、故障发现和自我修复能力、服务滚动升级和在线扩容、可扩展的资源自动调度 机制、多粒度的资源配额管理能力。 Kubernetes 还提供完善的管理工具,涵盖开发、部署测试、运维监控等各个环节。 5 www Kubernetes基础结构介绍 Kubernetes特性: 自动装箱:构建于容器之上,基于资源依赖和其他约束自动完成容器部署。 自我修复:容器故障后自动重启、节点故障后重新调度容器,以及容器自我修复机制。 水平扩展:通过简单明了实现水平扩展,基于CPU等资源负载率的自动水平扩展。 服务发现和负载均衡:实现内部负载均衡可以实现服务访问负载。 自动发布和回滚:可以自动实现版本的发布和回滚。 秘钥和配置 API服务器(kube-apiserver):提供HTTP Rest接口的关键服务,是k8s集群里所有资源的增删查改等操 作的唯一入口,也是集群控制的入口进程。并提供认证、授权、访问控制、API注册和发现等机制 Controller Manager控制管理器(kube-controller-manager):k8s里所有资源对象的自动化控制中心,可以理解为 资源对象的“大总管”。运行着所有处理集群日常任0 码力 | 49 页 | 4.11 MB | 1 年前3 第1930期:Kubernetes基础介绍也提供稳定、兼容的基础(平台),用于构建定制化的workflows 和更 高级的自动化任务。Kubernetes 具备完善的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明 的服务注册和服务发现机制、内建负载均衡器、故障发现和自我修复能力、服务滚动升级和在线扩容、可扩展的资源自动调度 机制、多粒度的资源配额管理能力。 Kubernetes 还提供完善的管理工具,涵盖开发、部署测试、运维监控等各个环节。 5 www Kubernetes基础结构介绍 Kubernetes特性: 自动装箱:构建于容器之上,基于资源依赖和其他约束自动完成容器部署。 自我修复:容器故障后自动重启、节点故障后重新调度容器,以及容器自我修复机制。 水平扩展:通过简单明了实现水平扩展,基于CPU等资源负载率的自动水平扩展。 服务发现和负载均衡:实现内部负载均衡可以实现服务访问负载。 自动发布和回滚:可以自动实现版本的发布和回滚。 秘钥和配置 API服务器(kube-apiserver):提供HTTP Rest接口的关键服务,是k8s集群里所有资源的增删查改等操 作的唯一入口,也是集群控制的入口进程。并提供认证、授权、访问控制、API注册和发现等机制 Controller Manager控制管理器(kube-controller-manager):k8s里所有资源对象的自动化控制中心,可以理解为 资源对象的“大总管”。运行着所有处理集群日常任0 码力 | 49 页 | 4.11 MB | 1 年前3
 腾讯基于 Kubernetes 的企业级容器云实践-罗韩梅• 平台本身支持热升级; • 组件自身HA机制,如docker; • 多地域多可用区的容灾设计 • 管理机挂掉:对应用无影响 • 计算节点挂掉:跨机迁移 • 健康探针 ① 存活探针 ② 就绪探针 • 负载均衡 • 重启机制 ① 区分异常原因 ② 本地重启/跨机重启 • 黑名单机制 • 集群核心数据的备份和恢复 ① Etcd ② 核心数据库 • 云盘机制保护应用数据 • 举例:1.4升级1.9版本0 码力 | 28 页 | 3.92 MB | 1 年前3 腾讯基于 Kubernetes 的企业级容器云实践-罗韩梅• 平台本身支持热升级; • 组件自身HA机制,如docker; • 多地域多可用区的容灾设计 • 管理机挂掉:对应用无影响 • 计算节点挂掉:跨机迁移 • 健康探针 ① 存活探针 ② 就绪探针 • 负载均衡 • 重启机制 ① 区分异常原因 ② 本地重启/跨机重启 • 黑名单机制 • 集群核心数据的备份和恢复 ① Etcd ② 核心数据库 • 云盘机制保护应用数据 • 举例:1.4升级1.9版本0 码力 | 28 页 | 3.92 MB | 1 年前3
 逐灵&木苏-阿里巴巴 K8S 超大规模实践经验Pod main Container logtail sshd monitor 业务 ssh 日志 监控 通过 Dockerfile 打包应用 镜像,一次定义多次运行 通过镜像提供的组装机制 打包应用镜像,包含业务 及运维基础设施进程 更进一步组合多个容器 为一个 Pod,Pod 一次 定义多次运行不可变基础设施 • 应用与运维基础设施容器分离 • 支持各自独立升级 • SidecarSetOpenKruise APIServer Http2 -> http1.1 Upgrade Etcd client v3.3.15 周期性重建连接 slb slb 直连 设置maxSurge• 客户端和服务端的同步机制 List & Watch优化 ETCD Cache Pod A V1 Pod A V2 Pod A V3 Reflector APIServer Watch Cache List & Informer Store Kubelets Watch (rv=11 node=x) Too old version err rv=3 Bookmark rv=11• List & Get的通讯机制 Cache Read & Index APIServer Client List / Get ETCD rv=nil Page read Filter by condition• APIServer0 码力 | 33 页 | 8.67 MB | 6 月前3 逐灵&木苏-阿里巴巴 K8S 超大规模实践经验Pod main Container logtail sshd monitor 业务 ssh 日志 监控 通过 Dockerfile 打包应用 镜像,一次定义多次运行 通过镜像提供的组装机制 打包应用镜像,包含业务 及运维基础设施进程 更进一步组合多个容器 为一个 Pod,Pod 一次 定义多次运行不可变基础设施 • 应用与运维基础设施容器分离 • 支持各自独立升级 • SidecarSetOpenKruise APIServer Http2 -> http1.1 Upgrade Etcd client v3.3.15 周期性重建连接 slb slb 直连 设置maxSurge• 客户端和服务端的同步机制 List & Watch优化 ETCD Cache Pod A V1 Pod A V2 Pod A V3 Reflector APIServer Watch Cache List & Informer Store Kubelets Watch (rv=11 node=x) Too old version err rv=3 Bookmark rv=11• List & Get的通讯机制 Cache Read & Index APIServer Client List / Get ETCD rv=nil Page read Filter by condition• APIServer0 码力 | 33 页 | 8.67 MB | 6 月前3
 云计算白皮书用户体验和客户满意度,逐步成为企业业务持续领先的“关键要素”。 应综合考虑技术、机制和组织人员情况,采用多种技术手段,如混 沌工程、全链路压测、可观测性技术、变更管控和应用多活等,从 事前、事中、事后,全流程确保系统稳定运行。目前,国内云计算 厂商对稳定性保障体系的建设均已有较完善的实践,如阿里云的 “1-5-10 机制”、华为云的“确定性运维”、腾讯云的“混沌蓝军机 制”。二是可观测性成系统“中枢神经”。可观测性提供了实时监测 的云原生安全治理。搭建了云上安全防护体系但安全问题仍然层出不 穷是不少用云企业面临的难题。一方面是因为企业的战略理念和组织 管理没有跟上企业信息系统的变革,另一方面是因为缺乏资产可见性、 安全配置不当和缺乏运营机制等原因,使得安全防护体系失效、出现 问题难定位。因此,云上安全不仅是技术体系的建设,还需要精细化、 原生化的安全治理。首先,需要企业从战略顶层设计、组织文化上接 受云原生安全理念,变革组织管理和人才培养体系,提倡责任共担和 云向持续云优化治理过渡。随着政务、金融、电信等行业业务上云 的快速发展,企业云资源、架构越发复杂、冗余,云成本浪费、资 源效益低下等问题开始显现,第一梯队企业开始探索云的优化和治 理,从体制机制、技术要求、管理规范等多个方面统筹建设治理机 制。三是实现高效低碳运行,推动云运营绿色发展。在国家提出碳 达峰、碳中和战略后,云计算绿色发展理念得到持续关注。第一梯 队行业充分响应国家相关低碳环保政策与规范,应用低碳创新技术,0 码力 | 47 页 | 1.22 MB | 1 年前3 云计算白皮书用户体验和客户满意度,逐步成为企业业务持续领先的“关键要素”。 应综合考虑技术、机制和组织人员情况,采用多种技术手段,如混 沌工程、全链路压测、可观测性技术、变更管控和应用多活等,从 事前、事中、事后,全流程确保系统稳定运行。目前,国内云计算 厂商对稳定性保障体系的建设均已有较完善的实践,如阿里云的 “1-5-10 机制”、华为云的“确定性运维”、腾讯云的“混沌蓝军机 制”。二是可观测性成系统“中枢神经”。可观测性提供了实时监测 的云原生安全治理。搭建了云上安全防护体系但安全问题仍然层出不 穷是不少用云企业面临的难题。一方面是因为企业的战略理念和组织 管理没有跟上企业信息系统的变革,另一方面是因为缺乏资产可见性、 安全配置不当和缺乏运营机制等原因,使得安全防护体系失效、出现 问题难定位。因此,云上安全不仅是技术体系的建设,还需要精细化、 原生化的安全治理。首先,需要企业从战略顶层设计、组织文化上接 受云原生安全理念,变革组织管理和人才培养体系,提倡责任共担和 云向持续云优化治理过渡。随着政务、金融、电信等行业业务上云 的快速发展,企业云资源、架构越发复杂、冗余,云成本浪费、资 源效益低下等问题开始显现,第一梯队企业开始探索云的优化和治 理,从体制机制、技术要求、管理规范等多个方面统筹建设治理机 制。三是实现高效低碳运行,推动云运营绿色发展。在国家提出碳 达峰、碳中和战略后,云计算绿色发展理念得到持续关注。第一梯 队行业充分响应国家相关低碳环保政策与规范,应用低碳创新技术,0 码力 | 47 页 | 1.22 MB | 1 年前3
 Kubernetes开源书 -  周立Monitoring 将容器的通⽤时序指标记录到⼀个中⼼化的数据库中,并提供⼀个UI以便于浏览该数 据。 Cluster-level Logging(集群级别的⽇志) Cluster-level logging 机制负责将容器的⽇志存储到具有搜索/浏览界⾯的中央⽇志存储中去。 Node组件 Node组件在每个Node上运⾏,维护运⾏的Pod并提供Kubernetes运⾏时环境。 kubelet kubelet kubelet:负责Pod所对应的容器的⽣命周期管理,例如容器的创建、启停等。根据从etcd中获取的信息来管理容 器、上报Pod运⾏状态等。 kube-proxy:实现K8s Service的通信与负载均衡机制。 docker:你懂的 Pod(容器组) Pod是由若⼲容器组成的容器组,同⼀个Pod内的所有容器运⾏在同⼀主机上,这些容器使⽤相同的⽹络命令空间、IP 地址和端⼝,相互之间能通过localhost来发现和通信。 的容器运⾏时,但Docker是最常⻅的运⾏时,这样有助于使⽤Docker术语中描述 Pod。 Pod的共享上下⽂是⼀组Linux命名空间、cgroups和潜在的其他⽅⾯的隔离机制——这⼀点与Docker容器的隔离机制⼀ 致。 在Pod的上下⽂中,各个应⽤程序可能会有更⼩的⼦隔离环境。 Pod中的容器共享IP地址和端⼝,并且可通过 localhost 找到对⽅。它们还可使⽤标准的进程间通信(IPC)(例如0 码力 | 135 页 | 21.02 MB | 1 年前3 Kubernetes开源书 -  周立Monitoring 将容器的通⽤时序指标记录到⼀个中⼼化的数据库中,并提供⼀个UI以便于浏览该数 据。 Cluster-level Logging(集群级别的⽇志) Cluster-level logging 机制负责将容器的⽇志存储到具有搜索/浏览界⾯的中央⽇志存储中去。 Node组件 Node组件在每个Node上运⾏,维护运⾏的Pod并提供Kubernetes运⾏时环境。 kubelet kubelet kubelet:负责Pod所对应的容器的⽣命周期管理,例如容器的创建、启停等。根据从etcd中获取的信息来管理容 器、上报Pod运⾏状态等。 kube-proxy:实现K8s Service的通信与负载均衡机制。 docker:你懂的 Pod(容器组) Pod是由若⼲容器组成的容器组,同⼀个Pod内的所有容器运⾏在同⼀主机上,这些容器使⽤相同的⽹络命令空间、IP 地址和端⼝,相互之间能通过localhost来发现和通信。 的容器运⾏时,但Docker是最常⻅的运⾏时,这样有助于使⽤Docker术语中描述 Pod。 Pod的共享上下⽂是⼀组Linux命名空间、cgroups和潜在的其他⽅⾯的隔离机制——这⼀点与Docker容器的隔离机制⼀ 致。 在Pod的上下⽂中,各个应⽤程序可能会有更⼩的⼦隔离环境。 Pod中的容器共享IP地址和端⼝,并且可通过 localhost 找到对⽅。它们还可使⽤标准的进程间通信(IPC)(例如0 码力 | 135 页 | 21.02 MB | 1 年前3
 k8s操作手册 2.3服务名称解析到service-ip,kube-proxy会想办法让访问service-ip的流量转发到真 实pod里面去,如果一个service服务后端对应多个pod,则kube-proxy会使用负 载均衡机制。 ★每创建一个service资源,就会创建一个同名的EndPoints Endpoints:记录了service的targetPort与目标pod的 ip:port映射关系,当目标pod 漂移或重启时,endpoints会自动更新 ReadOnlyMany #可同时被多个node结点只读挂载 persistentVolumeReclaimPolicy: Retain #PV空间被释放时的处理机制,Retain 保持不动,Recycle回收 #,Retain保持不动,Recycle或Delete回收 storageClassName: ReadOnlyOnce #同时只可被一个node结点只读挂载? persistentVolumeReclaimPolicy: Retain #PV空间被释放时的处理机制,Retain 保持不动,Recycle回收 storageClassName: slow #当前PV所属的存储类名称,默认为空(不 属于任何存储类) rbd:0 码力 | 126 页 | 4.33 MB | 1 年前3 k8s操作手册 2.3服务名称解析到service-ip,kube-proxy会想办法让访问service-ip的流量转发到真 实pod里面去,如果一个service服务后端对应多个pod,则kube-proxy会使用负 载均衡机制。 ★每创建一个service资源,就会创建一个同名的EndPoints Endpoints:记录了service的targetPort与目标pod的 ip:port映射关系,当目标pod 漂移或重启时,endpoints会自动更新 ReadOnlyMany #可同时被多个node结点只读挂载 persistentVolumeReclaimPolicy: Retain #PV空间被释放时的处理机制,Retain 保持不动,Recycle回收 #,Retain保持不动,Recycle或Delete回收 storageClassName: ReadOnlyOnce #同时只可被一个node结点只读挂载? persistentVolumeReclaimPolicy: Retain #PV空间被释放时的处理机制,Retain 保持不动,Recycle回收 storageClassName: slow #当前PV所属的存储类名称,默认为空(不 属于任何存储类) rbd:0 码力 | 126 页 | 4.33 MB | 1 年前3
 从Mesos到KubernetesMesos Adapter O  翻译为Marathon/Mesos API  代理Events 有效裁剪 可靠 性能 Service Ingress 部分机制适配  磁盘资源  CRD自定义资源  Flexvolume插件支持LVM  Node异步回收  改造发布策略  新建Deployment  新旧版本Deployment扩缩 change 流量镜像 一键压测  接入层(TCPCopy)  支持流量放大、缩小  一键批处理压测 服务网格  智能负载均衡  流量路由策略  服务保护机制 混沌军团  随机关闭生产环境中的实例,模拟服 务故障  引入人为延时,模拟服务降级  寻找未使用、可被清理的资源  寻找不符合预定义最佳实践的服务  发现和跟踪异常修改,排查安全问题0 码力 | 30 页 | 2.12 MB | 1 年前3 从Mesos到KubernetesMesos Adapter O  翻译为Marathon/Mesos API  代理Events 有效裁剪 可靠 性能 Service Ingress 部分机制适配  磁盘资源  CRD自定义资源  Flexvolume插件支持LVM  Node异步回收  改造发布策略  新建Deployment  新旧版本Deployment扩缩 change 流量镜像 一键压测  接入层(TCPCopy)  支持流量放大、缩小  一键批处理压测 服务网格  智能负载均衡  流量路由策略  服务保护机制 混沌军团  随机关闭生产环境中的实例,模拟服 务故障  引入人为延时,模拟服务降级  寻找未使用、可被清理的资源  寻找不符合预定义最佳实践的服务  发现和跟踪异常修改,排查安全问题0 码力 | 30 页 | 2.12 MB | 1 年前3
共 20 条
- 1
- 2














