概念#
系统概览#
Anaconda Enterprise Notebooks 平台由三个主要服务组组成:AEN 服务器、AEN 网关和 AEN 计算,这些被称为“节点”:
Server node—系统的管理前端,用户在此登录,用户账户存储于此,管理员在此管理系统。
Gateway node(s)—一个反向代理,用于验证用户并将他们引导到适合其项目的计算节点。用户在安装后将不会注意到此节点,因为它会自动路由他们。
Compute nodes—项目存储和运行的地方。

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

在组织上,每个AEN安装都有一个服务器实例和一个或多个网关实例。每个计算节点只能连接到一个网关。由一个网关服务的计算节点集合称为数据中心。您可以随时向AEN安装添加数据中心。
示例:一个AEN部署,包含2个数据中心,其中1个网关拥有20台物理计算机的集群,第二个网关拥有30台虚拟机,必须安装并运行以下服务:
1 AEN 服务器实例
2 个 AEN 网关实例
50个AEN计算实例(20 + 30)
节点必须单独配置和维护。
服务器节点#
服务器节点控制登录、账户、管理员、项目创建和管理以及与数据库的接口。它是所有用户进入AEN的主要入口点。服务器节点处理项目设置,并确保用户被发送到正确的项目数据中心。
由于AEN是基于网络的,它在服务器上使用标准的HTTP端口80或HTTPS端口443。
AEN 使用 MongoDB 作为其内部数据持久化工具。它通常与服务器运行在同一主机上,但也可以安装在单独的主机上。
服务器节点使用NGINX来处理面向用户的AEN网页界面。NGINX作为实际服务器网络进程的请求代理,该进程运行在一个高编号的端口上,仅监听本地主机。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 (网页缓存) |
计算节点#
计算节点是诸如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将包的版本更改回已知可用的版本。
有关环境的更多信息,请参阅 Working with environments。
项目和权限#
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
项目目录中的文件和子目录具有与项目目录相同的权限,除了:
公共文件夹及其中的所有内容对任何人开放。
任何硬链接到根anaconda环境的文件——
/opt/wakari/anaconda
——都由root或wakari用户拥有。
项目文件和目录权限由start-project
脚本维护。项目中的所有文件和目录在项目启动时都会设置其权限,除了由root或AEN_SRVC_ACCT用户拥有的文件——默认情况下,这些用户是wakari或aen_admin。
为了避免更改/opt/wakari/anaconda
目录中任何链接文件的权限设置,root或AEN_SRVC_ACCT用户拥有的文件的权限设置不会被更改。
注意:不要以AEN_SRVC_ACCT用户身份启动项目。 权限系统无法正确管理由该用户拥有的项目文件。