初试 kubevela
开放(Open):支持异构的平台、容器运行时、调度系统、云供应商、硬件配置等,总之与底层无关 应用(Application):云原生应用 模型(Model):定义标准,以使其与底层平台无关
第一个核心理念是组成应用程序的组件(Component),它可能包含微服务集合、数据库和云负载均衡器; 第二个核心理念是描述应用程序运维特征(Trait)的集合,例如,弹性伸缩和 Ingress 等功能。它们对应用程序的运行至关重要,但在不同环境中其实现方式各不相同; 最后,为了将这些描述转化为具体的应用程序,运维人员使用应用配置(Application Configuration)来组合组件和相应的特征,以构建应部署的应用程序的具体实例
以应用为中心。在Appfile的后面,KubeVela实施了一个应用程序概念,因为它的主要API和ALL KubeVela的功能仅满足应用程序的需求。这是通过采用开放应用程序模型作为KubeVela的核心API来实现的。 本地扩展。KubeVela中的应用程序由各种可插拔工作负载类型和操作功能(即特征)组成。Kubernetes生态系统的功能可以随时通过Kubernetes CRD注册机制作为新的工作负载类型或特征添加到KubeVela中。 简单但可扩展的抽象机制。KubeVela的主要用户界面(即Appfile和CLI)使用基于CUELang的抽象引擎构建,该引擎将面向用户的模式转换为下划线的Kubernetes资源。KubeVela提供了一组内置的抽象对象,平台构建者可以随时随意对其进行修改。抽象更改将在运行时生效,无需重新编译或重新部署KubeVela。
架构
概念和术语
application
,service
,workload type
,trait
,他们之间的关系如下图:workload type
,trait
)。service是KubeVela中基本可部署单元的描述符Appfile
(vela.yaml
默认命名)定义。安装
Kubernetes集群> = v1.15.0 安装并配置了kubectl
下载kubevela
1 | curl -fsSl https://kubevela.io/install.sh | bash |
vela
从发行页面下载最新的二进制文件。解压缩 vela
二进制文件并将其添加$PATH
到入门中。
1 | $ sudo mv ./vela /usr/local/bin/vela |
初始化kubevela
vela install
安装KubeVela服务器组件及其依赖组件。Prometheus Stack Cert-manager Flagger KEDA
1 | [root@master-01 kubevela]# vela install |
卸载
1 | $ helm uninstall -n vela-system kubevela |
1 | $ kubectl delete crd \ |
使用vela 部署一个服务
1 | $ git clone https://github.com/oam-dev/kubevela.git |
image: misterli/testapp:v1
用户替换为自己用户,以便进行推送。1 | [root@master-01 testapp]# ls |
部署
1 | [root@master-01 testapp]# vela up |
vela up
之后,先进行了docker镜像的build push 操作,然后根据vela.yaml文件内容生成.vela/deploy.yaml文件然后进行apply操作,我们查看一下.vela/deploy.yaml文件内容:1 | [root@master-01 testapp]# cat .vela/deploy.yaml |
我们修改vela.yaml文件中,取消如下注释并修改为2
1 | scaler: |
我们在执行vela up ,pod的副本数将变为2个
1 | [root@master-01 rabbitmq]# kubectl get pod |
vela delete APP_NAME
1 | #错误的删除方式 |
评论