概念#
系统概述#
Anaconda Enterprise Notebooks 平台由 3 个主要服务组组成:AEN 服务器、AEN 网关和 AEN 计算,它们被称为“节点”
服务器节点—系统的管理前端,用户在此登录、存储用户帐户,以及管理员管理系统。
网关节点—反向代理,用于验证用户身份并将他们定向到其项目的正确计算节点。用户在安装后不会注意到此节点,因为它会自动路由他们。
计算节点—项目存储和运行的位置。

这些服务可以在单台机器上运行,也可以分布在多台服务器上。

在组织结构上,每个 AEN 安装都恰好有 1 个服务器实例和 1 个或多个网关实例。每个计算节点只能连接到一个网关。由单个网关服务的计算节点集合称为数据中心。您可以随时向 AEN 安装添加数据中心。
示例:具有 2 个数据中心的 AEN 部署,其中 1 个网关具有 20 台物理计算机的集群,第二个网关具有 30 台虚拟机,必须安装并运行以下服务
1 个 AEN 服务器实例
2 个 AEN 网关实例
50 个 AEN 计算实例 (20 + 30)
节点必须单独配置和维护。
服务器节点#
服务器节点控制登录、帐户、管理、项目创建和管理以及与数据库的接口。它是所有用户访问 AEN 的主要入口点。服务器节点处理项目设置,并确保将用户发送到正确的项目数据中心。
由于 AEN 是基于 Web 的,因此它在服务器上使用标准 HTTP 端口 80 或 HTTPS 端口 443。
AEN 使用 MongoDB 进行内部数据持久性。它通常与服务器在同一主机上运行,但也可以安装在单独的主机上。
服务器节点使用 NGINX 来处理面向用户的 AEN Web 界面。NGINX 充当实际服务器 Web 进程的请求代理,该进程在高编号端口上运行,该端口仅侦听本地主机。NGINX 还负责静态内容。
服务器安装在 /opt/wakari/wakari-server
目录中。
服务器进程#
当您查看服务器进程的状态时,您可能会看到下面解释的进程。
supervisord |
详情 |
---|---|
描述 |
管理 |
用户 |
|
配置 |
|
日志 |
|
控制 |
|
端口 |
无 |
wk-server |
详情 |
---|---|
描述 |
处理用户交互并将作业传递到 wakari 网关。对其的访问由 NGINX 管理。 |
用户 |
|
命令 |
|
配置 |
|
控制 |
|
日志 |
|
端口 |
在 4.1.2 之后的版本中未使用 * |
* AEN 4.1.2 及更早版本使用端口 5000。此端口仅在本地主机上使用。更高版本的 AEN 使用 Unix 套接字代替。Unix 套接字路径为:unix:/opt/wakari/wakari-server/var/run/wakari-server.sock
wakari-worker |
详情 |
---|---|
描述 |
异步执行来自 |
用户 |
|
日志 |
|
控制 |
|
nginx |
详情 |
---|---|
描述 |
为静态文件提供服务,并充当传递给 wk-server 进程的所有其他请求的代理。* |
用户 |
nginx |
配置 |
|
日志 |
|
控制 |
|
端口 |
80 |
* 在 AEN 4.1.2 及更早版本中,wk-server 进程仅在本地主机上的端口 5000 上运行。在更高版本的 AEN 中,wk-server 进程使用 Unix 套接字路径 unix:/opt/wakari/wakari-server/var/run/wakari-server.sock
。
NGINX 至少运行两个进程
作为 root 用户运行的主进程。
作为 nginx 用户运行的工作进程。
网关节点#
网关节点充当给定计算节点组的访问点。它充当代理服务,并管理对在这些节点上运行的服务的 URL 和端口的授权和映射。网关节点为用户提供一致的统一接口。
注意:网关也可能被称为数据中心,因为它充当计算节点集合的代理。
您可以将网关以分层横向扩展方式放置在每个数据中心中。
AEN 网关安装在 /opt/wakari/wakari-gateway
目录中。
网关进程#
当您查看服务器进程的状态时,您可能会看到下面解释的进程。
supervisord |
详情 |
---|---|
描述 |
管理 |
用户 |
|
配置 |
|
日志 |
|
控制 |
|
端口 |
无 |
wakari-gateway |
详情 |
---|---|
描述 |
将来自 AEN 服务器的请求传递到计算节点。 |
用户 |
|
配置 |
|
日志 |
|
工作目录 |
|
端口 |
8089 (webcache) |
计算节点#
计算节点是 Jupyter Notebook 和 Workbench 等应用程序实际运行的位置。它们也是用户在使用终端应用程序或使用 SSH 访问节点时看到的宿主机。计算节点包含所有用户可见的程序。
计算节点只需要与网关通信,因此它们可以完全被防火墙隔离。
每个项目都与一个或多个属于单个数据中心的计算节点相关联。
AEN 计算节点安装在 /opt/wakari/wakari-compute
目录中。
AEN 系统中的每个计算节点都需要计算启动器服务来协调对服务器和网关的访问。
计算进程#
当您查看服务器进程的状态时,您可能会看到下面解释的进程。
supervisord |
详情 |
---|---|
描述 |
管理 |
用户 |
|
配置 |
|
日志 |
|
控制 |
|
工作目录 |
|
端口 |
无 |
wk-compute |
详情 |
---|---|
描述 |
启动计算进程。 |
用户 |
|
配置 |
|
日志 |
|
工作目录 |
|
控制 |
|
端口 |
5002 (rfe) |
Wk-compute 按以下顺序加载每个配置文件
/etc/wakari/config.json
./etc/wakari/compute-launcher-config.json
../compute-launcher-config.json
.由
-c
选项指定的任何配置文件。
如果选项在多个文件中指定,则以后遇到的选项优先。
Supervisor 和 supervisord#
AEN 使用名为“Supervisor”的进程控制系统来运行其服务。Supervisor 由 AEN 服务帐户用户(通常为 wakari 或 aen_admin)运行。
Supervisor 守护进程称为“supervisord”。它在后台运行,很少需要重启。
服务帐户#
AEN 必须由名为 AEN 服务帐户的 Linux 帐户安装和执行。AEN 服务帐户的用户名称为 AEN 功能 ID (NFI)。AEN 服务帐户在 AEN 安装期间创建(如果不存在),并用于运行所有 AEN 服务。
默认 NFI 用户名为 wakari
。另一个常见的选择是 aen_admin
。
警告:服务帐户应仅用于管理任务,不应用于像普通用户那样操作 AEN。如果服务帐户创建或启动项目,则 AEN 包缓存的权限将被重置以匹配服务帐户,这将干扰所有其他用户的 AEN 正常运行。
Anaconda 环境#
每个项目都有一个关联的 conda 环境,其中包含该项目所需的包。当项目首次启动时,AEN 会将名为“default”的默认环境克隆到项目目录中。
每个 AEN 4 版本都包含特定测试版本的 conda 和 AEN 附带的 conda 包。这些经过测试的 conda 包包括 Python、R 和其他包,并且这些经过测试的 conda 包包括 Anaconda 中的所有包。
如果您升级或安装不同版本的 conda 或任何这些 conda 包的不同版本,则新包将不会作为 AEN 4 版本的一部分进行测试。
这些不同的包通常可以工作,特别是当它们是较新版本时,但它们未经测试或保证可以工作,并且在某些情况下,它们可能会破坏产品功能。
您可以使用新的 conda 环境来测试新版本的包,然后再将其安装到现有环境中。
如果使用 conda 更改包的版本破坏了产品功能,您可以使用 conda 将包的版本更改回已知可工作的版本。
有关环境的更多信息,请参阅使用环境。
项目和权限#
AEN 用户主要通过项目与系统交互。
项目与 AEN 环境中的单个数据中心相关联。用户团队包括一个所有者,即创建项目的用户。
项目位于计算节点上的 projectRoot
文件夹中,默认情况下为 /projects
。
项目目录在项目首次启动时创建。start-project
脚本从 /opt/wakari/wakari-compute/lib/node_modules/wakari-compute-launcher/skeleton
克隆它。
项目目录权限为
owner: rwx, user who created the project
group: rwx, group of the owner
other: --x, to allow access to the Public folder
ACL: rwx for any other team members
项目目录中的文件和子目录具有与项目目录相同的权限,但以下情况除外
public 文件夹及其中的所有内容对任何人开放。
任何硬链接到根 anaconda 环境(
/opt/wakari/anaconda
)中的文件都归 root 或 wakari 用户所有。
项目文件和目录权限由 start-project
脚本维护。项目中的所有文件和目录将在项目启动时设置其权限,但 root 或 AEN_SRVC_ACCT 用户(默认情况下为 wakari 或 aen_admin)拥有的文件除外。
未更改为 root 或 AEN_SRVC_ACCT 用户拥有的文件设置的权限,以避免更改 /opt/wakari/anaconda
目录中任何链接文件的权限设置。
注意:不要以 AEN_SRVC_ACCT 用户身份启动项目。权限系统无法正确管理此用户拥有的项目文件。