1工作启动

1.1概述

RStu英格兰vs伊朗让球dio作业启动器为各种RStudio应用程序(如RStudio Server Pro和RStudio Connect)提供了在各种批处理系统(如IBM Spectrum LSF)和容器编制平台(如Kubernetes)中启动进程的能力。英格兰vs伊朗让球RStudio产品与作业启动器集成,允许您利用现有的集群硬件实现最大程度的进程隔离和操作效率。

1.2配置选项

要配置作业启动器,请创建并修改/etc/英格兰vs伊朗让球rstudio/launcher.conf文件。下面列出了配置选项。

服务器选项

在配置文件中应该有一个[server]部分(参见下面的配置示例)。

配置选项 描述 要求(Y / N) 默认值
地址 IPv4或IPv6地址,或Unix域套接字的路径 Y
港口 端口号(0 - 65535) Y(当使用IP地址时)
启用ssl 切换连接使用SSL加密 N 0
证书文件 要呈现给传入连接的公共证书的证书链文件 Y (仅在启用SSL时需要)
certificate-key-file 用于加密的证书私钥文件 Y (仅在启用SSL时需要)
服务器用户 用户运行可执行文件作为。启动器应该以根用户启动,并将其权限降低到此用户以进行正常执行。 N 英格兰vs伊朗让球rstudio-server
authorization-enabled 启用/禁用授权—除测试系统外,所有系统都需要启用/禁用授权。可以是1(启用)或0(禁用) N 1
管理员组 能够查看/控制其他用户系统中所有作业的用户组名。如果与RStudio Pro英格兰vs伊朗让球一起使用,则必须匹配rserver.conf服务器用户组值。 N
线程池的大小 启动程序使用的线程池的大小 N cpu个数* 2
request-timeout-seconds 插件在被认为超时之前处理请求的秒数 N 120
bootstrap-timeout-seconds 插件在被认为失败之前引导的秒数 N 120
max-message-size 插件发送消息的最大允许消息大小(以字节为单位)。它是强烈建议您不要更改此值,但如果遇到限制,它可能会更高。 N 5242880
enable-debug-logging 启用/禁用详细调试日志记录。可以是1(启用)或0(禁用) N 0
scratch-path 启动器及其插件写入临时状态的Scratch目录 N /var/lib/英格兰vs伊朗让球rstudio-launcher
secure-cookie-key-file 安全cookie密钥的位置,用于执行授权/身份验证。它是强烈建议您不要更改此设置。 N /etc/英格兰vs伊朗让球rstudio/secure-cookie-key

集群选项

在每个集群的配置文件中都应该有一个[cluster]部分来连接/插件加载(参见下面的配置示例)。

配置选项 描述 要求(Y / N) 默认值
的名字 集群的友好名称 Y
类型 集群的类型(供用户使用,用于显示) Y 插件类型。可以是当地的Kubernetes
exe 此集群的插件可执行文件的路径 N 如果使用RStudio插英格兰vs伊朗让球件当地的Kubernetes ,这将从的值推断类型.如果使用自定义插件,则必须在此选项中提供其可执行路径。
配置文件 插件配置文件的路径 N 每个插件都有自己的默认配置位置
允许好几组 可以访问此集群的用户组列表,用逗号分隔 N 空(所有组都可以访问)

1.2.1 "示例配置

/etc/英格兰vs伊朗让球rstudio/launcher.conf

[server] address=127.0.0.1 port=5559 server-user=英格兰vs伊朗让球rstudio-server admin-group=devops authorization-enabled=1 threads -pool-size=4 enable-debug-logging=1 [cluster] name=Local type=Local exe=/usr/lib/rstudio-server/bin/rstudio-local-launcher allowed-groups=devs,admins . sh说明

1.2.2作业启动器插件配置

每个特定的集群插件都可以通过自己的配置文件进行额外的配置,有些插件(比如Kubernetes插件)需要额外的配置。由RStudio创建的所有插件的文档可以在以下部分中找到。英格兰vs伊朗让球

1.2.2.1当地的插件

本地作业启动器插件提供了在本地机器(与启动器运行在同一台机器上)上启动可执行程序的能力。它还提供了运行任意PAM概要文件的功能。所有的沙箱功能都是通过rsandbox

本地插件不需要配置,建议不要更改任何默认值。

/etc/英格兰vs伊朗让球rstudio/launcher.local.conf

配置选项 描述 要求(Y / N) 默认值
服务器用户 用户运行可执行文件作为。插件应该以root用户启动,并将其权限降低到此用户进行正常执行。 N 英格兰vs伊朗让球rstudio-server
线程池的大小 插件使用的线程池的大小 N cpu个数* 2
enable-debug-logging 启用/禁用详细调试日志记录。可以是1(启用)或0(禁用) N 0
scratch-path 插件写入临时状态的Scratch目录 N /var/lib/英格兰vs伊朗让球rstudio-launcher
job-expiry-hours 完成的作业从系统中删除之前的小时数 N 24
save-unspecified-output 启用/禁用保存提交作业中未指定的stdout/stderr。这将允许用户查看他们的输出,即使他们没有显式地保存它,以磁盘空间为代价。 N 1
rsandbox-path 的位置rsandbox可执行文件。 N /usr/lib/英格兰vs伊朗让球rstudio-server / bin / rsandbox

1.2.2.2Kubernetes插件

Kubernetes作业启动器插件提供了在Kubernetes集群上启动可执行程序的能力。

建议不要更改来自作业启动器本身的默认值,而只配置必需的字段,如下所述。

/etc/英格兰vs伊朗让球rstudio/launcher.kubernetes.conf

配置选项 描述 要求(Y / N) 默认值
服务器用户 用户运行可执行文件作为。插件应该以root用户启动,并将其权限降低到此用户进行正常执行。 N 英格兰vs伊朗让球rstudio-server
线程池的大小 插件使用的线程池的大小。 N cpu个数* 2
enable-debug-logging 启用/禁用详细调试日志记录。可以是1(启用)或0(禁用)。 N 0
scratch-path 插件写入临时状态的Scratch目录。 N /var/lib/英格兰vs伊朗让球rstudio-launcher
job-expiry-hours 完成的作业从系统中删除之前的小时数。 N 24
profile-config 用户和组概要配置文件的路径(将在下面详细解释)。 N /etc/英格兰vs伊朗让球rstudio/launcher.kubernetes.profiles.conf
api-url Kubernetes API基础URL。这可以是HTTP或HTTPS URL。URL应该达到但不包括/api端点。 Y 例子:https://192.168.99.100:8443
鉴定标识 的认证令牌job-launcher服务帐户。这用于使用Kubernetes API进行身份验证。这应该是base-64编码。更多信息见下文。 Y
kubernetes-namespace 要在其中创建作业的Kubernetes名称空间。的指定的帐户鉴定标识设置必须在这个命名空间中拥有完整的API权限。看到Kubernetes集群需求下面是更多信息。 N 英格兰vs伊朗让球
verify-ssl-certs 连接时是否验证SSL证书api-url.仅适用于通过HTTPS连接。对于生产使用,您应该始终将此设置为true,但为了测试目的可以禁用此设置。 N 1
watch-timeout-seconds 手表调用Kubernetes停止前的秒数。这有助于防止作业状态更新在某些环境中挂起。建议保持默认值,但如果作业状态挂起不明显,则会引发该值,或者通过将该值设置为0关闭该值。 N 300
fetch-limit 用于GET收集请求的Kubernetes Service的每个API调用要请求的最大对象数量。建议只在返回的有效负载遇到大小问题时更改默认值。 N 500

为了检索鉴定标识值,执行以下命令。注意,必须首先创建帐户并给予适当的权限(参见Kubernetes集群需求下文)。

kubectl get secret $KUBERNETES_AUTH_SECRET =$(kubectl get serviceaccount job-英格兰vs伊朗让球launcher——namespace=rstudio -o jsonpath='{.secrets[0].name}') kubectl get secret $KUBERNETES_AUTH_SECRET——namespace=rstudio -o jsonpath='{.data. name}')| base64 -d . Token}
1.2.2.2.1用户和组配置文件

Kubernetes插件还允许您在配置文件中指定用户和组配置文件,类似于RStudio Server Pro的配置文件英格兰vs伊朗让球/etc/英格兰vs伊朗让球rstudio/launcher.kubernetes.profiles.conf中指定的任意文件profile-config在主配置文件内;见上文)。这些都是可选的。

概要文件分为三种不同类型的部分:

全球([*])

每个小组的((@groupname)

每个用户(【用户名】)

下面是一个概要文件示例,说明了每种类型:

/etc/英格兰vs伊朗让球rstudio/launcher.kubernetes.profiles.conf

(*)placement-constraints节点,地区:美国,欧盟地区:default-cpus1default-mem-mb512max-cpus2max-mem-mb1024container-imagesr-session:3.4.2r-session:3.5.0allow-unknown-images0(@英格兰vs伊朗让球rstudio-power-users)default-cpus4default-mem-mb4096max-cpus20.max-mem-mb20480container-imagesr-session:3.4.2r-session:3.5.0r-session:预览allow-unknown-images1(又)max-cpus3.

此配置指定默认情况下,允许用户启动最大1024 MB内存的作业,并且只使用两个不同的R容器。它还指定rstudio-power-users组的成员将被允许使用更多的资源英格兰vs伊朗让球,并且能够查看r-session:预览映像,并且能够运行它们指定的任何映像。

注意,配置文件是从上到下处理的(例如,匹配当前用户的设置在文件的后面出现总是覆盖前面出现的设置)。下表对文件中可用的设置进行了更深入的描述。

/etc/英格兰vs伊朗让球rstudio/launcher.kubernetes.profiles.conf

配置选项 描述 要求(Y / N) 默认值
container-images 用户可以看到和运行的允许图像的逗号分隔的字符串。 N
default-container-image 如果没有指定,则为作业使用的默认容器映像。 N
allow-unknown-images 是否允许用户在作业容器中运行他们想要的映像,或者是否必须使用中指定的映像container-images N 1
placement-constraints 的形式的可用位置约束的逗号分隔的字符串key1: value1, key2: value2,…在哪里:价值部分是可选的,以指示自由格式的字段。有关更多细节,请参见下一节 N
default-cpus 如果作业没有指定,则默认为作业可用的cpu数量。 N 0.0(无限-由Kubernetes管理)
default-mem-mb 如果作业没有指定,则默认为作业可用的RAM MB数。 N 0.0(无限-由Kubernetes管理)
max-cpus 一个作业可使用的最大cpu数。 N 0.0(无限-由Kubernetes管理)
max-mem-mb 作业可使用的RAM的最大MB数。 N 0.0(无限-由Kubernetes管理)
1.2.2.2.2Kubernetes集群需求

为了让Kubernetes插件正确运行,以下关于Kubernetes集群的假设必须成立:

  • 必须启用Kubernetes API,并从运行作业启动器的计算机访问它
  • 方法指定要在其中创建作业的名称空间kubernetes-namespace上面提到的配置(默认为英格兰vs伊朗让球
  • 必须有一个对上述命名空间下的所有端点和API组具有完全API访问权的服务帐户,并且帐户的认证令牌必须通过鉴定标识设置
  • 服务帐户必须能够通过API查看节点列表(可选的,但是如果没有正确配置,会将作业返回的IP地址限制为内部IP,如/节点需要获取节点的外部IP地址)
  • 集群必须使metrics-server插件正常运行和工作,以提供作业资源利用率流

为了使用放置约束,必须在节点上附加与给定配置的放置约束相匹配的标签。例如,如果您有一个带有标签的节点阿兹=美国东部并定义一个放置约束阿兹:美国东部方法指定的传入作业阿兹:美国东部放置约束将被路由到所需的节点。有关Kubernete位置限制的更多信息,请参见在这里

可以运行以下示例脚本来创建job-launcher服务帐户和英格兰vs伊朗让球命名空间,授予服务帐户(也就是启动程序)完全的API访问权限来管理RStudio作业:英格兰vs伊朗让球

Kubectl create clusterrol英格兰vs伊朗让球e job-launcher-admin \——clusterrole=cluster-admin \——group=system:serviceaccounts:rstudio \——namespace=rstudio Kubectl create clusterrole job-launcher-clusters \——verb=get,watch,list \——resource=nodes Kubectl create clusterrole job-launcher-list-clusters \——clusterrole=job-launcher-clusters \——group=system:serviceaccounts:rstudio

1.3运行服务

配置完成后,可以通过执行该命令通过服务运行作业启动器sudo 英格兰vs伊朗让球rstudio-launcher开始.Launcher服务需要根权限来执行身份验证和授权,并且为任何子插件进程提供根权限(根据需要)。在初始设置之后,作业启动程序将降低其对服务器用户的权限(请参阅配置选项的更多信息)。

如果作业启动器服务无法启动并继续运行,则其一个插件失败退出,并且可能没有正确配置。在第一次设置作业启动器时,通常更容易直接在终端中运行作业启动器,这样可以更容易地看到报告的错误,并更快速地测试配置更改。为了从控制台运行,请执行该命令sudo /usr/lib/英格兰vs伊朗让球rstudio-server / rstudio-launcher.如果启动服务仍有问题,请参见日志和故障排除

该服务不会在系统启动时自动配置为启动,如果需要,您必须使用以下命令手动启用该服务:

systemd

systemctl启用rstudi英格兰vs伊朗让球o-launcher.service

System V

chkconfig——添加rst英格兰vs伊朗让球udio-launcher

1.4日志和故障排除

默认情况下,作业启动器及其插件将日志写入系统日志记录器。如果服务启动失败,请检查系统日志,看看是否有任何错误,这应该有助于确定哪里出了问题。通常,错误通常是由于作业启动器或其中一个插件配置错误造成的。在最初设置Launcher时,有时直接从命令行运行它是很有帮助的,而不是通过服务运行它。看到运行服务为更多的信息。

当遇到无法解决的问题时,请确保通过添加这一行为作业启动器启用调试日志记录enable-debug-logging = 1/etc/英格兰vs伊朗让球rstudio/launcher.conf.这将导致Launcher及其所有插件发出调试输出。控件下的调试日志文件中可以看到此调试输出(如果在终端中手动运行作业启动器)/var/lib/英格兰vs伊朗让球rstudio-launcherJob Launcher服务的文件夹,以及插件子目录下特定于插件的日志记录。

1.5负载均衡与监控

作业启动器可以实现负载平衡。建议您使用活动/活动设置以获得最大的吞吐量和可伸缩性。这意味着您应该有多个作业启动器节点指向特定的集群后端,并有一个负载平衡器配置为在它们之间循环通信。

Job Launcher有效负载平衡的能力取决于每个插件的单独设计以及它是否有效支持负载平衡。卡塔尔世界杯欧洲预选赛赛程表例如,Local插件不提供负载平衡功能。因此,Local插件应该只在特定的部署场景中使用,而不应该在大多数情况下使用。然而,其他RStudio插件在负载平衡英格兰vs伊朗让球设置中使用时会正常工作。大多数插件应该卡塔尔世界杯欧洲预选赛赛程表支持负载均衡配置,但必须知道哪些配置不支持。英格兰vs伊朗让球RStudio不能为第三方插件提供负载平衡保证。

/状态作业启动器的端点可用于获取当前运行状况状态和其他连接信息。与其他作业启动器端点不同,此端点不需要授权,可以由任何监视或负载平衡软件查询,以确定特定作业启动器节点的运行状况。的状态字段表示节点是否没有问题(“绿色”),一个或多个插件正在重新启动或不可用(“黄色”),或者所有插件都失败了,服务即将关闭(“红色”)。如果您收到“黄色”或“红色”状态,或者页面加载失败,建议您将流量重新路由到另一个启动器节点。