概念#

系统概述#

Anaconda Enterprise Notebooks 平台由 3 个主要 服务组:AEN 服务器、AEN 网关和 AEN 计算,其中 称为 “nodes”:

  • 服务器节点 - 管理 前端到用户登录的系统,用户账户所在的系统 存储和管理员管理系统。

  • 网关节点 - 反向代理 对用户进行身份验证并将他们定向到适当的计算 node 的 API 中。之后用户不会注意到此节点 安装,因为它会自动路由它们。

  • 计算节点 - Where projects 被存储和运行。

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

从组织上讲,每个 AEN 安装正好有 1 台服务器 instance 和 1 个或多个网关实例。每个计算节点都可以 仅连接到单个网关。的集合 由单个网关提供的计算节点称为数据 center 的 intent 的 intent 的您可以在任何位置将数据中心添加到 AEN 安装 时间。

示例:具有 2 个数据中心的 AEN 部署,其中 1 个网关 具有一个包含 20 台物理计算机的群集,以及第二个网关 有 30 个虚拟机,必须具有以下服务 已安装并正在运行:

  • 1 个 AEN 服务器实例

  • 2 个 AEN 网关实例

  • 50 个 AEN 计算实例 (20 + 30)

节点必须单独配置和维护。

服务器节点#

服务器节点控制登录、帐户、管理员、项目创建 以及管理以及与数据库的接口。是的 所有用户的 AEN 主入口点。服务器节点 处理项目设置,并确保将用户发送到 正确的 Project Data Center。

由于 AEN 是基于 Web 的,因此它使用标准 HTTP 端口 80 或 服务器上的 HTTPS 端口 443。

AEN 使用 MongoDB 实现其内部数据持久性。是的 通常与服务器运行在同一主机上,但也可以安装在 单独的主机。

服务器节点使用 NGINX 处理面向用户的 AEN Web 接口。NGINX 充当实际服务器的请求代理 web-进程,该进程运行在仅侦听 在 localhost 上。NGINX 还负责静态内容。

Server 安装在/opt/wakari/wakari-server目录。

服务器进程#

当您查看服务器进程的状态时,您可能会看到这些进程 解释如下。

supervisord

details

description

Manage wakari-worker, multiple processes of wk-server.

user

wakari

configuration

/opt/wakari/wakari-server/etc/supervisord.conf

log

/opt/wakari/wakari-server/var/log/supervisord.log

control

service wakari-server

ports

none

wk-server

details

description

Handles user interaction and passing jobs on to the wakari gateway. Access to it is managed by NGINX.

user

wakari

command

/opt/wakari/wakari-server/bin/wk-server

configuration

/opt/wakari/wakari-server/etc/wakari/

control

service wakari-server

logs

/opt/wakari/wakari-server/var/log/wakari/server.log

ports

Not used in versions after 4.1.2 *

* AEN 4.1.2 及更早版本使用端口 5000。此端口仅在 localhost 上使用。 更高版本的 AEN 改用 Unix 套接字。Unix 套接字路径为:unix:/opt/wakari/wakari-server/var/run/wakari-server.sock

wakari-worker

details

description

Asynchronously executes tasks from wk-server.

user

wakari

logs

/opt/wakari/wakari-server/var/log/wakari/worker.log

control

service wakari-server

nginx

details

description

Serves static files and acts as proxy for all other requests passed to wk-server process. *

user

nginx

configuration

/etc/nginx/nginx.conf /opt/wakari/wakari-server/etc/conf.d/www.enterprise.conf

logs

/var/log/nginx/woc.log /var/log/nginx/woc-error.log

control

service nginx status

port

80

* 在 AEN 4.1.2 及更早版本中,wk-server 进程在 仅限 localhost 的 S Package。在更高版本的 AEN 中,wk-server 进程使用 Unix 套接字路径unix:/opt/wakari/wakari-server/var/run/wakari-server.sock.

NGINX 至少运行两个进程:

  • 以 root 用户身份运行的主进程。

  • 以 nginx 用户身份运行的工作进程。

网关节点#

网关节点用作给定组 计算节点。它充当代理服务并管理 将 URL 和端口授权和映射到 在这些节点上运行。网关节点提供一致的 用户的统一界面。

注意:网关也可以称为数据中心 ,因为它充当计算节点集合的代理。

您可以在分层横向扩展中的每个数据中心中放置一个网关 时尚。

AEN 网关安装在/opt/wakari/wakari-gateway目录。

网关进程#

当您查看服务器进程的状态时,您可能会看到这些进程 解释如下。

supervisord

details

description

Manages the wk-gateway process.

user

wakari

configuration

/opt/wakari/wakari-gateway/etc/supervisord.conf

log

/opt/wakari/wakari-gateway/var/log/supervisord.log

control

service wakari-gateway

ports

none

wakari-gateway

details

description

Passes requests from the AEN Server to the Compute nodes.

user

wakari

configuration

/opt/wakari/wakari-gateway/etc/wakari/wk-gateway-config.json

logs

/opt/wakari/wakari-gateway/var/log/wakari/gateway.application.log /opt/wakari/wakari-gateway/var/log/wakari/gateway.log

working dir

/ (root)

port

8089 (webcache)

计算节点#

计算节点是 Jupyter 等应用程序的地方 Notebook 和 Workbench 实际运行。他们也是主人 用户在使用“终端”App 或使用 SSH 时看到的 以访问节点。计算节点包含所有用户可见的 程序。

计算节点只需要与网关通信,因此它们 可以通过防火墙完全隔离。

每个项目都与一个或多个计算节点相关联,这些节点 是单个数据中心的一部分。

AEN 计算节点安装在/opt/wakari/wakari-compute目录。

AEN 系统中的每个计算节点都需要一个计算启动器 service 来调解对服务器和网关的访问。

计算进程#

当您查看服务器进程的状态时,您可能会看到这些进程 解释如下。

supervisord

details

description

Manages the wk-compute process.

user

wakari

configuration

/opt/wakari/wakari-compute/etc/supervisord.conf

log

/opt/wakari/wakari-compute/var/log/supervisord.log

control

service wakari-compute

working dir

/opt/wakari/wakari-compute/etc

ports

none

wk-compute

details

description

Launches compute processes.

user

wakari

configuration

/opt/wakari/wakari-compute/etc/wakari/wk-compute-launcher-config.json /opt/wakari/wakari-compute/etc/wakari/scripts/config.json

logs

/opt/wakari/wakari-compute/var/log/wakari/compute-launcher.application.log /opt/wakari/wakari-compute/var/log/wakari/compute-launcher.log

working dir

/ (root)

control

service wakari-compute

port

5002 (rfe)

Wk-compute 会加载以下每个配置文件,在 此订单:

  • /etc/wakari/config.json.

  • /etc/wakari/compute-launcher-config.json.

  • ./compute-launcher-config.json.

  • -c选择。

如果在多个文件中指定了某个选项,则最后一个文件 遇到优先。

主管和主管#

AEN 使用一个名为“Supervisor”的过程控制系统来运行其 服务业。主管由 AEN 服务帐户用户 通常是 wakari 或 aen_admin。

Supervisor 守护进程称为 “supervisord”。它运行 在后台运行,很少需要重新启动。

服务帐户#

AEN 必须由名为 AEN 服务帐户。AEN 服务帐户的用户名为 称为 AEN 功能 ID (NFI)。AEN 服务帐户是 在 AEN 安装期间创建(如果不存在),并且是 用于运行所有 AEN 服务。

默认 NFI 用户名为wakari.另一个受欢迎的选择是aen_admin.

警告:服务帐户只能用于管理任务,并且 不应像普通用户那样用于作 AEN。如果 服务帐户创建或启动项目,以及 AEN 包的权限 cache 将被重置以匹配服务帐户,这将干扰 所有其他用户的 AEN 的正常运行。

Anaconda 环境#

每个项目都有一个关联的 conda 环境,其中包含 该项目所需的软件包。当项目首次 started,AEN 克隆名称为 “default” 的默认环境 到项目目录中。

AEN 4 的每个版本都包含经过特定测试的 conda 和 conda 版本 AEN 附带的软件包。这些经过测试的 conda 软件包包括 Python、R 和 其他软件包,这些经过测试的 Conda 软件包包括 Anaconda。

如果您升级或安装不同版本的 conda 或不同版本的 这些 conda 软件包中的任何一个,新软件包都不会作为一部分进行测试 的 AEN 4 版本。

这些不同的软件包通常会起作用,特别是如果它们是较新的软件包 版本,但它们没有经过测试或保证工作,在某些情况下它们 可能会破坏产品功能。

您可以使用新的 conda 环境来测试软件包的新版本 在现有环境中安装它。

如果使用 conda 更改包的版本会破坏产品功能, 您可以使用 conda 将包的版本更改回版本 已知有效。

有关环境的更多信息,请参阅使用环境

项目和权限#

AEN 用户主要通过项目与系统交互。

项目与 AEN 环境。用户团队包括一个所有者,即 创建项目的用户。

项目位于projectRoot文件夹 node - 默认情况下,/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脚本。所有文件和目录位于 项目将在项目为 started,但 root 或 AEN_SRVC_ACCT 拥有的文件除外 用户 - 默认情况下,为 Wakari 或 aen_admin。

为 root 或 AEN_SRVC_ACCT 拥有的文件设置的权限 user 的 intent 值以避免更改权限设置 中/opt/wakari/anaconda目录。

注意:请勿以 AEN_SRVC_ACCT 用户身份启动项目。 权限系统无法正确管理项目文件 由此用户拥有。