229 lines
6.6 KiB
Plaintext
229 lines
6.6 KiB
Plaintext
---
|
||
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)。 |