Skip to main content
Version: v1.2

Installation

For upgrading existing KubeVela, please read the upgrade guide.

1. Choose Control Plane Cluster

Requirements:

  • Kubernetes cluster >= v1.19 && <= v1.22
  • Kubectl

KubeVela relies on Kubernetes as a control plane. The control plane could be any managed Kubernetes offering or your cluster.

For local deployment and test, you could use kind or minikube.

For production usage, you could use your Kubernetes cluster or Kubernetes services provided by cloud providers. For offline installation, please refer to KubeVela Offline Installation Guide.

Kind is NOT RECOMMENDED for production.

Follow this guide to install kind.

Then spins up a kind cluster:

cat <<EOF | kind create cluster --image=kindest/node:v1.20.7 --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
kubeadmConfigPatches:
- |
kind: InitConfiguration
nodeRegistration:
kubeletExtraArgs:
node-labels: "ingress-ready=true"
extraPortMappings:
- containerPort: 80
hostPort: 80
protocol: TCP
- containerPort: 443
hostPort: 443
protocol: TCP
EOF

Install ingress controller to enable service route:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/kind/deploy.yaml

2. Install KubeVela CLI

KubeVela CLI provides an easy to engage and manage your application delivery in command lines.

MacOS/Linux

curl -fsSl https://kubevela.io/script/install.sh | bash -s 1.2.4

Windows

Only the official release version is supported.

powershell -Command "iwr -useb https://kubevela.io/script/install.ps1 | iex"

2. Install KubeVela Core

The version of vela CLI >= 1.2.3.

vela install
check out the outcome
...
Watching for changes to Job kubevela-vela-core-cluster-gateway-tls-secret-patch with timeout of 18m0s
Add/Modify event for kubevela-vela-core-cluster-gateway-tls-secret-patch: ADDED
kubevela-vela-core-cluster-gateway-tls-secret-patch: Jobs active: 0, jobs failed: 0, jobs succeeded: 0
Add/Modify event for kubevela-vela-core-cluster-gateway-tls-secret-patch: MODIFIED
kubevela-vela-core-cluster-gateway-tls-secret-patch: Jobs active: 1, jobs failed: 0, jobs succeeded: 0
Add/Modify event for kubevela-vela-core-cluster-gateway-tls-secret-patch: MODIFIED
kubevela-vela-core-cluster-gateway-tls-secret-patch: Jobs active: 1, jobs failed: 0, jobs succeeded: 0
Add/Modify event for kubevela-vela-core-cluster-gateway-tls-secret-patch: MODIFIED
Starting delete for "kubevela-vela-core-admission" ServiceAccount
Starting delete for "kubevela-vela-core-admission" ClusterRole
Starting delete for "kubevela-vela-core-admission" ClusterRoleBinding
Starting delete for "kubevela-vela-core-admission" Role
Starting delete for "kubevela-vela-core-admission" RoleBinding
Starting delete for "kubevela-vela-core-admission-patch" Job
Starting delete for "kubevela-vela-core-cluster-gateway-admission" ServiceAccount
Starting delete for "kubevela-vela-core-cluster-gateway-admission" Role
Starting delete for "kubevela-vela-core-cluster-gateway-admission" RoleBinding
Starting delete for "kubevela-vela-core-cluster-gateway-tls-secret-patch" Job

KubeVela control plane has been successfully set up on your cluster.
If you want to enable dashboard, please run "vela addon enable velaux"

4. Install VelaUX

VelaUX is a dashboard including UI+API services, it enables you to do everything around application delivery and management.

vela addon enable velaux

expected output:

Addon: velaux enabled Successfully.

By default, velaux didn't have any exposed port, you can view it by:

vela port-forward addon-velaux -n vela-system

Choose > Cluster: local | Namespace: vela-system | Component: velaux | Kind: Service for visit.

If you have loadbalaner or ingress, please refer to VelaUX addon docs for more advanced installation ways.

5. Uninstall

Before uninstalling kubevela, you must delete all applications and disable all addons.

  1. Uninstall VelaUX
vela addon disable velaux
  1. Uninstall KubeVela Core
vela uninstall
  1. Uninstall CRD

Before deleting, you must delete all CR resources.

kubectl get crd |grep oam | awk '{print $1}' | xargs kubectl delete crd

Next Step