ToB企服应用市场:ToB评测及商务社交产业平台

标题: 云计算-云原生OAM概念 [打印本页]

作者: 大号在练葵花宝典    时间: 2024-7-24 11:09
标题: 云计算-云原生OAM概念
OAM

     OAM,open application model是阿里巴巴和微软共同开辟的云原生应用规范模型。它使用来办理一个完备的面向业务场景的应用的题目。是一个尺度的、底子设施 无关的跨云应用摆设模型。有以下几个特性:
     
     OAM规范依照以下原则
     
     

     OAM的基本对象

     
     

     OAM的工作原理

     

     OAM Spec 界说了云原生应用的规范(使用一些 CRD 界说), KubeVela 可以看做是 OAM 规范的剖析器,将应用界说翻译为 Kubernetes 中的资源对象。可以将上图分为三个条理:
     
     参考管官网
     
     kubevela

     OAM应用,主要通过kubevela项目来实现
     kubevela项目地点  模块界说(Definition) | KubeVela
     核心概念

     KubeVela 是一个开箱即用的现代化应用交付与管理平台,它使得应用在面向混淆云环境中的交付更简单、快捷。使用 KubeVela 的软件开辟团队,可以按需使用云原生本领构建应用,随着团队规模的发展、业务场景的变化扩展其功能,一次构建应用,随处运行。
     

     KubeVela 的核心是将应用摆设所需的所有组件和各项运维动作,描述为一个同一的、与底子设施无关的“摆设操持”,进而实现在混淆环境中尺度化和高服从的应用交付。这使得最终用户无需关注底层细节,就可以使用丰富的扩展本领,并基于同一的概念自助式操作。
     

     每一个应用摆设操持都由四个部分组成,分别是组件,运维本领,摆设计谋和工作流
                                   登录后复制                        
  1. apiVersion: core.oam.dev/v1beta1
  2. kind: Application
  3. metadata:
  4.   name: <name>
  5. spec:
  6.   components:
  7.     - name: <component name>
  8.       type: <component type>
  9.       properties:
  10.         <parameter values>
  11.       traits:
  12.         - type: <trait type>
  13.           properties:
  14.             <traits parameter values>
  15.     - name: <component name>
  16.       type: <component type>
  17.       properties:
  18.         <parameter values>
  19.   policies:
  20.   - name: <policy name>
  21.     type: <policy type>
  22.     properties:
  23.       <policy parameter values>
  24.   workflow:
  25.     - name: <step name>
  26.       type: <step type>
  27.       properties:
  28.         <step parameter values>   
复制代码
      
                       这个 Application 对象会引用 component、trait、policy 以及 workflow step 的范例,这些范例背后是平台构建者(运维团队)维护的可编程模块。可以看到,这种抽象的方式是高度可扩展、可定制的。
     
     

     基于k8s安装

     要求,
     
                                   登录后复制                        
  1. curl-fsSl https://kubevela.io/script/install.sh | bash
  2. vela install
复制代码
      
                       VelaUX 是 KubeVela 的仪表板。 它是在你的集群中运行的 Web 应用程序。 你可以使用浏览器访问它。 假如你不使用 KubeVela 的 UI 控制台,这是可选的
     摆设应用

     在k8s上摆设应用举例
                                   登录后复制                        
  1. apiVersion: core.oam.dev/v1beta1
  2. kind: Application
  3. metadata:
  4.   name: app-with-k8s-objects
  5.   namespace: default
  6. spec:
  7.   components:
  8.     - name: k8s-demo-service
  9.       properties:
  10.         objects:
  11.           - apiVersion: apps/v1
  12.             kind: Deployment
  13.             metadata:
  14.               name: nginx
  15.             spec:
  16.               replicas: 2
  17.               selector:
  18.                 matchLabels:
  19.                   app: nginx
  20.               strategy:
  21.                 type: Recreate
  22.               template:
  23.                 metadata:
  24.                   labels:
  25.                     app: nginx
  26.                 spec:
  27.                   containers:
  28.                     - image: nginx
  29.                       name: nginx
  30.                       ports:
  31.                         - containerPort: 80
  32.           - apiVersion: v1
  33.             kind: Service
  34.             metadata:
  35.               annotations:
  36.                 service.beta.kubernetes.io/aws-load-balancer-type: nlb
  37.               labels:
  38.                 app: nginx
  39.               name: nginx
  40.               namespace: default
  41.             spec:
  42.               externalTrafficPolicy: Local
  43.               ports:
  44.                 - name: http
  45.                   port: 80
  46.                   protocol: TCP
  47.                   targetPort: 80
  48.               selector:
  49.                 app: nginx
  50.               type: LoadBalancer
  51.       type: k8s-objects
  52.   policies:
  53.     - name: topology-default
  54.       type: topology
  55.       properties:
  56.         clusters: ['local']
  57.         namespace: default
  58.     - name: topology-production
  59.       type: topology
  60.       properties:
  61.         clusters: ['local']
  62.         namespace: production
  63.   workflow:
  64.     steps:
  65.       - name: deploy2default
  66.         properties:
  67.           policies: ['topology-default']
  68.         type: deploy
  69.       - name: suspend
  70.         type: suspend
  71.       - name: deploy2production
  72.         properties:
  73.           policies: ['topology-production']
  74.         type: deploy
复制代码
      
                                                     登录后复制                        
  1. #部署应用
  2. $ vela up -f https://kubevela.io/example/applications/app-with-k8s-objects.yaml
  3. #执行审核
  4. $ vela workflow resume app-with-k8s-objects
复制代码
      
                       这里没有使用 velaux 插件,而是是在贸易k8s平台上可以更加简洁直观的看到OAM状态
     

     

     

     总结

     OAM是一种全新的K8S业务交付方式,但是目前还不上主流,目前应用的不多

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4