Skip to main content
Version: v1.0

安装

如果你之前已经安装了 KubeVela chart,请直接阅读升级步骤。

1. 设置 Kubernetes 集群#

要求:

  • Kubernetes 集群版本 >= v1.15.0
  • 安装并配置 kubectl

KubeVela是一个简单的自定义控制器,可以安装在任何 Kubernetes 集群上,包括托管产品或你自己的集群。唯一的要求是请确保已安装并启用了 ingress-nginx

注意:如果你没有使用 minikube 或 kind,请确保安装或启用 ingress-nginx

遵循 minikube 安装指南

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

minikube start

安装 ingress:

minikube addons enable ingress

2. 安装 KubeVela 控制器#

这些步骤将安装 KubeVela 控制器及其依赖项。

  1. 添加 KubeVela helm chart 仓库
helm repo add kubevela https://charts.kubevela.net/core
  1. 更新 chart 仓库
helm repo update
  1. 安装 KubeVela
helm install --create-namespace -n vela-system kubevela kubevela/vela-core

默认情况下,它将使用自签名证书来启用 webhook kube-webhook-certgen

如果你想尝试最新的 master 分支, 在命令 helm search 中添加标志 --devel 以选择预发布版本 格式为 <下个版本号>-rc-master 的版本, 表示这是建立在 master 分支上的下一个候选发行版应, 例如 0.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 core

尝试使用以下命令进行安装。

helm install --create-namespace -n vela-system kubevela kubevela/vela-core --version <next_version>-rc-master
NAME: kubevela
LAST DEPLOYED: Thu Apr 1 19:41:30 2021
NAMESPACE: vela-system
STATUS: deployed
REVISION: 1
NOTES:
Welcome to use the KubeVela! Enjoy your shipping application journey!
  1. (可选)使用 cert-manager 安装 Kubevela

如果已经安装了 cert-manager,则可以使用它来生成证书。

你需要在 KubeVela chart 安装之前安装 cert-manager。

helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager jetstack/cert-manager --namespace cert-manager --version v1.2.0 --create-namespace --set installCRDs=true

安装 KubeVela,启用 certmanager:

helm install --create-namespace -n vela-system --set admissionWebhooks.certManager.enabled=true kubevela kubevela/vela-core

3. (可选)安装 flux2#

这个安装步骤是可选的,如果你想将 Helm Chart 作为 KubeVela 的能力,那么这一步是必需的。

KubeVela 依赖于 fluxcd/flux2 的几个 CRD 和控制器。

CRDController Image
helmrepositories.source.toolkit.fluxcd.iofluxcd/source-controller:v0.9.0
helmcharts.source.toolkit.fluxcd.io-
buckets.source.toolkit.fluxcd.io-
gitrepositories.source.toolkit.fluxcd.io-
helmreleases.helm.toolkit.fluxcd.iofluxcd/helm-controller:v0.8.0

你可以从其官方网站上安装整个 flux2,也可以安装由 KubeVela 提供的近包含最小集的 helm chart:

$ helm install --create-namespace -n flux-system helm-flux http://oam.dev/catalog/helm-flux2-0.1.0.tgz

4. (可选)安装 KubeVela CLI 命令行工具#

这里有三种获取 KubeVela Cli 的方法:

macOS/Linux

curl -fsSl https://kubevela.io/script/install.sh | bash

Windows

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

5. (可选)从群集同步功能#

如果要从 vela cli 运行应用程序,则应首先同步功能,如下所示:

vela components
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.

6. (可选)清理#

运行:
helm uninstall -n vela-system kubevela
rm -r ~/.vela

这将卸载 KubeVela 服务器组件及其依赖组件。 这也会清理本地 CLI 缓存。

然后清除 CRDs (CRDs 默认不会通过 helm 移除):

kubectl delete crd \
appdeployments.core.oam.dev \
applicationconfigurations.core.oam.dev \
applicationcontexts.core.oam.dev \
applicationdeployments.core.oam.dev \
applicationrevisions.core.oam.dev \
applications.core.oam.dev \
approllouts.core.oam.dev \
componentdefinitions.core.oam.dev \
components.core.oam.dev \
containerizedworkloads.core.oam.dev \
healthscopes.core.oam.dev \
manualscalertraits.core.oam.dev \
podspecworkloads.standard.oam.dev \
scopedefinitions.core.oam.dev \
traitdefinitions.core.oam.dev \
workloaddefinitions.core.oam.dev

升级#

如果你已经安装了 KubeVela,并希望升级到新版本,可以按照以下说明进行操作。

步骤 1. 更新 helm 仓库#

helm repo update

你可以通过运行以下命令获取新版本的 KubeVela 图表:

helm search repo kubevela/vela-core -l

Step 2. 升级 KubeVela CRDs#

kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/core.oam.dev_componentdefinitions.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/core.oam.dev_workloaddefinitions.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/core.oam.dev_traitdefinitions.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/core.oam.dev_applications.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/core.oam.dev_approllouts.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/core.oam.dev_applicationrevisions.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/core.oam.dev_scopedefinitions.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/core.oam.dev_appdeployments.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/core.oam.dev_applicationcontexts.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/charts/vela-core/crds/core.oam.dev_definitionrevisions.yaml

Tips: 如果你碰到类似 * is invalid: spec.scope: Invalid value: "Namespaced": filed is immutable问题. 请删除带有错误的 crd 并重新应用 KubeVela crds。

kubectl delete crd \
scopedefinitions.core.oam.dev \
traitdefinitions.core.oam.dev \
workloaddefinitions.core.oam.dev

Step 3. 升级 KubeVela helm chart#

helm upgrade --install --create-namespace --namespace vela-system kubevela kubevela/vela-core --version <the_new_version>
Last updated on by yangsoon