7.8 KiB
Install KubeVela
1. Setup Kubernetes cluster
Requirements:
- Kubernetes cluster >= v1.15.0
- kubectl installed and configured
If you don't have K8s cluster from Cloud Provider, you may pick either Minikube or KinD as local cluster testing option.
NOTE: If you are not using minikube or kind, please make sure to install or enable ingress-nginx by yourself.
Minikube
Follow the minikube installation guide.
Once minikube is installed, create a cluster:
$ minikube start
Install ingress:
$ minikube addons enable ingress
KinD
Follow this guide to install kind.
Then spins up a kind cluster:
cat <<EOF | kind create cluster --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 Controller
These steps will install KubeVela controller and its dependency.
-
Add helm chart repo for KubeVela
helm repo add kubevela https://kubevelacharts.oss-cn-hangzhou.aliyuncs.com/core -
Update the chart repo
helm repo update -
Create Namespace for KubeVela controller
kubectl create namespace vela-system -
Install KubeVela
helm install -n vela-system kubevela kubevela/vela-coreBy default, it will enable webhook. KubeVela relies on cert-manager to create certificates for webhook. If cert-manager hasn't been installed, please refer to cert-manager installation doc.
You can add an argument
--set useWebhook=falseafter the command to disable the webhook if you don't want to rely on cert-manager. If you just want to have a try this can also work:helm install -n vela-system kubevela kubevela/vela-core --set useWebhook=falseYou can also install cert-manager via kubevela chart by adding the argument
--set installCertManager=true.helm install -n vela-system kubevela kubevela/vela-core --set installCertManager=trueIf you want to try the latest master branch, add flag
--develin commandhelm searchto choose a pre-release version in format<next_version>-rc-masterwhich means the next release candidate version build onmasterbranch, like0.4.0-rc-master.$ helm search repo kubevela/vela-core -l --devel NAME CHART VERSION APP VERSION DESCRIPTION kubevela/vela-core 0.4.0-rc-master 0.4.0-rc-master A Helm chart for KubeVela core kubevela/vela-core 0.3.2 0.3.2 A Helm chart for KubeVela core kubevela/vela-core 0.3.1 0.3.1 A Helm chart for KubeVela coreAnd try the following command to install it.
helm install -n vela-system kubevela kubevela/vela-core --version <next_version>-rc-master --set useWebhook=false
3. Get KubeVela CLI
Here are three ways to get KubeVela Cli:
Script
macOS/Linux
$ curl -fsSl https://kubevela.io/install.sh | bash
Windows
$ powershell -Command "iwr -useb https://kubevela.io/install.ps1 | iex"
Homebrew
macOS/Linux
$ brew install kubevela
Download directly from releases
- Download the latest
velabinary from the releases page. - Unpack the
velabinary and add it to$PATHto get started.
$ 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. Sync Capability from Cluster
$ vela workloads
Automatically discover capabilities successfully ✅ Add(5) Update(0) Delete(0)
TYPE CATEGORY DESCRIPTION
+task workload Describes jobs that run code or a script to completion.
+webservice workload Describes long-running, scalable, containerized services that have a stable
network endpoint to receive external network traffic from customers. If workload
type is skipped for any service defined in Appfile, it will be defaulted to
`webservice` type.
+worker workload Describes long-running, scalable, containerized services that running at
backend. They do NOT have network endpoint to receive external network
traffic.
+ingress trait Configures K8s ingress and service to enable web traffic for your service.
Please use route trait in cap center for advanced usage.
+scaler trait Configures replicas for your service.
NAME DESCRIPTION
task Describes jobs that run code or a script to completion.
webservice Describes long-running, scalable, containerized services that have a stable network endpoint to receive external network
traffic from customers. If workload type is skipped for any service defined in Appfile, it will be defaulted to
`webservice` type.
worker Describes long-running, scalable, containerized services that running at backend. They do NOT have network endpoint to
receive external network traffic.
5. (Optional) Clean Up
Run:
$ helm uninstall -n vela-system kubevela
$ rm -r ~/.vela
This will uninstall KubeVela server component and its dependency components. This also cleans up local CLI cache.
Then clean up CRDs (CRDs are not removed via helm by default):
$ kubectl delete crd \
applicationconfigurations.core.oam.dev \
applicationdeployments.core.oam.dev \
autoscalers.standard.oam.dev \
components.core.oam.dev \
containerizedworkloads.core.oam.dev \
healthscopes.core.oam.dev \
issuers.cert-manager.io \
manualscalertraits.core.oam.dev \
metricstraits.standard.oam.dev \
podspecworkloads.standard.oam.dev \
routes.standard.oam.dev \
scopedefinitions.core.oam.dev \
traitdefinitions.core.oam.dev \
workloaddefinitions.core.oam.dev