Operator Pattern 用 Go 扩展 Kubernetes 的最佳实践Operator Pattern:用 Go 扩展 K8s 的最佳实践 吴学强 ApeCloud KubeBlocks Maintainer & 研发总监 目 录 认识我们 00 什么是 Operator 01 Operator 基础模型 02 Operator 最佳实践 03 我们是谁 云猿生(ApeCloud)是一家提供数据库内核与管理平台的基 础软件开发商. KubeBlocks Operator Pattern 2015.11 2016.12 2017.12 Now K8s 1.1 版本中正式推出 TPR (ThirdPartyResource),首次尝 试解决 K8s API 的扩展性问题, 但存在诸多问题,Alpha 阶段既 夭折 CoreOS 提出 Operator 概念,用 于管理和运行基于应用程序领 域的复杂有状态应用程序。 给出了用 TPR + controller- {...} ⚠️ Owns + SetControllerReference 配合,保证收到所有事件 实战:build an operator from scratch 实验描述: Kubernetes 中有一个支持用 Cron 表达式运行定时任务的对象叫 CronJob,本次实验会用 Kubebuilder 构建一个 Operator,重新实现 CronJob 的 功能(实验链接)。本次实验目标:0 码力 | 21 页 | 3.06 MB | 9 月前3
SOFAMesh的通用协议扩展SOFA MESH 的通用协议扩展 Service Mesh Meetup #3 深圳站 邵俊雄(熊啸) 2018.08.25AGENDA • SOFA MESH 介绍 • SERVICE MESH 落地的问题 • SOFA MESH 的通用落地方案 • DNS 服务寻址方案 • X-PROTOCOL 通用协议 • 问答SOFA MESH • 从 ISTIO 克隆并保持同步更新 • 使用 …SERVICE MESH 落地中的问题常见的 MESH 落地方案 在非 KUBERNETES 环境部署 ISTIO 把 KUBERNETES 当作一个更好用的虚拟化方案 KUBERNETES NATIVE 化微服务 PLATFORM ADAPTER 自己做控制平面KUBERNETES NATIVE 微服务 • 使用 Kubernetes 作为注册中心 • Service • Endpoint • • Pod • 使用 DNS 寻址 • 使用 iptables/ebpf 透明地路由所有网络流量 • 服务治理规则,服务,实例和配置都是 Kubernetes 资源 • 使用 Controller Pattern 通过 CRD 扩展新的能力 • …MESH 落地碰到的问题 • 客户端服务发现与负载均衡无法与 ISTIO 一起工作 • ENVOY 不支持微服务使用的通信协议 • RPC 服务使用的接口,方法,参数语义无法匹配0 码力 | 28 页 | 4.73 MB | 6 月前3
基于 Kubernetes 构建标准可扩展的云原生应用管理平台-孙健波、周正喜孙健波/周正喜 基于 Kubernetes 构建标准可扩展的云原生应用管理平台 2 3 有奖品? 我的工作内容? • 构建云原生应用管理平台 @ 阿里巴巴 Kubernetes 工程师 PaaS 工程师 基础设施运维工程师 … YAML 工程师 我们是如何构建的? PaaS Serverless Operator Platform 基于 Kubernetes 我们构建了多种多样的应用管理平台: 我们构建了多种多样的应用管理平台: 电商 PaaS Kubernetes 用户 ( 应用开发者和运维人员 ) 我所在的团队 为什么 我们需要在 Kubernetes 上构建这些平台呢? 8 Kubernests 官方说: “The metadata is organized around the concept of an application. Kubernetes is not a platform described with metadata. The definition of what an application contains is loose.” Sited: https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/ API 和业务原语 关注点不同 服务语义与抽象程度不同 交互与使用习惯不同0 码力 | 27 页 | 3.60 MB | 9 月前3
13 Istio 流量管理原理与协议扩展 赵化冰Istio 流量管理原理与协议扩展 赵化冰 赵化冰 腾讯云 服务网格团队 https://zhaohuabing.com Service Mesh Service Mesh Layer 处理服务间通信(主要是七层通信)的云原生基础设施层: Service Mesh 将各个服务中原来使用 SDK 实现的七层通信相关功能抽象 出来,使用一个专用层次来实现,Service Mesh 对应用透明,因此应用 外部流量出口 外部流量入口 Pilot 2 Istio 流量管理 – 控制面 两类数据: q 服务数据(Mesh 中有哪些服务?缺省路由) v Service Registry § Kubernetes:原生支持 § Consul、Eureka 等其他服务注册表:MCP over xDS (https://github.com/istio-ecosystem/consul-mcp) v 通过CRD定义的服务数据 Istio 支持的七层协议非常有限:HTTP 1.1、 HTTP2、 gRPC 其余协议只能在四层进行处理(Thrift、Redis 等其他七层协议的控制面支持非常有限) 11 Istio 协议扩展:控制面和数据面需要进行的改动 apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews-route0 码力 | 20 页 | 11.31 MB | 6 月前3
Best practices for building Kubernetes OperatorsBest practices for building Kubernetes Operators Patryk WasielewskiAbout me ● DevOps Consultant at Amazon Web Services (AWS) ● 6 years professional experience as DevOps / SRE / Developer ● Cloud-native json-patch/merge-patch support ○ Finalizers ○ Built-in Authz/AuthnControllers https://able8.medium.com/kubernetes-controllers-overview-b6ec086c1fbControllers ● Controller tracks at least one resource type ● backup, failover, recovery, etc.), for a software running within the Kubernetes cluster, https://www.cncf.io/blog/2022/06/15/kubernetes-operators-what-are-they-some-examples/Framework - Kubebuilder/Operator-sdkCapability0 码力 | 36 页 | 2.19 MB | 6 月前3
TiDB 与 TiFlash扩展——向真 HTAP 平台前进 韦万0 码力 | 45 页 | 2.75 MB | 6 月前3
破解 Kubernetes 应用开发困局-王炜破解 Kubernetes 应用开发困局 实时热加载和一键 Debug 2021.08.05 王炜 2 腾讯云 CODING DevOps 高级架构师 CNCF 大使 Nocalhost 项目负责人 自我介绍 1. K8s 环境开发困局 2. 主流云原生开发方式 3. 热加载原理 4. 开发和调试演示 5. 开源共建 目录 K8s 环境开发困局 01 开发举步维艰 微服务-Docker 微服务越来越多,运行环境变复杂。服务依赖、打包、运行、迁移越来越难。 Docker 提供镜像打包的解决方案。 Docker-Kubernetes K8s 环境的开发困局 容器越来越多,服务编排、发现、稳定性监控、自愈等成为新的挑战。 Kubernetes 提供容器编排的解决方案。 6 面向运维 •开发难 概念繁多,声明式定义学习成本高。 •调试难 无法像本地一样调试,开发效率低。0 码力 | 20 页 | 3.58 MB | 9 月前3
Kubernetes容器应用基于Istio的灰度发布实践1 Kubernetes容器应用基于Istio的灰度发布实践 张超盟 @ Huawei Cloud BU 2018.08.25 Service Mesh Meetup #3 深圳站2 Agenda • Istio & Kubernetes • Istio & Kubernetes上的灰度发布3 An open platform to connect, manage, and secure 通信基础 服务发现 负载均衡 熔断容错 动态路由 … for (封装++) { 应用侵入--; 治理位置--; }6 微服务角度看Istio: 服务网格 服务网格控制面7 从基础设施(Kubernetes)看Istio: 服务访问 Node svca svcc svcb.n s svcc.ns svcb svcd svce svce.n s svcd.n s svcd.n Backend Pod2 Labels:app=svcb Port:9379 svca8 基础设施(Kubernetes)看Istio: 能力增强 服务部署运 维 服务治理 • 调用链追踪 • 动态路由 • 熔断限流 • 负载均衡 • 服务发现 • 扩缩容 • 运维 • 部署 Kubernetes Istio9 Istio治理的不只是微服务,只要有访问的服务,都可以被治理。10 Istio关键能力0 码力 | 34 页 | 2.64 MB | 6 月前3
在Kubernetes上部署高可用的Service Mesh监控mesh Old-school monitoringPrometheus + Kubernetes ● A time series based monitoring system. ● Borgmon for mere mortals. ● Seamless integration with kubernetes at infrastructure and app level. ● Key caching is necessary.Deploy on kubernetes - Prom + Sidecar ● https://github.com/improbable-eng/thanos/tree/master/ kube/manifests ● Run as statefulset in a kubernetes cluster. ● Sidecar and prometheus ● Sidecar exposes 10900 for gossip between thanos componentsDeploy on kubernetes - Querier ● Run as deployment in a kubernetes cluster. ● Stateless, scale as you like. ● Exposes 9090 for prometheus-like0 码力 | 35 页 | 2.98 MB | 6 月前3
sealos 以 kubernetes 为内核的云操作系统环界云计算创始人 公司代表作品: Sealos 云操作系统 Laf 函数计算 FastGPT AI 知识库 Sealos 介绍 以 kubernetes 为内核的云操作系统 整个数据中心抽象成一台服务器,一切皆应用,让用云像用个人电脑一样简单! Kubernetes是云操作系统内核,整个集群是一个整体 Sealos是云操作系统发行版本 Linux发行版,如redhat Linux kernel Cloud / AWS / Google cloud Laf Function as service Databases Management Other Applications Kubernetes User APP User APP User APP Application manager KB controller Mysql/pgsql/mongo CNI CRI CSI ·· ·· 打包 监控 系统 日至 系统 数据库 消息队列 对象存储 计算 储存 网络 kubernetes SaaS服务 30min 1人 一键打包 整体交付 一次建构 到处运行 使用sealos 技术实现 行业 痛点 在公网不可信的环境中提供多 租户共享一个kubernetes集群 的能力, ,如etcd存储, k8s apiserver,对象存储,数 据库等 技术0 码力 | 29 页 | 7.64 MB | 9 月前3
共 164 条
- 1
- 2
- 3
- 4
- 5
- 6
- 17













