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
minikube start
Install ingress:
minikube addons enable ingress
Follow this guide to install kind.
Then spins up a kind cluster:
cat <<EOF | kind create cluster --image=kindest/node:v1.18.15 --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
Then install ingress for kind:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/kind/deploy.yaml
2. Install KubeVela
Add helm chart repo for KubeVela
helm repo add kubevela https://kubevelacharts.oss-accelerate.aliyuncs.com/core
Update the chart repo
helm repo update
Install KubeVela
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
.Verify chart installed successfully
helm test kubevela -n vela-system
Click to see the expected output of helm test
Pod kubevela-application-test pending
Pod kubevela-application-test pending
Pod kubevela-application-test running
Pod kubevela-application-test succeeded
NAME: kubevela
LAST DEPLOYED: Tue Apr 13 18:42:20 2021
NAMESPACE: vela-system
STATUS: deployed
REVISION: 1
TEST SUITE: kubevela-application-test
Last Started: Fri Apr 16 20:49:10 2021
Last Completed: Fri Apr 16 20:50:04 2021
Phase: Succeeded
TEST SUITE: first-vela-app
Last Started: Fri Apr 16 20:49:10 2021
Last Completed: Fri Apr 16 20:49:10 2021
Phase: Succeeded
NOTES:
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
curl -fsSl https://kubevela.io/script/install.sh | bash
Windows
powershell -Command "iwr -useb https://kubevela.io/script/install.ps1 | iex"
macOS/Linux
Update your brew firstly.
brew update
Then install kubevela client.
brew install kubevela
- Download the latest
vela
binary from the releases page. - Unpack the
vela
binary and add it to$PATH
to get started.
sudo mv ./vela /usr/local/bin/vela
Known Issue(https://github.com/kubevela/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:
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:
vela components
NAME NAMESPACE WORKLOAD DESCRIPTION
task vela-system jobs.batch Describes jobs that run code or a script to completion.
webservice vela-system deployments.apps Describes long-running, scalable, containerized services
that have a stable network endpoint to receive external
network traffic from customers.
worker vela-system deployments.apps Describes long-running, scalable, containerized services
that running at backend. They do NOT have network endpoint
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.