全球架构师峰会2019北京/云原生/阿里巴巴 Kubernetes 应用管理实践中的经验与教训&mdashOperator…… Operator是啥? CRD Controller Informer Reflector Event Handler Loop … 我们业务压力大. 一定要学这些么…… 那好吧, 我们帮你写…. 业务方运维 K8s 团队 运维如何上手K8s的扩展能力? 举例:CronHPA • 运维同学怎么知道这个扩展能力怎么用? • 看 CRD?看配置文件?看 …… 文档? • 扩展能力间出现冲突,导致线上故障 Operator 写好了,用 helm 打包部署吧,美滋滋.. 这样啊,你们PaaS 平台的 体验好割裂… 好吧,我们试试 …… 这你恐怕得单独去RDS 界面创建… 业务方运维 K8s 团队 CRD 搞定一切! RDS SLB VPC • 对研发屏蔽 K8s API • 对运维简化 K8s API • 自由描述非 K8s 资源 每个公司/团队都有自己的应用定义 …… 思考题: • 从 CRD 到 扩展 Workload OpenFaaS CRD OpenFaaS 扩展Workload 可发现、可管理的运维能力:OAM Traits System 发现运维能力 查看能力用法 绑定能力给应用 提前暴露冲突 kubectl get traits crob-scaler –o yaml kubectl apply -f example.yaml 从 CRD 到 Trait0 码力 | 26 页 | 6.91 MB | 1 年前3
Kubernetes Native DevOps PracticeExpectations • Kubernetes Capabilities/Advantages to Build DevOps Solution • Architecture and Features • CRD and operator design • Pipeline / Stage/ Task / Task Template / Version Control • Logging, monitoring • Kubernetes Capabilities and Advantages to Build DevOps Solution • Architecture and Features • CRD and operator design • Pipeline/Stage/Task/Task Template/Version Control/UI generation/Volume... invoke various alert and related actions docker registry Kubernetes Cluster Kubernetes Cluster CRD and Operator Design BuildJob DevOps Operator Job Job Job Job BuildJob BuildJob BuildJob MySQL0 码力 | 21 页 | 6.39 MB | 1 年前3
基于Kubernetes构建容器云平台的实践
- UCloud优刻得实验室负责⼈ 叶理灯StatefulSet 还为每⼀一个 Pod 分配并创建⼀一个同样编号的 PVC, 保 证了了每⼀一个 Pod 都拥有⼀一个独⽴立的 Volume Operator • ⾸首先在k8s中注册CRD • Operator 于 API server 交互,Watch 全部的 Namespace 或者特 定Namespace中对CR的创建、更更新、删除事件 • Operator 处理理这些事件,可以使⽤用 Operator⼯工作原理理 Operator Kubernetes API Server Informer Delete Update Add cr cr cr List Watch CRD Manage Think in Cloud . 北北京 KUN中使⽤用Operator • Operator Server • redis-operator(⾃自研,考虑开源) Operator管理理有状态的服务 Update Get Delete Operator Server 为⽤用户提供可视化 Web 操作⻚页⾯面,简化对各类⾃自 定义资源的管理理操作。 ⽤用户不不需要详细理理解具体的 CRD 结构,就可以在 Web ⻚页⾯面上快速 创建⼀一个 Redis 集群,并且可以看到集群⼀一步步创建的过程。同时 还可以对集群进⾏行行配置更更新、删除等操作。 Operator Server0 码力 | 30 页 | 3.52 MB | 1 年前3
01. K8s扩展功能解析Container runtime interface (CRI) enhancements © 2017 Rancher Labs, Inc. CustomResourceDefinition(CRD) • What CRD provides • Very flexible way to extend managed resource into a current Kubernetes cluster comes from • From ThirdPartyResource in Kubernetes 1.6 • Create CRD with spec in Kubernetes 1.7 © 2017 Rancher Labs, Inc. Example of CRD and Resource Item my-crontab.yaml © 2017 Rancher Labs, Inc.0 码力 | 12 页 | 1.08 MB | 1 年前3
Operator Pattern 用 Go 扩展 Kubernetes 的最佳实践回到初(qi)心(dian) KubeBlocks Maintainer & 研发总监 free6om 什么是 Operator 第一部分 Operator 前世今生 TPR Operator CRD Operator Pattern 2015.11 2016.12 2017.12 Now K8s 1.1 版本中正式推出 TPR (ThirdPartyResource),首次尝 试解决 K8s 版本发布,CRD进入 beta 阶段并正式取代 TPR; controller-runtime 加入 K8s 社 区并正式发布; 自此,CRD + controller-runtime 逐渐成为开发 operator 的首选 Operator Pattern 是官方定义的标准扩 展机制,是 K8s Native Application; Operator = CRD + control0 码力 | 21 页 | 3.06 MB | 9 月前3
基于 Kubernetes 构建标准可扩展的云原生应用管理平台-孙健波、周正喜route $ rio up riofile 抽象程度 vs 可扩展性 • 随着抽象程度的增高可以显著降低学习曲线,但是却不得不在扩展性上妥协 抽象程度 可扩展性 高 低 低 高 CRD + Controllers = Everything 通过编写遵循严格限制 的 Buildpack 和 Addon 进行扩展 没有直接扩展 工作负载 和 运维能力 的途径 通过 annotations Kubernetes Cert Manager Ingress Let’s Encrypt Flagger Virtual Service Manual Scaling App CRD HPA Knative Service Cert Canary AutoScaler AutoScaling Route Job Deployment 缺乏交互、复用、可移植能 统一、标准化的应用管理平台? 简单的“客户端”抽象: DCL (Data Configuration Language) 对 K8s 资源进行抽象实际上就是在操纵 YAML 数据,通过 DCL 来完成相比于 CRD + controller 更简单 CUE • 功能强大:专注于操纵数据,而不是写 代码 • 完全兼容 JSON • 简单直观:schema 和 value 语法一致 完整的 k8s YAML0 码力 | 27 页 | 3.60 MB | 9 月前3
K8S安装部署开放服务G. 部署 traefik See https://cloud.tencent.com/developer/article/1636080 Step1: 创建 crd vi 1-crd.yaml ## IngressRoute apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition IngressRouteUDP plural: ingressrouteudps singular: ingressrouteudp kubectl apply -f 1-crd.yaml Step2: 创建 RBAC 权限 vi 2-rbac.yaml apiVersion: v1 kind: ServiceAccount metadata:0 码力 | 54 页 | 1.23 MB | 1 年前3
运维上海2017-分布式数据库系统TiDB在Kubernetes平台的自动化运维实践-邓栓kubectl get replicasets! ! * kubectl get pods! k8s ����! Kubernetes Operator ��! • �������(TPR/CRD)! • �� k8s controller�����������! • ������upgrade, scale, failover, backup! • ��������! ���������������� tidb-controller-manager! • tidb-scheduler! • tidb-volume-manager! tidb-controller- manager! • �� k8s ���� CRD: TidbCluster, TidbSet! • �� TiDB ����� Controller: ! * tidbcluster-controller! * pd-controller! *0 码力 | 32 页 | 3.47 MB | 1 年前3
Node Operator: Kubernetes Node Management Made Simpleresource to final state continually • kube-apiserver oriented programming • CustomResourceDefinition (CRD) • Built on Kubernetes APIs • Kubernetes repo support • Agile, flexible and convenient Node-Operator: and Node state, manage Node softwares and configure files. • Machine: the instance of Machine CRD with node basic information, which represent a node desired in the Kubernetes. • NPD(Node Problem0 码力 | 18 页 | 11.70 MB | 1 年前3
sealos 以 kubernetes 为内核的云操作系统装其它应用 增删集群节点 离线交付 sealos build 轻量级负载均衡器 完全取代 Haproxy Keepalived 支撑超大规模 完全横向扩展 Sealos 绝大多数能力通过 CRD 扩展,以保持与 kubernetes API 完全兼容。 可以复用 k8s API 的强大能力, 而且生态的各种 SDK 可以直 接使用。 推荐使用 kubebuilder 框架去生 成很多代码。 原因 编程语言 Golang/typescripts Kubernetes go 生态最为成熟,ts 主要前端 框架 Kubebuiler/react/nextjs/go-restful/ 开发CRD 最好框架,follow k8s 技术栈 计算 Containerd/cloud hypervisor/firecracker 短链路/强隔离/高安全性 存储 Openebs/sealfs 块隔离同时享有本地存储性能0 码力 | 29 页 | 7.64 MB | 9 月前3
共 18 条
- 1
- 2













