---
title: 快速安装
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

> 如果是要升级现有的 KubeVela，请直接阅读 [升级指南](./platform-engineers/advanced-install#升级)。
> 如果需要离线安装，请参考 [KubeVela 离线部署手册](./platform-engineers/system-operation/offline-installation)。

## 1. 准备控制平面的 Kubernetes 集群

确保:

- Kubernetes 集群版本 >= v1.19 && <= v1.22

> 若你已是 Kubernetes 用户，具有满足上述条件的集群，请直接进入 [下一节](#2-安装-kubevela-core) 。若你没有满足要求的集群，可通过下述方式安装便捷安装。生产场景推荐使用云服务或 RKE 安装方式。

KubeVela 控制平面依赖 Kubernetes。它可以放置在任何托管 Kubernetes 作为底座的产品或自建 Kubernetes 集群中。

你可以使用 kind 或 minikube 在本地部署、测试 KubeVela。

> 当搭建生产环境时，请先准备生产用 Kubernetes 集群或使用云厂商提供的 Kubernetes 服务。

<Tabs
className="unique-tabs"
defaultValue="kind"
values={[
{label: 'Kind', value: 'kind'},
{label: 'Minikube', value: 'minikube'},
{label: 'K3s', value: 'k3s'},
{label: 'RKE', value: 'rke'},
{label: '云服务', value: 'cloudprovider'},
]}>

<TabItem value="minikube">

> 仅适用于测试/试用场景。

[安装 minikube](https://minikube.sigs.k8s.io/docs/start/) 后，创建一个集群:

```shell script
minikube start
```

安装 ingress 启用路由访问功能：

```shell script
minikube addons enable ingress
```

</TabItem>

<TabItem value="k3s">

> k3s 适合以下场景 Edge、IoT、Development。你可以使用 k3s 作为 KubeVela 管控平面的的轻量级底座。

1. 安装 K3s

> K3s 只支持安装在具有 systemd 或者 openrc 服务的操作系统中。

你可以参考 [K3s 快速开始文档](https://rancher.com/docs/k3s/latest/en/quick-start/) 获取更多支持。

```shell
curl -sfL https://get.k3s.io | sh -
```

2. 复制 kubeconfig 文件到默认目录下。如果你需要在本地操作后续安装，请将其复制到本地。

```shell
make ~/.kube
cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
```

</TabItem>

<TabItem value="rke">

> 开始前请准备 1-N 台服务器或虚拟机，该安装模式可用于生产环境。

<b>（1）安装 Docker (可选)</b>

RKE 的安装依赖于 Docker, 请在所有服务器或虚拟机安装 Docker 服务，如未安装，请参考 [Docker 安装指南](https://docs.docker.com/engine/install/).

<b>（2）安装 RKE 命令行</b>

下载 RKE 二进制文件， [前往 RKE Release 页面](https://github.com/rancher/rke/releases).

如果你的网络受限无法下载（特别是中国用户），可直接使用下述方式安装:

```
wget https://static.kubevela.net/binary/rke/rke_linux-amd64 -O /usr/bin/rke
chmod +x /usr/bin/rke
```

<b>（3）安装 RKE 集群</b>

> 请切换到非 root 且有权限操作 docker 的用户下执行以下命令安装 RKE 集群，例如: docker

```shell script
  mkdir ~/rkeinit && cd ~/rkeinit
  # 引导式配置，可参考 [RKE集群配置说明文档](https://rancher.com/docs/rke/latest/en/example-yamls/)。
  rke config
  # 确认配置完成后即可安装集群，如有异常请参考 RKE 相关文档。
  rke up
  # 安装 Kubectl 命令行工具
  mkdir ~/.kube
  cp kube_config_cluster.yml ~/.kube/config
  docker cp kubelet:/usr/local/bin/kubectl /usr/local/bin/kubectl
```

</TabItem>

<TabItem value="kind">

> 仅适用于测试/试用场景。

安装 [Kind 命令行工具](https://kind.sigs.k8s.io/docs/user/quick-start/#installation)后，创建集群:

```shell script
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
```

安装 ingress 启用路由访问功能：

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

  </TabItem>

<TabItem value="cloudprovider">

> 可用于生产环境。

- 阿里云 [ACK 服务](https://www.aliyun.com/product/kubernetes)
- AWS [EKS 服务](https://aws.amazon.com/cn/eks)
- Azure [AKS 服务](https://azure.microsoft.com/en-us/services/kubernetes-service)
- Google [GKE 服务](https://cloud.google.com/kubernetes-engine)

> 注意: 请确保云厂商的集群[已安装或启用 ingress-nginx](https://kubernetes.github.io/ingress-nginx/deploy/) 以保证路由访问功能可正常使用。

</TabItem>
</Tabs>

## 2. 安装 KubeVela CLI

KubeVela CLI 提供了命令行工具来便捷的应用终端管理能力。

<Tabs
    className="unique-tabs"
    defaultValue="script"
    values={[
        {label: 'Script', value: 'script'},
        {label: 'Homebrew', value: 'homebrew'},
        {label: 'Download directly from releases', value: 'download'},
    ]}>
<TabItem value="script">

** MacOS/Linux **

```shell script
curl -fsSl https://kubevela.io/script/install.sh | bash -s 1.3.3
```

**Windows**

> 仅支持安装正式发行版本。

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

</TabItem>
<TabItem value="homebrew">

**macOS/Linux**

先更新下你的 brew，请注意 brew 途径仅支持安装正式发行版本。

```shell script
brew update
```

紧接着安装 KubeVela CLI

```shell script
brew install kubevela
```

</TabItem>
<TabItem value="download">

- 通过[发布日志](https://github.com/kubevela/kubevela/releases)下载最新的 `vela` 二进制文件。
- 解压二进制文件，并且在 `$PATH` 中配好环境变量，就搞定啦。

```shell script
sudo mv ./vela /usr/local/bin/vela
```

> [安装提示](https://github.com/kubevela/kubevela/issues/625):
> 如果你使用的是 Mac 系统，它会弹出 “vela” 无法打开的警告，因为来自开发者的包无法验证。
>
> MacOS 对能够在系统中运行的软件，采取了更加严格的限制。你暂时可以通过打开 'System Preference' -> 'Security & Privacy' -> General 并点击 'Allow Anyway' 来解决这个问题。

</TabItem>
</Tabs>

## 3. 安装 KubeVela Core

<Tabs
    className="unique-tabs"
    defaultValue="vela"
    values={[
        {label: 'Default', value: 'vela'},
        {label: 'Helm', value: 'helm'},
    ]}>
<TabItem value="vela">

> Vela CLI 版本需要 >=1.2.3

```shell script
vela install
```

<details> <summary>成功安装后预期输出如下：</summary>

```shell
...
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"
```

</details>
</TabItem>

<TabItem value="helm">

如果你是 Helm 用户，你同样可以使用 Helm 安装 KubeVela Core:

> helm 版本 >= 3.2.0

```
helm repo add kubevela https://charts.kubevela.net/core
helm repo update
helm install --create-namespace -n vela-system kubevela kubevela/vela-core --version 1.3.3 --wait
```

</TabItem>

</Tabs>

## 4. 安装 VelaUX

VelaUX 是一个可视化操作界面，包括 UI+API 服务，它适用于大多数厂商开箱即用的获取应用交付和管理能力。

```shell script
vela addon enable velaux serviceType=NodePort --version v1.3.3

# 获取映射的端口，通过该端口访问 VelaUX
kubectl get service velaux -n vela-system -o jsonpath="{.spec.ports[0].nodePort}"
```

VelaUX 有鉴权机制，默认账号为 admin，通过以下方式获取密码

```shell
vela logs -n vela-system --name apiserver addon-velaux | grep "initialized admin username"
```

国内环境可使用以下安装方式:

```
vela addon enable velaux serviceType=NodePort repo=acr.kubevela.net
```

`serviceType` 配置 velaux 服务的访问方式，如果你使用云服务集群，请配置为 `serviceType=LoadBalancer`，启用完成后通过以下方式获取访问地址:

```shell script
vela addon enable velaux serviceType=LoadBalancer repo=acr.kubevela.net

kubectl get service velaux -n vela-system -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
```

如果你的集群中已经安装了 Nginx Ingress Controller，而且你具有可用的域名，你可以这样部署 VelaUX(请使用真实域名替换 example.doamin.com):

```shell script
vela addon enable velaux repo=acr.kubevela.net domain=example.doamin.com
```

对于生产环境，请考虑启用 MongoDB 作为 VelaUX 的数据存储，使用 MongoDB 作为数据库的配置方式参考如下：

```shell script
vela addon enable velaux dbType=mongodb database=kubevela dbURL=mongodb://<Mongo-Host>:<Mongo-Port>
```

## 5. 卸载

如果你试用完成后需要卸载 KubeVela，可参考如下操作进行：

在卸载之前，请先将所有应用删除，所有 addon 禁用。

1. 卸载 VelaUX

```
vela addon disable velaux
```

2. 卸载 KubeVela Core

```
vela uninstall
```

3. 卸载 KubeVela 安装的 CRD

删除前，需要确保所有对应的 CR 资源已删除。

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

## 下一步

- 安装完毕 KubeVela，开始 [交付第一个应用](./quick-start)。
