Version: v1.0

Installation

For upgrading existing KubeVela, please read the upgrade guide.

1. Choose Control Plane Cluster

Requirements:

  • Kubernetes cluster >= v1.15.0
  • kubectl installed and configured

KubeVela relies on Kubernetes as control plane. The control plane could be any managed Kubernetes offering or your own cluster. The only requirement is please ensure ingress-nginx is installed and enabled.

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

  • Minikube
  • Kind

Follow the minikube installation guide.

Then spins up a minikube cluster

  1. minikube start

Install ingress:

  1. minikube addons enable ingress

Follow this guide to install kind.

Then spins up a kind cluster:

  1. cat <<EOF | kind create cluster --image=kindest/node:v1.18.15 --config=-
  2. kind: Cluster
  3. apiVersion: kind.x-k8s.io/v1alpha4
  4. nodes:
  5. - role: control-plane
  6. kubeadmConfigPatches:
  7. - |
  8. kind: InitConfiguration
  9. nodeRegistration:
  10. kubeletExtraArgs:
  11. node-labels: "ingress-ready=true"
  12. extraPortMappings:
  13. - containerPort: 80
  14. hostPort: 80
  15. protocol: TCP
  16. - containerPort: 443
  17. hostPort: 443
  18. protocol: TCP
  19. EOF

Then install ingress for kind:

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

2. Install KubeVela

  1. Add helm chart repo for KubeVela

    1. helm repo add kubevela https://kubevelacharts.oss-accelerate.aliyuncs.com/core
  2. Update the chart repo

    1. helm repo update
  3. Install KubeVela

    1. helm install --create-namespace -n vela-system kubevela kubevela/vela-core

    By default, it will enable the webhook with a self-signed certificate provided by kube-webhook-certgen. You can also install it with cert-manager.

  4. Verify chart installed successfully

    1. helm test kubevela -n vela-system

    Click to see the expected output of helm test

    1. Pod kubevela-application-test pending
    2. Pod kubevela-application-test pending
    3. Pod kubevela-application-test running
    4. Pod kubevela-application-test succeeded
    5. NAME: kubevela
    6. LAST DEPLOYED: Tue Apr 13 18:42:20 2021
    7. NAMESPACE: vela-system
    8. STATUS: deployed
    9. REVISION: 1
    10. TEST SUITE: kubevela-application-test
    11. Last Started: Fri Apr 16 20:49:10 2021
    12. Last Completed: Fri Apr 16 20:50:04 2021
    13. Phase: Succeeded
    14. TEST SUITE: first-vela-app
    15. Last Started: Fri Apr 16 20:49:10 2021
    16. Last Completed: Fri Apr 16 20:49:10 2021
    17. Phase: Succeeded
    18. NOTES:
    19. Welcome to use the KubeVela! Enjoy your shipping application journey!

3. Get KubeVela CLI

KubeVela CLI gives you a simplified workflow to manage applications with optimized output. It is not mandatory though.

KubeVela CLI could be installed as kubectl plugin, or install as standalone binary.

  • Script
  • Homebrew
  • Download directly from releases

macOS/Linux

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

Windows

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

macOS/Linux

Update your brew firstly.

  1. brew update

Then install kubevela client.

  1. brew install kubevela
  • Download the latest vela binary from the releases page.
  • Unpack the vela binary and add it to $PATH to get started.
  1. sudo mv ./vela /usr/local/bin/vela

Known Issue(https://github.com/oam-dev/kubevela/issues/625): If you’re using mac, it will report that “vela” cannot be opened because the developer cannot be verified.

The new version of MacOS is stricter about running software you’ve downloaded that isn’t signed with an Apple developer key. And we haven’t supported that for KubeVela yet.
You can open your ‘System Preference’ -> ‘Security & Privacy’ -> General, click the ‘Allow Anyway’ to temporarily fix it.

4. Enable Helm Support

KubeVela leverages Helm controller from Flux v2 to deploy Helm based components.

You can enable this feature by installing a minimal Flux v2 chart as below:

  1. helm install --create-namespace -n flux-system helm-flux http://oam.dev/catalog/helm-flux2-0.1.0.tgz

Or you could install full Flux v2 following its own guide of course.

5. Verify

Checking available application components and traits by vela CLI tool:

  1. vela components
  1. NAME NAMESPACE WORKLOAD DESCRIPTION
  2. task vela-system jobs.batch Describes jobs that run code or a script to completion.
  3. webservice vela-system deployments.apps Describes long-running, scalable, containerized services
  4. that have a stable network endpoint to receive external
  5. network traffic from customers.
  6. worker vela-system deployments.apps Describes long-running, scalable, containerized services
  7. that running at backend. They do NOT have network endpoint
  8. to receive external network traffic.

These capabilities are built-in so they are ready to use if showed up. KubeVela is designed to be programmable and fully self-service, so the assumption is more capabilities will be added later per your own needs.

Also, whenever new capabilities are added in the platform, you will immediately see them in above output.

See the advanced installation guide to learn more about installation details.