--- title: Installation --- import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; > For upgrading existing KubeVela, please read the [upgrade guide](./platform-engineers/advanced-install/#upgrade). ## 1. Choose Control Plane Cluster Requirements: - Kubernetes cluster >= v1.18.0 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. > only for testing/trial Follow the minikube [installation guide](https://minikube.sigs.k8s.io/docs/start/). Then spins up a minikube cluster ```shell script minikube start ```
Install ingress to enable service route ```shell script minikube addons enable ingress ```
> Before starting, please prepare 1-N server or virtual machine. This installation applies to the production environment (1)Intall Docker (Optional) The rke depend on docker, Please install Docker on all servers or virtual machines, if not installed follow the docker [installation guide](https://docs.docker.com/engine/install/). {" "} (2)Install rke: Download rke binary from [rke release page](https://github.com/rancher/rke/releases). If you have limited Internet access: ``` wget https://static.kubevela.net/binary/rke/rke_linux-amd64 -O /usr/bin/rke chmod +x /usr/bin/rke ``` (3)Install RKE cluster > Please switch to a non-root user who has permission to operate docker and execute the following command to install the RKE cluster, for example: docker ```shell script mkdir ~/rkeinit && cd ~/rkeinit # Wizard-style configuration rke config # Kubernetes Cluster Installation rke up # Install kubectl Command mkdir ~/.kube cp kube_config_cluster.yml ~/.kube/config docker cp kubelet:/usr/local/bin/kubectl /usr/local/bin/kubectl ``` > only for testing/trial Follow [this guide](https://kind.sigs.k8s.io/docs/user/quick-start/#installation) to install kind. Then spins up a kind cluster: ```shell script cat < Install ingress to enable service route ```shell script kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/kind/deploy.yaml ``` > Using for production environment - Alibaba Cloud [ACK Service](https://www.aliyun.com/product/kubernetes) - AWS [EKS Service](https://aws.amazon.com/cn/eks) - Azure [AKS Service](https://azure.microsoft.com/en-us/services/kubernetes-service) - Google [GKE Service](https://cloud.google.com/kubernetes-engine) > Please ensure [ingress-nginx](https://kubernetes.github.io/ingress-nginx/deploy/) is installed and enabled.
## 2. Install KubeVela Core Before installation, please make sure that Helm is available. If not installed, please head to [Helm Installation](https://helm.sh/docs/intro/install/) first. 1. Add and update KubeVela Helm chart repo ```shell script helm repo add kubevela https://charts.kubevela.net/core helm repo update ``` 2. Install KubeVela Core ```shell script helm install --create-namespace -n vela-system kubevela kubevela/vela-core --version 1.2.0-rc.2 --wait ``` 3. Verify KubeVela Core installation ```shell script helm test kubevela -n vela-system ```
check out the outcome ```shell 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. Install VelaUX VelaUX is a dashboard including UI+API services, it enables you to do everything around application delivery and management. #### 1. Install KubeVela CLI KubeVela CLI provides an easy to engage. We install VelaUX extensions through CLI. ** MacOS/Linux ** ```shell script curl -fsSl https://kubevela.io/script/install.sh | bash -s 1.2.0-rc.2 ``` **Windows** > Only the official release version is supported. ```shell script powershell -Command "iwr -useb https://kubevela.io/script/install.ps1 | iex" ``` **macOS/Linux** Update your brew first. Please note that the brew method only supports the installation of the official release version. ```shell script brew update ``` Then install KubeVela CLI ```shell script brew install kubevela ``` - Download the latest `vela` binary file via [release log](https://github.com/oam-dev/kubevela/releases). - Unzip the binary file, and configure the environment variables in `$PATH`, and you're done. ```shell script sudo mv ./vela /usr/local/bin/vela ``` > [Installation Tips](https://github.com/oam-dev/kubevela/issues/625): > If you are using a Mac system, it will pop up a warning that "vela" cannot be opened because the package from the developer cannot be verified. > > MacOS imposes stricter restrictions on the software that can run in the system. You can temporarily solve this problem by opening `System Preference ->Security & Privacy -> General` and clicking on `Allow Anyway`. #### 2. Install VelaUX via Addon ```shell script vela addon enable velaux serviceType=NodePort # Get the mapped port and access VelaUX through this port kubectl get service velaux -n vela-system -o jsonpath="{.spec.ports[0].nodePort}" ``` `serviceType` configures the access method of the VelaUX service. If you use a cloud service cluster, please configure it as `serviceType=LoadBalancer`, and obtain the access address through the following methods after activation: ```shell script vela addon enable velaux serviceType=LoadBalancer kubectl get service velaux -n vela-system -o jsonpath="{.status.loadBalancer.ingress[0].ip}" ``` If you have installed Nginx Ingress Controller in your cluster, and you have an available domain, you can deploy VelaUX like this (please replace example.doamin.com with the real domain name): ```shell script vela addon enable velaux repo=acr.kubevela.net domain=example.doamin.com ``` ## 4. Uninstall Before uninstalling kubevela, you must delete all applications and disable all addons. 1. Uninstall VelaUX ``` vela addon disable velaux kubectl delete configmap --all -n kubevela ``` 2. Uninstall KubeVela Core ``` helm uninstall -n vela-system kubevela ``` 3. Uninstall CRD Before deleting, you must delete all CR resources. ``` kubectl get crd |grep oam | awk '{print $1}' | xargs kubectl delete crd ``` ## Next Step - After installed KubeVela, let's begin to [Deploy First Application](./quick-start)。