多服务器安装
在此示例中,Kasm 服务安装在环境中的不同服务器上。取决于所需的 用例中,可以根据您的环境和典型的安全最佳实践将这些服务器放置在单独的网络 enclave 中。
在开始之前,请通读整个过程。
故障排除信息可在故障排除页面上找到
体系结构角色
下面概述了此体系结构中的角色服务。通信所需的端口和协议包括 列出以允许在您的环境中使用防火墙或过滤设备
Web 应用服务器
- 端口/协议
- HTTPS协议 (443)
数据库服务器
- 端口/协议
- POSTGRESQL (5432)
- 瑞迪斯 (6379)
代理服务器
- 端口/协议
- HTTPS协议 (443)
连接代理
连接代理用于代理 Web 原生 RDP/VNC/SSH 会话到固定或自动缩放的服务器。如果此功能 不需要,则不需要安装此角色。 连接代理需要可从 WebApp 服务器和目标 RDP/VNC/SSH 服务器访问。 此服务器包括以下服务:
- 高克服务 (kasm_guac)
- 代理 (kasm_proxy)
- 端口/协议
- HTTPS协议 (443)
端口和协议
源 | 目的地 | 港口 | 笔记 |
最终用户 | Web 应用服务器 | 443 | Web 应用程序 / UI / API |
Web 应用服务器 | 数据库服务器 | 5432,6379 | 数据库访问 (PostgreSQL / Redis) |
Web 应用服务器 | 代理服务器 | 443 | 代理说明 |
Web 应用服务器 | 连接代理 (Guac) | 443 | 与 VM/硬件的代理 RDP 连接 |
Web 应用服务器 | VM/硬件 (KasmVNC) | 8443 | 与虚拟机/硬件的代理 KasmVNC 连接 |
代理服务器 | 管理服务器 | 443 | 签到、请求图像、请求身份验证 |
连接代理 (Guac) | VM/硬件 RDP 系统 | 3389 | 通过 Guac 将 RDP 转换为 Web 原生渲染 |
连接代理 (Guac) | 虚拟机/硬件 VNC 系统 | 5900 | 通过 Guac 将 VNC 转换为 Web 原生渲染 |
连接代理 (Guac) | 虚拟机/硬件 SSH 系统 | 22 | 通过 Guac 将 SSH 转换为 Web 原生渲染 |
连接代理 (Guac) | Web 应用服务器 | 443 | RDP 连接授权和状态检查 |
系统要求
在开始之前,请查看系统要求。
提示
Kasm 提供了大小调整和部署指南,以帮助确定大规模部署的硬件规格。
安装指南
按照以下步骤在单独的服务器上设置 Kasm。
安装数据库服务器角色
注意
数据库可以配置为独立数据库,例如 Amazon RDS 实例或现有 Postgres 实例,而不是 Kasm Technologies 提供的容器独立远程数据库。
可以按照以下步骤在数据库服务器上安装数据库服务
- 将最新版本的 Kasm Workspaces 下载到 /tmp
- 解压缩包并执行安装。请注意在安装过程中生成的默认登录凭据。
注意
如果您有激活密钥,则可以将其传递给安装脚本,并且将代表您完成激活作为安装的一部分。 为激活密钥创建一个文件,例如 并粘贴您在确认电子邮件中收到的激活密钥。 运行 install.sh 时,请使用该参数,以便您的命令可能如下所示。 这不适用于离线气隙安装,因为 Kasm Workspaces 必须联系激活服务器才能完成安装许可。 在多服务器安装中,此选项仅适用于数据库角色。activation_key.txt
-a or --activation-key-file
sudo bash kasm_release/install.sh -a activation_key.txt
cd /tmp curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.14.0.3a7abb.tar.gz tar -xf kasm_release_1.14.0.3a7abb.tar.gz sudo bash kasm_release/install.sh --role db --database-user [DATABASE_USERNAME] --database-name [DATABASE_NAME]
注意
DATABASE_USERNAME 和 DATABASE_NAME 是可选的,只有在安装 1.13.0 或更高版本上不使用默认 kasm/kasmapp 设置时才需要。
安装 Web 应用角色
可以按照以下步骤在单个服务器上预配 Web 应用组件。重复这些步骤 额外的服务器,以增加冗余和可扩展性。利用具有多个公共 IP 的单个公共 DNS 名称来拥有 DNS 负载将请求分发到 Web 应用程序 Kasm Workspaces 服务器群集。
对于后续步骤,您需要以下信息
- DATABASE_HOSTNAME :Web 应用服务器可解析和访问的数据库服务器的 IP、主机名或 FQDN。
- DATABASE_PASSWORD :数据库安装过程中生成的数据库密码。
- REDIS_PASSWORD :数据库安装过程中生成的 Redis 密码。
- DATABASE_USERNAME 可选 :数据库用户名(如果使用自定义用户名)。如果使用标准数据库服务器角色安装,则不需要包含此内容。
- DATABASE_NAME 可选 :如果使用自定义数据库名称,则为数据库名称。如果使用标准数据库服务器角色安装,则不需要包含此内容。
在继续之前,请验证此服务器是否可以访问端口 [DATABASE_HOSTNAME]:5432 和 6379
- 将最新版本的 Kasm Workspaces 下载到 /tmp
- 解压缩包并运行执行安装
cd /tmp curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.14.0.3a7abb.tar.gz tar -xf kasm_release_1.14.0.3a7abb.tar.gz sudo bash kasm_release/install.sh --role app --db-hostname [DATABASE_HOSTNAME] --db-password [DATABASE_PASSWORD] --redis-password [REDIS_PASSWORD] --database-user [DATABASE_USERNAME] --database-name [DATABASE_NAME]
- 登录到在端口 443 上运行的 Web 应用程序,https://<WEBAPP_SERVER>
- 默认用户名为 admin@kasm.local 和 user@kasm.local。除非指定了 or/and,否则密码将随机生成并在安装结束时显示。
--admin-password
--user-password
安装代理服务器角色
可以按照以下步骤安装代理和代理服务。对旨在设置最终用户会话的任何其他服务器重复此步骤
对于后续步骤,您需要以下信息
- MANAGER_HOSTNAME :代理服务器可解析和访问的 Web 应用服务器的 IP、主机名或 FQDN。
- MANAGER_TOKEN :数据库安装期间生成的管理器令牌。这用于代理的身份验证。
- AGENT_HOSTNAME :此代理服务器的此 IP、主机名或 FQDN,可由 Web 应用服务器解析和访问。 此值将由代理服务在签入例程期间报告,并由其他服务用于与其通信。
在继续之前,请验证此服务器是否可以访问端口 [MANAGER_HOSTNAME]:443
- 将最新版本的 Kasm Workspaces 下载到 /tmp
- 解压缩包并执行安装
cd /tmp curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.14.0.3a7abb.tar.gz tar -xf kasm_release_1.14.0.3a7abb.tar.gz sudo bash kasm_release/install.sh --role agent --public-hostname [AGENT_HOSTNAME] --manager-hostname [MANAGER_HOSTNAME] --manager-token [MANAGER_TOKEN]
- 以管理员身份登录 UI,选择 Infrastructure > Docker Agents,然后使用箭头菜单在刚刚创建的代理上选择编辑。确保已选择“已启用”,然后单击“保存”。
(可选)安装连接代理 (Guac) 角色
注意
原始 Kasm Workspaces 1.14.0 版本中的连接代理配置缺少挂载点,这会阻止通过 RDP 连接进行打印。有关解决方法,请参阅 1.14.0 发行说明中的勘误表部分。
需要连接代理角色才能支持通过 RDP、VNC 或 SSH 连接到 VM/硬件。工作区支持连接到 预先退出计算机或通过 Cloud Autoscaling 自动配置它们。如果不需要这些服务, 不需要安装此角色。
对于后续步骤,您需要以下信息
- MANAGER_HOSTNAME :代理服务器可解析和访问的 Web 应用服务器的 IP、主机名或 FQDN。
- SERVICE_REGISTRATION_TOKEN :数据库安装期间生成的注册令牌。这用于向系统注册连接代理。 服务注册令牌也可以在 Kasm Admin UI 的全局设置中找到。
- CONNECTION_PROXY_HOSTNAME :此连接代理服务器的此 IP、主机名或 FQDN,可由 Web 应用服务器解析和访问。 此值将在注册期间由连接代理服务器报告,并由其他服务用于与之通信。
在继续之前,请验证此服务器是否可以访问端口 [MANAGER_HOSTNAME]:443
- 将最新版本的 Kasm Workspaces 下载到 /tmp
- 解压缩包并执行安装
cd /tmp curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.14.0.3a7abb.tar.gz tar -xf kasm_release_1.14.0.3a7abb.tar.gz sudo bash kasm_release/install.sh --role guac --api-hostname [MANAGER_HOSTNAME] --public-hostname [CONNECTION_PROXY_HOSTNAME] --registration-token [SERVICE_REGISTRATION_TOKEN]
专用 Kasm 代理(可选)
在标准多服务器安装中,代理服务负责将客户端指向正确的代理服务器 包含在 Web 应用角色以及所有其他客户端 UI 和路由中。可能需要将许多代理分布在不同的地理位置,同时保留单个 Web 端点提供静态 Web 内容,而代理则为 Kasm Workspaces 会话提供服务。为此,有一个安装角色,用于安装和配置 Web 代理,以将最终用户定向到正确的代理以启动 Kasm Workspaces 会话。proxy
代理概述
The user follows the same workflow when launching a workspace and on the backend we direct them to the correct Agent/s, but unlike a standard Multi Server Deployment the Workspaces Session is routed through the Proxy in the user’s geographic region to reduce latency.
Proxy installation
Note
This guide assumes you have a running Multi Server deployment of Kasm Workspaces and have a basic understanding of domain/SSL management. For help with SSL certificates please see Custom Certificates
The following steps can be followed to install the proxy role to a server:
- Ensure the Proxy server has a domain name pointed to it and a legitimate SSL certificate.
- Download the latest version of Kasm Workspaces to /tmp.
- Extract the package and execute the installation.
- Post install, configure Kasm Workspaces via the Web UI to use the new Proxy.
In this example we assume the proxy domain is proxy.example.com and the Web App hosting the API server is located at workspaces.example.com.
Proxy Server installation
Note
It is important that the agents in your Multi Server installation can be accessed by this Proxy server deployment ensure connectivity to the Agent server from the Proxy server before installation.
In order to install the proxy role you will need to know the URL for the Web App server you plan to have your users connect from. This endpoint will be pointed to for authentication and is needed to enforce strict CORS policies.
cd /tmp curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.14.0.3a7abb.tar.gz tar -xf kasm_release*.tar.gz sudo bash kasm_release/install.sh --role proxy --api-hostname workspaces.kasmweb.com
Post Install Configuration
With the proxy running you will need to login to your Kasm Workspaces installation as an administrator and navigate to Admin->Settings->Global->Authentication->Kasm Auth Domain. Change this setting to example.com and click Save.
Next navigate to Admin->Infrastructure->Zones->Click the arrow next to the zone you want to point to the Proxy->Edit Set Proxy Hostname to proxy.example.com
While in this menu also set Upstream Auth Address to workspaces.example.com
With these setting changed we need to restart the API server container on the Web App server/s:
sudo docker restart kasm_api
When a user now deploys a Kasm Workspace their streaming session will be served up by this new external proxy instead of the default one deployed with the Web App role.
Slim images
使用安装标志将下载并使用基于 Alpine 的瘦服务容器。这些图像更小、更简化,但保留了相同的功能。这些映像与默认的 Ubuntu 容器不具有相同的广泛兼容性。--slim-images
已知的不兼容:
操作系统 | x86_64 | aarch64的 |
---|---|---|
Centos 流 8 | X | X |
AlmaLinux 8 | X | X |
洛基Linux 8 | X | X |
已知的应用程序错误:
- 游戏手柄直通当前不起作用。如果为组启用,则工作区将不会启动。
注意
这仅影响运行 Kasm Workspaces 应用程序的服务容器,此标志对面向最终用户的 Workspaces 没有影响。
安装疑难解答
install.sh 脚本在运行时会创建一个日志文件,此文件将在成功安装完成后删除。但是,如果出现问题,日志文件将从执行 install.sh 脚本的目录中以 kasm_install_${TIMESTAMP}.log 格式提供。此文件对于诊断导致安装失败的错误非常重要,并且在向 Kasm Technologies 提交支持票证时将请求此文件。