安装
如果你之前已经安装了 KubeVela chart,请直接阅读升级步骤。
要求:
- Kubernetes 集群版本 >= v1.15.0
- 安装并配置 kubectl
KubeVela是一个简单的自定义控制器,可以安装在任何 Kubernetes 集群上,包括托管产品或你自己的集群。唯一的要求是请确保已安装并启用了 。
- Minikube
- KinD
遵循 minikube 安装指南。
安装 minikube 后,创建一个集群:
安装 ingress:
请按照本进行安装。
然后拉起一个 kind 集群:
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:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/kind/deploy.yaml
2. 安装 KubeVela 控制器
这些步骤将安装 KubeVela 控制器及其依赖项。
- 添加 KubeVela helm chart 仓库
- 更新 chart 仓库
helm repo update
- 安装 KubeVela
helm install --create-namespace -n vela-system kubevela kubevela/vela-core
如果你想尝试最新的 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.1 0.3.1 A Helm chart for KubeVela core
尝试使用以下命令进行安装。
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!
- (可选)使用 cert-manager 安装 Kubevela
如果已经安装了 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
这个安装步骤是可选的,如果你想将 作为 KubeVela 的能力,那么这一步是必需的。
KubeVela 依赖于 fluxcd/flux2 的几个 CRD 和控制器。
你可以从其上安装整个 flux2,也可以安装由 KubeVela 提供的近包含最小集的 helm chart:
$ helm install --create-namespace -n flux-system helm-flux http://oam.dev/catalog/helm-flux2-0.1.0.tgz
这里有三种获取 KubeVela Cli 的方法:
- Script
- Homebrew
- Download directly from releases
macOS/Linux
curl -fsSl https://kubevela.io/script/install.sh | bash
Windows
powershell -Command "iwr -useb https://kubevela.io/script/install.ps1 | iex"
首先更新你的 brew 缓存。
brew update
安装 KubeVela 客户端.
brew install kubevela
- 从版本发布页面下载最新的
vela
二进制版本. - 解压缩 vela 二进制文件并将其添加到
$PATH
开始使用.
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
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 移除):
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,并希望升级到新版本,可以按照以下说明进行操作。
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
kubectl delete crd \
scopedefinitions.core.oam.dev \
workloaddefinitions.core.oam.dev