Version: v1.2
资源模板
KubeVela 可以以资源模板的方式直接部署任何 Kubernetes 对象。
如何使用
比如一个 Job。
apiVersion: core.oam.dev/v1beta1kind: Applicationmetadata:name: app-rawspec:components:- name: myjobtype: k8s-objectsproperties:objects:- apiVersion: batch/v1kind: Jobmetadata:name: pispec:template:spec:containers:- name: piimage: perlcommand: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]restartPolicy: NeverbackoffLimit: 4
也支持多个资源,但是要把你的主要工作负载放在第一个,KubeVela 的 traits 只会对第一个位置的 Kubernetes 对象生效。
apiVersion: core.oam.dev/v1beta1kind: Applicationmetadata:name: app-stateful-servicespec:components:- name: my-ststype: k8s-objectsproperties:objects:- apiVersion: apps/v1kind: StatefulSetmetadata:name: webspec:selector:matchLabels:app: nginx # has to match .spec.template.metadata.labelsserviceName: "nginx"replicas: 3 # by default is 1template:metadata:labels:app: nginx # has to match .spec.selector.matchLabelsspec:terminationGracePeriodSeconds: 10containers:- name: nginximage: k8s.gcr.io/nginx-slim:0.8ports:- containerPort: 80name: webvolumeMounts:- name: wwwmountPath: /usr/share/nginx/htmlvolumeClaimTemplates:- metadata:name: wwwspec:accessModes: [ "ReadWriteOnce" ]storageClassName: "my-storage-class"resources:requests:storage: 1Gi- apiVersion: v1kind: Servicemetadata:name: nginxlabels:app: nginxspec:ports:- port: 80name: webclusterIP: Noneselector:app: nginx
属性说明
| 字段名称 | 描述 | 类型 | 是否必填 | 默认值 |
|---|---|---|---|---|
| objects | Kubernetes 资源列表 | []K8s-Object | true |
K8s-Object
列表中的元素为完整的 Kubernetes 资源结构体。