先决条件

  • Kubernetes 集群,运行 Kubernetes v1.22.9 或者更高

搭建 OSM CLI

从二进制发布版开始

发布页下载平台指定的压缩包 解压 osm 二进制文件,然后添加它到 $PATH 来开启。

Linux 和 macOS

在 Linux/macOS 或者 Windows Linux 子系统 (WSL) 上的基于 bash 的 shell 环境里,使用 curl 来下载 OSM 发布版,然后按照如下方式解压 tar 包。

  1. # Specify the OSM version that will be leveraged throughout these instructions
  2. OSM_VERSION=v1.2.0
  3. # Linux curl command only
  4. curl -sL "https://github.com/openservicemesh/osm/releases/download/$OSM_VERSION/osm-$OSM_VERSION-linux-amd64.tar.gz" | tar -vxzf -
  5. # macOS curl command only
  6. curl -sL "https://github.com/openservicemesh/osm/releases/download/$OSM_VERSION/osm-$OSM_VERSION-darwin-amd64.tar.gz" | tar -vxzf -

osm 客户端二进制程序运行在客户端机器上,并且允许在 Kubernetes 集群里管理 OSM。使用下面的命令在 Linux 或者 Windows Linux 子系统 (WSL) 上基于 bash 的 shell 里面来安装 OSM osm 客户端二进制程序。这些命令复制 osm 客户端二进制程序到 PATH 下面的标准用户程序位置里。

  1. sudo mv ./linux-amd64/osm /usr/local/bin/osm

对于 macOS,使用下面的命令:

  1. sudo mv ./darwin-amd64/osm /usr/local/bin/osm

可以通过下面的命令来验证那些已经正确地添加到环境的 osm 客户端库和它们的版本号。

  1. osm version

Windows

在 Windows 上基于 PowerShell 的 shell 里面,使用 Invoke-WebRequest 来下载 OSM 发布版,然后用 Expand-Archive 来解压,就像下面这样:

  1. # Specify the OSM version that will be leveraged throughout these instructions
  2. $OSM_VERSION="v1.2.0"
  3. [Net.ServicePointManager]::SecurityProtocol = "tls12"
  4. $ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -URI "https://github.com/openservicemesh/osm/releases/download/$OSM_VERSION/osm-$OSM_VERSION-windows-amd64.zip" -OutFile "osm-$OSM_VERSION.zip"
  5. Expand-Archive -Path "osm-$OSM_VERSION.zip" -DestinationPath .

osm 客户端二进制程序运行在客户端机器上,并且允许在 Kubernetes 集群里来管理 OSM 控制器。使用下面的命令来安装 OSM osm 客户端二进制程序,这个需要在 Windows 上的基于 PowerShell 的 shell 环境来完成。这些命令复制 osm 客户端二进制程序到一个 OSM 文件夹,然后通过 PATH 环境变量,使即刻(在当前 shell)和持久(跨 shell 重新启动)环境下 OSM 都有效。不需要提升(管理员)权限来运行这些命令,你也不需要重启 shell。

  1. # Copy osm.exe to C:\OSM
  2. New-Item -ItemType Directory -Force -Path "C:\OSM"
  3. Move-Item -Path .\windows-amd64\osm.exe -Destination "C:\OSM\"
  4. # Add C:\OSM to PATH.
  5. # Make the new PATH permanently available for the current User
  6. $USER_PATH = [environment]::GetEnvironmentVariable("PATH", "User") + ";C:\OSM\"
  7. [environment]::SetEnvironmentVariable("PATH", $USER_PATH, "User")
  8. # Make the new PATH immediately available in the current shell
  9. $env:PATH += ";C:\OSM\"

可以通过下面的命令,来验证已经被正确添加到环境里的 osm 客户端库和它们的版本号。

  1. osm version

从源码 (Linux, macOS)

从源码来构建 OSM 需要更多的步骤,但是这是最好的方式用来在一个开发环境里测试最近的变更和有用的东西。

必须有一个工作的 Go 环境。

  1. $ git clone git@github.com:openservicemesh/osm.git
  2. $ cd osm
  3. $ make build-osm

make build-osm 将拉取任何被需要的依赖,编译 osm,然后把它放置于 bin/osm。添加 bin/osm$PATH,这样就可以轻松地使用 osm 了。

安装 OSM

OSM 配置

默认的,控制平面组件被安装到一个 Kubernetes 命名空间,被称之为 osm-system,然后这个控制平面被给与一个唯一的标识符属性 mesh-name,默认是 osm。 安装期间,这个命名空间和 mesh-name 能够被配置,当使用 osm CLI 时,通过标志来进行,或者当使用 helm CLI 时,通过编辑值文件来进行。

在安装到标识并且管理一个网格实例期间,mesh-name 是一个唯一的标识符,其被指派给一个 OSM 控制器实例。

mesh-name 应该遵循 RFC 1123 DNS 标签限定。其必须:

  • 至多包含 63 个字符
  • 只能包含小写字母数字字符或者 ‘-’
  • 以一个字母数字字符开始
  • 以一个字母数字字符结束

使用 OSM CLI

使用 osm CLI 来安装 OSM 控制平面到一个 Kubernetes 集群。

运行 osm install

  1. # Install osm control plane components
  2. $ osm install
  3. OSM installed successfully in namespace [osm-system] with mesh name [osm]

运行 osm install --help 来了解更多选项。