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

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

> 如果是要升级现有的 KubeVela，请直接阅读[升级指南](../platform-engineers/advanced-install#升级).

## 1. 选择放置控制平面的集群

确保:
- Kubernetes 集群版本 >= v1.18.0
- 安装并配置 kubectl 命令行工具

KubeVela 得以成为控制平面，主要是依赖 Kubernetes 。它可以放置在任何托管 Kubernetes 作为底座的产品或你自己的集群中。

下面，我们使用 minikube 或 kind 在本地部署、测试来熟悉学习 KubeVela，

> 注意: 如果你不是使用 minikube 或 kind 来进行学习，请确保[安装或启用 ingress-nginx](https://kubernetes.github.io/ingress-nginx/deploy/)。

<Tabs
className="unique-tabs"
defaultValue="minikube"
values={[
{label: 'Minikube', value: 'minikube'},
{label: 'KinD', value: 'kind'},
]}>
<TabItem value="minikube">

先使用 minikube [安装指南](https://minikube.sigs.k8s.io/docs/start/)。

安装 minikube 后，创建一个集群:

```shell script
minikube start
```

安装 ingress:

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

  </TabItem>
  <TabItem value="kind">

请按照本[指南](https://kind.sigs.k8s.io/docs/user/quick-start/#installation)进行安装。

然后拉起一个 kind 集群:

```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 for kind](https://kind.sigs.k8s.io/docs/user/ingress/#ingress-nginx):
```shell script
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/kind/deploy.yaml
```

  </TabItem>
</Tabs>


## 2. 安装 KubeVela

1. 添加 KubeVela helm chart 仓库
```shell script
helm repo add kubevela https://charts.kubevela.net/core
```

2. 更新 chart 仓库
```shell script
helm repo update
```
   
3. 安装 KubeVela
```shell script
helm install --create-namespace -n vela-system kubevela kubevela/vela-core
```
默认情况下，它将使用 [kube-webhook-certgen](https://github.com/jet/kube-webhook-certgen) 提供的自签名证书启用 webhook。你也可以用 [`cert-manager`](../platform-engineers/advanced-install#install-kubevela-with-cert-manager) 安装。

4. 验证 chart 安装是否成功
    ```shell script
    helm test kubevela -n vela-system
    ```

    <details> <summary> 可以点开看看输出会是什么样子 </summary>

    ```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!
    ```

    </details>

## 3. 安装 KubeVela CLI

KubeVela CLI 可以让你更便捷地来管理应用交付。不过，它不是必须使用的。

KubeVela CLI 也可以通过 [kubectl plugin](../platform-engineers/advanced-install#install-kubectl-vela-plugin) 的方式来安装，或者通过二进制文件.

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

**Windows**

```shell script
powershell -Command "iwr -useb https://kubevela.io/script/install.ps1 | iex"
```
</TabItem>
<TabItem value="homebrew">

**macOS/Linux**

先更新下你的 brew

```shell script
brew update
```
紧接着安装 KubeVela

```shell script
brew install kubevela
```
</TabItem>
<TabItem value="download">

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

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

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

</TabItem>
</Tabs>

## 4. 打开 Helm 支持

KubeVela 调用 [Flux v2](https://github.com/fluxcd/flux2) 的 [Helm](https://helm.sh/) 控制器来部署组件系统。

你可以通过如下命令打开这个功能：

```shell
vela addon enable fluxcd
```

或者你也可以通过 Flux v2 的文档来安装完整版本。


## 5. 验证是否安装成功

通过 `vela` CLI 来看看有哪些应用程序的组件和特征：

```shell script
vela components
```
```console
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.
```

以上的这些能力都是已经内置的，随取随用。而由于 KubeVela 从一开始就被设计成可编程的，你可以按玩乐高积木一样，添加任何你需要的功能。

并且，一旦这些自定力的能力被加入到 KubeVela 控制平面中，你立即就能从上面的输出中看到了。

## 下一步

安装完毕 KubeVela，开始动手编写[第一个应用部署计划](./first-application)。