用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
虚拟化.超融合.云计算
›
虚拟化与私有云
›
云计算-云原生OAM概念
云计算-云原生OAM概念
大号在练葵花宝典
论坛元老
|
2024-7-24 11:09:37
|
显示全部楼层
|
阅读模式
楼主
主题
1526
|
帖子
1526
|
积分
4578
OAM
OAM,open application model是阿里巴巴和微软共同开辟的云原生应用规范模型。它使用来办理一个完备的面向业务场景的应用的题目。是一个尺度的、底子设施 无关的跨云应用摆设模型。有以下几个特性:
应用为先。一个应用的交付与摆设应该是自包罗的,其中的各类操作行为应该作为应用界说的一部分,这些内容与实际底子设施无关。
清晰和可扩展性。界说一套开放尺度,可以模块化整个应用交付流程,根据个 人需要将这些模块自由组装,告竣自己想要的结果。
云服务供应商无关。界说的开放尺度应该是一套更高级别的抽象,可以跨本地 集群、跨云服务供应商,不会被锁定到任何一个厂商的底座
OAM规范依照以下原则
关注点分离:根据功能和行为来界说模型,以此分别差别脚色的职责,
平台中立:OAM 的实现不绑定到特定平台;
优雅:只管减少设计复杂性;
复用性:可移植性好,同一个应用程序可以在差别的平台上不加改动地执行;
不作为编程模型:OAM 提供的是应用程序模型,描述了应用程序的组成和组件的拓扑布局,而不关注应用程序的具体实现。
OAM的基本对象
Component:OAM 中最底子的对象,该配置与底子设施无关,界说负载实例的
运维
特性。比方一个微服务 workload 的界说。
TraitDefinition:一个组件所需的
运维
计谋与配置,比方环境变量、Ingress、AutoScaler、Volume 等。(注意:该对象在 apiVersion: core.oam.dev/v1alpha1 中的名称为 Trait)。
ScopeDefinition:多个 Component 的共同边界。可以根据组件的特性大概作用域来分别 Scope,一个 Component 大概同时属于多个 Scope。
ApplicationConfiguration:将 Component(必须)、Trait(必须)、Scope(非必须)等组合到一起形成一个完备的应用配置。
OAM的工作原理
OAM Spec 界说了云原生应用的规范(使用一些 CRD 界说), KubeVela 可以看做是 OAM 规范的剖析器,将应用界说翻译为 Kubernetes 中的资源对象。可以将上图分为三个条理:
汇编层:即人工大概使用工具来根据 OAM 规范界说汇编出一个云原生应用的界说,其中包罗了该应用的工作负载和
运维
本领配置。
转义层:汇编好的文件将打包为 YAML 文件,由 KubeVela 或其他 OAM 的实现将其转义为 Kubernetes 或其他云服务(比方 Istio)上可运行的资源对象。
执行层:执行颠末转义好的云平台上的资源对象并执行资源配置。
参考管官网
OAM 官方网站 - oam.dev
kubevela
OAM应用,主要通过kubevela项目来实现
kubevela项目地点 模块界说(Definition) | KubeVela
核心概念
KubeVela 是一个开箱即用的现代化应用交付与管理平台,它使得应用在面向混淆云环境中的交付更简单、快捷。使用 KubeVela 的软件开辟团队,可以按需使用云原生本领构建应用,随着团队规模的发展、业务场景的变化扩展其功能,一次构建应用,随处运行。
KubeVela 的核心是将应用摆设所需的所有组件和各项
运维
动作,描述为一个同一的、与底子设施无关的“摆设操持”,进而实现在混淆环境中尺度化和高服从的应用交付。这使得最终用户无需关注底层细节,就可以使用丰富的扩展本领,并基于同一的概念自助式操作。
每一个应用摆设操持都由四个部分组成,分别是组件,
运维
本领,摆设计谋和工作流
登录后复制
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: <name>
spec:
components:
- name: <component name>
type: <component type>
properties:
<parameter values>
traits:
- type: <trait type>
properties:
<traits parameter values>
- name: <component name>
type: <component type>
properties:
<parameter values>
policies:
- name: <policy name>
type: <policy type>
properties:
<policy parameter values>
workflow:
- name: <step name>
type: <step type>
properties:
<step parameter values>
复制代码
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
这个 Application 对象会引用 component、trait、policy 以及 workflow step 的范例,这些范例背后是平台构建者(
运维
团队)维护的可编程模块。可以看到,这种抽象的方式是高度可扩展、可定制的。
组件(Component)
: 组件界说一个应用包罗的待交付制品(二进制、Docker 镜像、Helm Chart...)或云服务。我们认为一个应用摆设操持摆设的是一个微服务单元,内里主要包罗一个核心的用于频繁迭代的服务,以及一组服务所依靠的中间件集合(包罗数据库、缓存、云服务等),一个应用中包罗的组件数量应该控制在约 15 个以内。
运维
特征(Trait)
:
运维
特征是可以随时绑定给待摆设组件的、模块化、可拔插的
运维
本领,比如:副本数调解(手动、自动)、数据持久化、 设置网关计谋、自动设置 DNS 剖析等。
应用计谋(Policy)
: 应用计谋负责界说指定应用交付过程中的计谋,比如多集群摆设的差异化配置、资源放置计谋、安全组计谋、防火墙规则、SLO 目标等。
工作流步骤(Workflow Step)
: 工作流由多个步骤组成,允许用户自界说应用在某个环境的交付过程。典型的工作流步骤包括人工考核、数据传递、多集群发布、通知等。
基于k8s安装
要求,
Kubernetes cluster >= v1.19 && <= v1.26
登录后复制
curl-fsSl https://kubevela.io/script/install.sh | bash
vela install
复制代码
1.
2.
VelaUX 是 KubeVela 的仪表板。 它是在你的集群中运行的 Web 应用程序。 你可以使用浏览器访问它。 假如你不使用 KubeVela 的 UI 控制台,这是可选的
摆设应用
在k8s上摆设应用举例
登录后复制
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: app-with-k8s-objects
namespace: default
spec:
components:
- name: k8s-demo-service
properties:
objects:
- apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
strategy:
type: Recreate
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx
name: nginx
ports:
- containerPort: 80
- apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: nlb
labels:
app: nginx
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
type: k8s-objects
policies:
- name: topology-default
type: topology
properties:
clusters: ['local']
namespace: default
- name: topology-production
type: topology
properties:
clusters: ['local']
namespace: production
workflow:
steps:
- name: deploy2default
properties:
policies: ['topology-default']
type: deploy
- name: suspend
type: suspend
- name: deploy2production
properties:
policies: ['topology-production']
type: deploy
复制代码
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
登录后复制
#部署应用
$ vela up -f https://kubevela.io/example/applications/app-with-k8s-objects.yaml
#执行审核
$ vela workflow resume app-with-k8s-objects
复制代码
1.
2.
3.
4.
5.
这里没有使用 velaux 插件,而是是在贸易k8s平台上可以更加简洁直观的看到OAM状态
总结
OAM是一种全新的K8S业务交付方式,但是目前还不上主流,目前应用的不多
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
大号在练葵花宝典
论坛元老
这个人很懒什么都没写!
楼主热帖
记一次MySql唯一索引在left join连表查 ...
鸿蒙系统架构分析
2021年高教杯数学建模国赛C题的解题过 ...
C# 使用dataGridView导入导出excel(NPO ...
STM32F1与STM32CubeIDE编程实例-磁簧开 ...
【大话云原生】微服务篇-五星级酒店的 ...
MySQL实战45讲 3
springboot请求参数的方法分享 ...
渗透测试过程参考
GO实现Redis:GO实现内存数据库(3) ...
标签云
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表