石墨文档Go在K8S上微服务的实践-彭友顺• Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 问题:每种开源组件的配置、调用方式、debug方式、记录日志方式都不一样 微服务的开发阶段 问题:gRPC未设置连接错误,阻塞模式报错不正确 Redis、MySQL连接数配置未设置?超时未设置? 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 WithBlock(). 默认补齐配置,给出最佳实践 微服务的开发阶段 IDE的体验,右键插入资源引用,悬停查看资源信息 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 配置版本,发布,回滚,可以更加方便 微服务的开发阶段 统一采用gRPC协议和protobuf编解码 CI check 会基于 pb 的注释自动产生文档,并推送至内部的微服务管理系统接口平台中 • 会生成 Go/PHP/Node/Java 桩代码和错误码,推送到指定的仓库 开发阶段 • go get 客户端、服务端的gRPC和错误码的代码 配置 对接 Debug • 配置驱动 • 配置补齐 • 配置工具 • Proto的管理 • 错误码管理 • 调试gRPC • 调试信息 • 错误定位 微服务的开发阶段0 码力 | 41 页 | 3.20 MB | 1 年前3
Docker 从入门到实践 0.4git $ cd docker_practice $ git config user.name "yourname" $ git config user.email "your email" 修改代码后提交,并推送到自己的仓库。 $ #do some change on the content $ git commit -am "Fix issue #1: change helo to hello" 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。 Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在 其 RHEL6.5 中集中支持 在如下几个方面具有较大的优势。 对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。 开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来 部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员 更容易理解应用程序是如何创建和工作的。 Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约0 码力 | 179 页 | 2.27 MB | 1 年前3
OpenShift Container Platform 4.9 网络可以跟后端服务通信。如果删除并重新创建服务,可以为该服务分配一个新的 IP 地址,而且 需要重新创建前端 pod 来获取服务 IP 环境变量的更新值。另外,必须在任何前端 pod 之前创建后端服 务,以确保正确生成服务 IP,并将它作为环境变量提供给前端 pod。 因此,OpenShift Container Platform 具有一个内置 DNS,以便服务 DNS 以及服务 IP/端口能够访问这 些服务。 Container Platform 4.9 网 网络 络 6 HTTP/2、HTTPS 和服务器名称识别(SNI),以及 TLS(证书)。在 OpenShift Container Platform 中, 生成路由以满足 Ingress 资源指定的条件。 1.3. OPENSHIFT CONTAINER PLATFORM 网络的常见术语表 该术语表定义了在网络内容中使用的常用术语。 身份 身份验证 验证 指定用于自定义网络策略审计日志的配置对象。如果未设置,则 使用默认的审计日志设置。 表 表 4.5. policyAuditConfig object 字段 字段 类 类型 型 描述 描述 rateLimit 整数 每个节点每秒生成一次的消息数量上限。默认值为每秒 20 条消 息。 maxFileSize 整数 审计日志的最大大小,以字节为单位。默认值为 50000000 或 50 MB。 目的地 目的地 字符串 以下附加审计日志目标之一:0 码力 | 388 页 | 4.04 MB | 1 年前3
Docker 从入门到实践 0.9.0(2017-12-31)到本地, 并设置用户信息。 $ git clone git@github.com:docker_user/docker_practice.git $ cd docker_practice 修改代码后提交,并推送到自己的仓库,注意修改提交消息为对应 Issue 号和描述。 # Update the content $ git commit -a -s # In commit msg dialog Solomon Hykes 在法国期间发起的一个公司内部项目, 它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权 协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会, 并成立推动 开放容器联盟(OCI)。 Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目已经超过 开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一 致,导致有些 bug 并未在开发过程中被发现。而 Docker 的镜像提供了除内核外完整的运行 时环境,确保了应用运行环境一致性,从而不会再出现 「这段代码在我机器上没问题啊」 这 类问题。 持续交付和部署 对开发和运维(DevOps)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运 行。 使用 Docker 可以通过定制应用镜像来0 码力 | 370 页 | 6.73 MB | 1 年前3
OpenShift Container Platform 4.13 网络可以跟后端服务通信。如果删除并重新创建服务,可以为该服务分配一个新的 IP 地址,而且 需要重新创建前端 pod 来获取服务 IP 环境变量的更新值。另外,必须在任何前端 pod 之前创建后端服 务,以确保正确生成服务 IP,并将它作为环境变量提供给前端 pod。 因此,OpenShift Container Platform 具有一个内置 DNS,以便服务 DNS 以及服务 IP/端口能够访问这 些服务。 第 第 2 章 章 了解网 了解网络 络 9 HTTP/2、HTTPS 和服务器名称识别(SNI),以及 TLS(证书)。在 OpenShift Container Platform 中, 生成路由以满足 Ingress 资源指定的条件。 2.3. OPENSHIFT CONTAINER PLATFORM 网络的常见术语表 该术语表定义了在网络内容中使用的常用术语。 身份 身份验证 验证 Firewall Operator 使用扩展的 Berkley Packet Filter (eBPF) 和 eXpress Data Path (XDP) 插件来处理节点防火墙规则,更新统计信息并为丢弃的流量生成事件。Operator 管理入口节点防火墙资 源,验证防火墙配置,不允许错误配置规则来防止集群访问,并将 ingress 节点防火墙 XDP 程序加载到规 则对象中的所选接口。如需更多信息,请参阅了解0 码力 | 697 页 | 7.55 MB | 1 年前3
OpenShift Container Platform 4.8 Service MeshService Mesh 简介 Red Hat OpenShift Service Mesh 通过在应用程序中创建集中控制点来解决微服务架构中的各种问题。它 在现有分布式应用上添加一个透明层,而无需对应用代码进行任何更改。 微服务架构将企业应用的工作分成模块化服务,从而简化扩展和维护。但是,随着微服务架构上构建的企 业应用的规模和复杂性不断增长,理解和管理变得困难。Service Mesh 可以通过捕获或截获服务间的流量 对服务间的交互应用机构策略,确保实施访问策略,并在用户间分配资源。通过配置 网格就可以对策略进行更改,而不需要修改应用程序代码。 遥测 - 了解服务间的依赖关系以及服务间的网络数据流,从而可以快速发现问题。 1.2. SERVICE MESH 发行注记 1.2.1. 使开源包含更多 红帽承诺替换我们的代码、文档和网页属性中存在问题的语言。我们从这四个术语开始: master、 slave、blacklist 。 ServiceMeshControlPlane 修改示例 修改示例 1.2.2.18.2. 授权策略所需的更新 Istio 为主机名本身和所有匹配端口生成主机名。例如,用于 "httpbin.foo" 主机的虚拟服务或网关会生成 apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata: name: basic0 码力 | 344 页 | 3.04 MB | 1 年前3
OpenShift Container Platform 4.8
Web 控制台及这些微服务 间的交互。当服务网格的规模和复杂性增大时,了解和管理它就会变得非常困难。 Red Hat OpenShift Service Mesh 基于开源 Istio 项目,它在不需要修改服务代码的情况下,为现有的分 布式应用程序添加了一个透明的层。您可以在服务中添加对 Red Hat OpenShift Service Mesh 的支持,方 法是将一个特殊的 sidecar 代理服务器部署 以便可以通 过信任度不同的网络进行传输。 策略 策略强 强制 制 - 对服务间的交互应用机构策略,确保实施访问策略,并在用户间分配资源。通过配置 网格就可以对策略进行更改,而不需要修改应用程序代码。 遥 遥测 测 - 了解服务间的依赖关系以及服务间的网络数据流,从而可以快速发现问题。 1.3.3. Red Hat OpenShift Service Mesh 1.1.2 版中包含的组件版本 f/utility.cc:174] Using deprecated option 'envoy.api.v2.Listener.use_original_dst' from file LDS.proto。This configuration will be removed from Envoy soon. MAISTRA-681 和 KIALI-2686 当 control plane 有多个命名空间时,可能会导致出现性能问题。0 码力 | 87 页 | 1.58 MB | 1 年前3
Istio控制平面组件原理解析喜欢研究源码,对NSQ,Jaeger,Istio(控制平面)等go语言开源项目进行 过研究。 • 除了代码还喜欢爬山和第二天睡醒后全身酸疼的感觉。目录Pilot-Agent——管理生命周期(PA) u启动envoy u热重启envoy u监控envoy u优雅关闭envoy启动envoy ü监听/etc/certs目录 ü生成envoy静态配置文件envoy-rev0.json ü通过exec.Command启动 u触发配置生效方式v1版本和v2版本之间的区别 V1 HTTP1 REST JSON/YAML 弱类型 轮询 SDS/CDS/RDS/LDS 奠定控制平面基础 V2 HTTP2 GRPC Proto3 强类型 Push SDS/CDS/RDS/LDS/HDS/ADS/KDS 和Google强强联手 官方博客:The universal data plane API缓存Istio和k8s配置 业务性能和日志之间的选择,出现阻塞,丢弃日志保性能 ü方案二 • 使用主题订阅模式,减少阻塞问题Istio_Ca——安全证书管理(ICA) u证书生成 u证书挂载 u证书过期证书生成 ü生成root-cert.pem ü生成cert-chain.pem ü生成key.pem证书挂载 üICA以Name为istio.default在k8s创建Secrets对象 ü应用服务获取Secrets对象证书,并挂载到/etc/certs0 码力 | 30 页 | 9.28 MB | 6 月前3
OpenShift Container Platform 4.6 网络可以跟后端服务通信。如果删除并重新创建服务,可以为该服务分配一个新的 IP 地址,而且 需要重新创建前端 pod 来获取服务 IP 环境变量的更新值。另外,必须在任何前端 pod 之前创建后端服 务,以确保正确生成服务 IP,并将它作为环境变量提供给前端 pod。 因此,OpenShift Container Platform 具有一个内置 DNS,以便服务 DNS 以及服务 IP/端口能够访问这 些服务。 Container Platform 4.6 网 网络 络 10 HTTP/2、HTTPS 和服务器名称识别(SNI),以及 TLS(证书)。在 OpenShift Container Platform 中, 生成路由以满足 Ingress 资源指定的条件。 第 第 1 章 章 了解网 了解网络 络 11 第 2 章 访问主机 了解如何创建堡垒主机来访问 OpenShift Container Platform tegy 类型和内部负载平衡)提供了发布 Ingress Controller 端点的方法。 6.2. INGRESS 配置资产 安装程序在 config.openshift.io API 组中生成带有 Ingress 资源的资产,cluster-ingress-02- config.yml。 Ingress 资 资源的 源的 YAML 定 定义 义 安装程序将这个资产保存在 manifests/0 码力 | 256 页 | 2.78 MB | 1 年前3
OpenShift Container Platform 4.10 可伸缩性和性能平台验证执 验证执行延 行延迟测试 迟测试 15.1. 运行延迟测试的先决条件 15.2. 关于延迟测试的发现模式 15.3. 测量延迟 15.4. 运行延迟测试 15.5. 生成延迟测试失败报告 15.6. 生成 JUNIT 延迟测试报告 15.7. 在单节点 OPENSHIFT 集群上运行延迟测试 15.8. 在断开连接的集群中运行延迟测试 15.9. 对 CNF-TESTS 容器的错误进行故障排除 卷不使用突发性能。 2. Infra 节点用于托管 Monitoring、Ingress 和 Registry 组件,以确保它们有足够资源可大规模运 行。 3. 工作负载节点专用于运行性能和可扩展工作负载生成器。 4. 使用更大的磁盘,以便有足够的空间存储在运行性能和可扩展性测试期间收集的大量数据。 5. 在迭代中扩展了集群,且性能和可扩展性测试是在指定节点数中执行的。 8.2.2. IBM Power 82 2. Infra 节点用于托管 Monitoring、Ingress 和 Registry 组件,以确保它们有足够资源可大规模运 行。 3. 工作负载节点专用于运行性能和可扩展工作负载生成器。 4. 使用更大的磁盘,以便有足够的空间存储在运行性能和可扩展性测试期间收集的大量数据。 5. 在迭代中扩展了集群。 8.2.3. IBM Z 平台 节 节点 点 vCPU [4] RAM(GiB)[5]0 码力 | 315 页 | 3.19 MB | 1 年前3
共 332 条
- 1
- 2
- 3
- 4
- 5
- 6
- 34













