mirror of
https://github.com/kubevela/kubevela.git
synced 2026-05-17 14:57:12 +00:00
184 lines
9.1 KiB
Markdown
184 lines
9.1 KiB
Markdown
---
|
|
title: Explore Applications
|
|
---
|
|
|
|
We will introduce how to explore application related resources in this section.
|
|
|
|
## List Application
|
|
|
|
```shell
|
|
$ kubectl get application
|
|
NAME COMPONENT TYPE PHASE HEALTHY STATUS AGE
|
|
app-basic app-basic webservice running true 12d
|
|
website frontend webservice running true 4m54s
|
|
```
|
|
|
|
You can also use the short name `kubectl get app`.
|
|
|
|
### View Application Details
|
|
|
|
```shell
|
|
$ kubectl get app website -o yaml
|
|
apiVersion: core.oam.dev/v1beta1
|
|
kind: Application
|
|
metadata:
|
|
generation: 1
|
|
name: website
|
|
namespace: default
|
|
spec:
|
|
components:
|
|
- name: frontend
|
|
properties:
|
|
image: nginx
|
|
traits:
|
|
- properties:
|
|
cpuPercent: 60
|
|
max: 10
|
|
min: 1
|
|
type: cpuscaler
|
|
- properties:
|
|
image: fluentd
|
|
name: sidecar-test
|
|
type: sidecar
|
|
type: webservice
|
|
- name: backend
|
|
properties:
|
|
cmd:
|
|
- sleep
|
|
- "1000"
|
|
image: busybox
|
|
type: worker
|
|
status:
|
|
...
|
|
latestRevision:
|
|
name: website-v1
|
|
revision: 1
|
|
revisionHash: e9e062e2cddfe5fb
|
|
services:
|
|
- healthy: true
|
|
name: frontend
|
|
traits:
|
|
- healthy: true
|
|
type: cpuscaler
|
|
- healthy: true
|
|
type: sidecar
|
|
- healthy: true
|
|
name: backend
|
|
status: running
|
|
```
|
|
|
|
Here are some highlight information that you need to know:
|
|
|
|
1. `status.latestRevision` declares current revision of this application.
|
|
2. `status.services` declares the component created by this application and the healthy state.
|
|
3. `status.status` declares the global state of this application.
|
|
|
|
### List Application Revisions
|
|
|
|
When we update an application, if there's any difference on spec, KubeVela will create a new revision.
|
|
|
|
```shell
|
|
$ kubectl get apprev -l app.oam.dev/name=website
|
|
NAME AGE
|
|
website-v1 35m
|
|
```
|
|
|
|
## Explore Components
|
|
|
|
You can explore what kinds of component definitions supported in your system.
|
|
|
|
```shell
|
|
kubectl get comp -n vela-system
|
|
NAME WORKLOAD-KIND DESCRIPTION
|
|
task Job Describes jobs that run code or a script to completion.
|
|
webservice Deployment Describes long-running, scalable, containerized services that have a stable network endpoint to receive external network traffic from customers.
|
|
worker Deployment Describes long-running, scalable, containerized services that running at backend. They do NOT have network endpoint to receive external network traffic.
|
|
```
|
|
|
|
The component definition objects are namespace isolated align with application, while the `vela-system` is a common system namespace of KubeVela,
|
|
definitions laid here can be used by every application.
|
|
|
|
You can use [vela kubectl plugin](./kubectlplugin) to view the detail usage of specific component definition.
|
|
|
|
```shell
|
|
$ kubectl vela show webservice
|
|
# Properties
|
|
+------------------+----------------------------------------------------------------------------------+-----------------------+----------+---------+
|
|
| NAME | DESCRIPTION | TYPE | REQUIRED | DEFAULT |
|
|
+------------------+----------------------------------------------------------------------------------+-----------------------+----------+---------+
|
|
| cmd | Commands to run in the container | []string | false | |
|
|
| env | Define arguments by using environment variables | [[]env](#env) | false | |
|
|
| addRevisionLabel | | bool | true | false |
|
|
| image | Which image would you like to use for your service | string | true | |
|
|
| port | Which port do you want customer traffic sent to | int | true | 80 |
|
|
| cpu | Number of CPU units for the service, like `0.5` (0.5 CPU core), `1` (1 CPU core) | string | false | |
|
|
| volumes | Declare volumes and volumeMounts | [[]volumes](#volumes) | false | |
|
|
+------------------+----------------------------------------------------------------------------------+-----------------------+----------+---------+
|
|
|
|
|
|
##### volumes
|
|
+-----------+---------------------------------------------------------------------+--------+----------+---------+
|
|
| NAME | DESCRIPTION | TYPE | REQUIRED | DEFAULT |
|
|
+-----------+---------------------------------------------------------------------+--------+----------+---------+
|
|
| name | | string | true | |
|
|
| mountPath | | string | true | |
|
|
| type | Specify volume type, options: "pvc","configMap","secret","emptyDir" | string | true | |
|
|
+-----------+---------------------------------------------------------------------+--------+----------+---------+
|
|
|
|
|
|
## env
|
|
+-----------+-----------------------------------------------------------+-------------------------+----------+---------+
|
|
| NAME | DESCRIPTION | TYPE | REQUIRED | DEFAULT |
|
|
+-----------+-----------------------------------------------------------+-------------------------+----------+---------+
|
|
| name | Environment variable name | string | true | |
|
|
| value | The value of the environment variable | string | false | |
|
|
| valueFrom | Specifies a source the value of this var should come from | [valueFrom](#valueFrom) | false | |
|
|
+-----------+-----------------------------------------------------------+-------------------------+----------+---------+
|
|
|
|
|
|
### valueFrom
|
|
+--------------+--------------------------------------------------+-------------------------------+----------+---------+
|
|
| NAME | DESCRIPTION | TYPE | REQUIRED | DEFAULT |
|
|
+--------------+--------------------------------------------------+-------------------------------+----------+---------+
|
|
| secretKeyRef | Selects a key of a secret in the pod's namespace | [secretKeyRef](#secretKeyRef) | true | |
|
|
+--------------+--------------------------------------------------+-------------------------------+----------+---------+
|
|
|
|
|
|
#### secretKeyRef
|
|
+------+------------------------------------------------------------------+--------+----------+---------+
|
|
| NAME | DESCRIPTION | TYPE | REQUIRED | DEFAULT |
|
|
+------+------------------------------------------------------------------+--------+----------+---------+
|
|
| name | The name of the secret in the pod's namespace to select from | string | true | |
|
|
| key | The key of the secret to select from. Must be a valid secret key | string | true | |
|
|
+------+------------------------------------------------------------------+--------+----------+---------+
|
|
```
|
|
|
|
## Explore Traits
|
|
|
|
You can explore what kinds of trait definitions supported in your system.
|
|
|
|
```shell
|
|
$ kubectl get trait -n vela-system
|
|
NAME APPLIES-TO DESCRIPTION
|
|
cpuscaler [webservice worker] configure k8s HPA with CPU metrics for Deployment
|
|
ingress [webservice worker] Configures K8s ingress and service to enable web traffic for your service. Please use route trait in cap center for advanced usage.
|
|
scaler [webservice worker] Configures replicas for your service.
|
|
sidecar [webservice worker] inject a sidecar container into your app
|
|
```
|
|
|
|
The trait definition objects are namespace isolated align with application, while the `vela-system` is a common system namespace of KubeVela,
|
|
definitions laid here can be used by every application.
|
|
|
|
You can use `kubectl vela show` to see the usage of specific trait definition.
|
|
|
|
```shell
|
|
$ kubectl vela show sidecar
|
|
# Properties
|
|
+---------+-----------------------------------------+----------+----------+---------+
|
|
| NAME | DESCRIPTION | TYPE | REQUIRED | DEFAULT |
|
|
+---------+-----------------------------------------+----------+----------+---------+
|
|
| name | Specify the name of sidecar container | string | true | |
|
|
| image | Specify the image of sidecar container | string | true | |
|
|
| command | Specify the commands run in the sidecar | []string | false | |
|
|
+---------+-----------------------------------------+----------+----------+---------+
|
|
``` |