独立安装 KubeVela

概览

本文档将向你展示如何以独立模式安装 KubeVela。 有两种选择:

  1. 本地机器:在本地机器中安装,支持 Linux,macOS 和 Windows。
  2. 远程 Linux 服务器:在具有可访问IP地址的远程 Linux 服务器中安装

无依赖独立安装 - 图1提示

在非 Linux 系统的远程服务器中安装 KubeVela 尚未经过完全测试。

VelaD 简介

以上两种选项中,我们都将使用 VelaD 来以独立模式安装 KubeVela。它是一个命令行工具, 将 KubeVela 最小安装以及使用 VelaUX 的一切依赖打包为一个可执行文件。你可以使用 VelaD 在安装有 Docker 的 macOS/Windows 中或 Linux 中安装 KubeVela。

  • VelaD 集成了 K3sk3d 用于自动化管理 Kubernetes 集群,用户无需关心 Kubernetes 集群管理的细节。
  • VelaD 打包了镜像等依赖,可以在没有网络的环境中最小化安装 KubeVela 以及其 VelaUX 插件。

无依赖独立安装 - 图2警告

以独立模式安装仅适用于开发和测试目的,这时你无需了解其中的 Kubernetes。但是当你想要在生产中使用它时,你需要能够理解和维护 K3s,即承担管理 Kubernetes 的工作。

在本地机器上安装

1. 准备环境

VelaD 支持在这些操作系统中安装 KubeVela:Linux, macOS, Windows。

要求

  1. 如果你在使用 Linux 或者 macOS,确保你的机器上安装了 curl
  2. 如果你在使用 macOS or Windows, 确保你已经安装 Docker Desktop

2. 安装 VelaD 和 KubeVela

下载 VelaD

下面等脚本将下载二进制文件并将其放置在你的系统“PATH”中,

  • Linux
  • Windows

在安装过程中你可能需要 root 权限。 如果你不需要 root 权限和自动化,你可以从发布页面下载并手动解压缩。

  1. curl -fsSl https://static.kubevela.net/script/install-velad.sh | bash

检查 velad 安装到 /usr/local/bin/

以管理员身份启动 PowerShell 并执行如下命令:

  1. powershell -Command "iwr -useb https://static.kubevela.net/script/install-velad.ps1 | iex"

检查 velad 安装到 C:\vela\

无依赖独立安装 - 图3信息

VelaD 会帮助安装 Vela CLI,这要求管理员权限。

如何以管理员身份启动 PowerShell

  1. 点击”开始”按钮打开开始菜单。
  2. 在开始菜单中,向下滚动找到”Windows PowerShell”目录,右键点击其中的”Windows Powershell”选项,并选择”以管理员身份运行”。

安装 KubeVela

  1. velad install

期望输出

  1. Preparing K3s images...
  2. Successfully prepare k3s image: /Users/sunjianbo/.vela/velad/k3s/k3s-airgap-images-amd64.tgz
  3. Successfully prepare k3d images
  4. ...snip...
  5. KubeVela control plane has been successfully set up on your cluster.
  6. If you want to enable dashboard, please run "vela addon enable /Users/sunjianbo/.vela/addons/velaux"
  7. Keep the token below if you want to restart the control plane
  8. K1075e7f6c77555e6ebdaf4854e4a2f39ae4287cfad23f27cdac5b33608d44633fe::server:zSpzbdbGzVxOwfBvvjgT
  9. 🚀 Successfully install KubeVela control plane
  10. 🔭 See available commands with `vela help`

验证安装结果

设置 kubeconfig 并列出所有内置的组件定义:

  • Linux/macOS
  • Windows
  1. export KUBECONFIG=$(velad kubeconfig --host)
  2. vela comp
  1. $env:PATH += ";$HOME\.vela\bin;"
  2. $env:KUBECONFIG = $(velad kubeconfig --host)
  3. vela comp

无依赖独立安装 - 图4提示

  • 在macOS/Linux中,执行 velad install 时,已经安装了 vela CLI (vela) 并自动添加到 PATH。 所以你可以直接使用它。
  • 用于配置对集群的访问的文件称为 kubeconfig 文件

期望输出

  1. NAME DEFINITION DESCRIPTION
  2. config-helm-repository autodetects.core.oam.dev Config information to authenticate helm chart repository
  3. daemon daemonsets.apps Describes daemonset services in Kubernetes.
  4. cron-task cronjobs.batch Describes cron jobs that run code or a script to completion.
  5. worker deployments.apps Describes long-running, scalable, containerized services
  6. that running at backend. They do NOT have network endpoint
  7. to receive external network traffic.
  8. task jobs.batch Describes jobs that run code or a script to completion.
  9. webservice deployments.apps Describes long-running, scalable, containerized services
  10. that have a stable network endpoint to receive external
  11. network traffic from customers.
  12. config-image-registry autodetects.core.oam.dev Config information to authenticate image registry
  13. k8s-objects autodetects.core.oam.dev K8s-objects allow users to specify raw K8s objects in
  14. properties
  15. raw autodetects.core.oam.dev Raw allow users to specify raw K8s object in properties.
  16. This definition is DEPRECATED, please use 'k8s-objects'
  17. instead.
  18. ref-objects autodetects.core.oam.dev Ref-objects allow users to specify ref objects to use.
  19. Notice that this component type have special handle logic.

3. 安装 VelaUX

VelaUX 是 KubeVela 的仪表板。 它是在你的集群中运行的 Web 应用程序。 你可以使用浏览器访问它。 如果你不使用 KubeVela 的 UI 控制台,这是可选的。

  • Linux/macOS
  • Windows
  1. vela addon enable ~/.vela/addons/velaux
  1. vela addon enable $HOME\.vela\addons\velaux

期望输出

  1. Addon: velaux enabled Successfully.

默认情况下,velaux 没有任何暴露的端口,你可以通过以下方式查看:

  1. vela port-forward addon-velaux -n vela-system 8080:80

选择 > local | velaux | velaux 来访问 VelaUX

无依赖独立安装 - 图5备注

如需更多 VelaUX 选项,请参阅 VelaUX 插件 文档了解其他高级安装参数。

VelaUX 需要身份验证。 默认用户名是 admin,密码是 VelaUX12345。首次登录时需要使用新密码覆盖,请务必记住新密码。

4. 清理

此命令将清理 KubeVela 控制器以及 Kubernetes 集群,有关更详细的步骤,请参阅 高级指南

  1. velad uninstall

在远程服务器上安装 KubeVela

下面向你展示如何在远程服务器(如 aws EC2 或 阿里云 ECS)上以独立模式安装 KubeVela。

1.准备一台机器

准备一台 Linux 系统的远程服务器,对机器有如下要求

要求

  1. 确保你的机器安装了 curl
  2. 此服务器有一个公网 IP,或者在企业内网中你可以访问该服务器的 IP。
  3. 如果你使用的是云服务器,请确保你在安全组中打开了 6443 端口。

2. 安装 VelaD 和 KubeVela

下载 VelaD

下面等脚本将下载二进制文件并将其放置在你的系统“PATH”中, 因此在安装过程中你可能需要 root 权限。 如果你不需要root权限和自动化,你可以从发布页面下载并手动解压缩。

  1. curl -fsSl https://static.kubevela.net/script/install-velad.sh | bash

检查 velad 已经安装到 /usr/local/bin/

安装 KubeVela

运行以下命令并将$SERVER_PUBLIC_IP替换为服务器的公共 IP。

  1. velad install --bind-ip=$SERVER_PUBLIC_IP

期望输出

  1. Preparing K3s images...
  2. Successfully prepare k3s image: /Users/sunjianbo/.vela/velad/k3s/k3s-airgap-images-amd64.tgz
  3. Successfully prepare k3d images
  4. ...snip...
  5. KubeVela control plane has been successfully set up on your cluster.
  6. If you want to enable dashboard, please run "vela addon enable /Users/sunjianbo/.vela/addons/velaux"
  7. Keep the token below if you want to restart the control plane
  8. K1075e7f6c77555e6ebdaf4854e4a2f39ae4287cfad23f27cdac5b33608d44633fe::server:zSpzbdbGzVxOwfBvvjgT
  9. 🚀 Successfully install KubeVela control plane
  10. 🔭 See available commands with `vela help`
  11. 🔑 To access the cluster, set KUBECONFIG:
  12. export KUBECONFIG=$(velad kubeconfig --name default --host)

验证安装结果

设置 kubeconfig 并列出所有内置的组件定义:

  1. export KUBECONFIG=$(velad kubeconfig --host)
  2. vela comp

无依赖独立安装 - 图6提示

  • 执行 velad install 时,已经安装了 vela CLI (vela) 并自动添加到 PATH。 所以你可以直接使用它。 稍后我们将在本地机器上访问 KubeVela,我们将再次在本地机器上安装 vela CLI。
  • 用于配置对集群的访问的文件称为 kubeconfig 文件,vela CLI也使用该文件访问 KubeVela。

期望输出

  1. NAME DEFINITION DESCRIPTION
  2. config-helm-repository autodetects.core.oam.dev Config information to authenticate helm chart repository
  3. daemon daemonsets.apps Describes daemonset services in Kubernetes.
  4. cron-task cronjobs.batch Describes cron jobs that run code or a script to completion.
  5. worker deployments.apps Describes long-running, scalable, containerized services
  6. that running at backend. They do NOT have network endpoint
  7. to receive external network traffic.
  8. task jobs.batch Describes jobs that run code or a script to completion.
  9. webservice deployments.apps Describes long-running, scalable, containerized services
  10. that have a stable network endpoint to receive external
  11. network traffic from customers.
  12. config-image-registry autodetects.core.oam.dev Config information to authenticate image registry
  13. k8s-objects autodetects.core.oam.dev K8s-objects allow users to specify raw K8s objects in
  14. properties
  15. raw autodetects.core.oam.dev Raw allow users to specify raw K8s object in properties.
  16. This definition is DEPRECATED, please use 'k8s-objects'
  17. instead.
  18. ref-objects autodetects.core.oam.dev Ref-objects allow users to specify ref objects to use.
  19. Notice that this component type have special handle logic.

3. 安装 VelaUX

VelaUX 是 KubeVela 的仪表板。 它是在你的集群中运行的 Web 应用程序。 你可以使用浏览器访问它。 如果你不使用 KubeVela 的 UI 控制台,可以跳过。

  1. vela addon enable ~/.vela/addons/velaux serviceType=NodePort

期望输出

  1. Addon: velaux enabled Successfully.
  2. ...
  3. I0907 12:03:11.462606 98769 utils.go:156] find cluster gateway service vela-system/kubevela-cluster-gateway-service:9443
  4. Please access addon-velaux from the following endpoints:
  5. +---------+-----------+-------------------------------+----------------------------+-------+
  6. | CLUSTER | COMPONENT | REF(KIND/NAMESPACE/NAME) | ENDPOINT | INNER |
  7. +---------+-----------+-------------------------------+----------------------------+-------+
  8. | local | apiserver | Service/vela-system/apiserver | apiserver.vela-system:8000 | true |
  9. | local | velaux | Service/vela-system/velaux | http://47.252.17.47:30000 | false |
  10. +---------+-----------+-------------------------------+----------------------------+-------+

通过添加 serviceType=NodePort 参数,我们告诉 VelaUX 通过 K8s NodePort 的方式暴露服务。 使用以下命令查询 VelaUX 的端点:

  1. vela status addon-velaux -n vela-system --endpoint

它将显示类似 http://PUBLIC-IP:PORT 的 URL。 你可以使用浏览器访问该 URL。

无依赖独立安装 - 图7开启端口

如果你使用的是云服务器,请在安全组中打开此端口。

无依赖独立安装 - 图8备注

如需更多 VelaUX 选项,请参阅 VelaUX 插件 文档了解其他高级安装参数。

VelaUX 需要身份验证。 默认用户名是 admin,密码是 VelaUX12345。首次登录时需要使用新密码覆盖,请务必记住新密码。

4. 从本地访问 KubeVela (可选)

你可以使用本地计算机访问 KubeVela。 请确认在上一步服务器上执行 velad install 时加了 --bind-ip 参数。

复制 kubeconfig

在远程服务器上执行如下命令,它将打印集群的 kubeconfig。 --external 表示打印的 kubeconfig 可以从其他机器使用(如你的本地机器)。

  1. cat $(velad kubeconfig --external)

然后你需要手动把这个 kubeconfig 内容复制到你的本地机器的一个文件里。 假设你将这个文件保存在本地机器的 ~/.kube/velad-config 中。

在本地机器中安装 vela CLI

要访问集群,还需要在本地机器上安装 vela CLI (vela)。

  1. curl -fsSl https://static.kubevela.net/script/install.sh | bash

验证安装

设置 kubeconfig 并列出所有内置的组件定义:

  1. export KUBECONFIG=$(velad kubeconfig --host)
  2. vela comp

5. 清理

在远程服务器上运行如下命令。此命令将清理 KubeVela 控制器以及 Kubernetes 集群,有关更详细的步骤,请参阅 高级指南

  1. velad uninstall