Webportal提供了一些基本的管理功能。 如果您以管理员身份登录,则您可以在左侧栏上找到几个有关管理的按钮,如下图所示:
这些功能大多数都很容易理解。 在本节中,我们将快速介绍它们。
硬件页面显示集群中每个节点的CPU,GPU,内存,磁盘和网络的利用率。 不同的利用率以不同的颜色显示。 如果将鼠标悬停在这些彩色圆圈上,则页面会显示确切的利用率百分比。
服务页面显示了Kubernetes中部署的OpenPAI服务。 这些服务是守护程序集,部署集或有状态集。
您可以在用户管理页面创建,修改和删除用户。 用户有两种类型:非管理员用户和管理员用户。 您可以选择要创建的类型。 仅在以基础认证模式(基础认证模式为默认的认证模式)部署OpenPAI时才显示此页面。 如果您的集群使用AAD 来管理用户,则此页面将不可用。
主页上为管理员提供了abnormal jobs部分。 如果任务运行超过5天或GPU使用率低于10%,则将其视为异常任务。 如果需要,您可以选择停止一些异常任务。
Webportal上有一个k8s仪表板的快捷方式,如下图所示。
要使用它,您首先应该为OpenPAI设置https访问(使用http://<ip>会使访问无效),在本文档末尾处我们详细介绍了如何设置https。然后,在dev box机器上,按照以下步骤操作:
步骤 1. 将以下Yaml文本另存为admin-user.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kube-system步骤 2. 运行 kubectl apply -f admin-user.yaml
步骤 3. 运行 kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')。 它将会打印出用来访问dashboard的token。
一般而言,PAI服务是指运行在Kubernetes上的PAI系统创建的守护程序集,部署或状态集。您可以在k8s仪表板和服务页面上找到它们。例如,webportal是提供前端页面的PAI服务,而rest-server是用于后端API的另一个服务。这些服务都是可配置的。如果您遵循安装指南,则可以在dev box机器上的文件夹~/pai-deploy/cluster-cfg中找到两个文件:layout.yaml和services-configuration.yaml。这两个文件是默认的服务配置。
paictl是一个CLI工具,可帮助您管理集群配置和PAI服务。要使用它,我们建议您利用我们的dev box Docker 镜像来避免与环境相关的问题。首先,登录dev box机器,通过以下方式启动dev box容器。
sudo docker run -itd \
-e COLUMNS=$COLUMNS -e LINES=$LINES -e TERM=$TERM \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ${HOME}/pai-deploy/cluster-cfg:/cluster-configuration \
-v ${HOME}/pai-deploy/kube:/root/.kube \
--pid=host \
--privileged=true \
--net=host \
--name=dev-box \
openpai/dev-box:<openpai version tag>您应将<openpai version tag>替换为和您当前的OpenPAI相符的版本,例如v1.0.0。在命令中,我们将${HOME}/pai-deploy/kube挂载到容器中的/root/.kube中,因此容器具有正确的配置文件来访问Kubernetes。另外,我们在容器中将${HOME}/pai-deploy/cluster-cfg(由安装创建的配置)挂载到/cluster-configuration中。
要使用paictl,请通过以下方式进入容器:
sudo docker exec -it dev-box bash然后,转到文件夹/pai,尝试检查您的集群ID:
cd /pai
./paictl.py config get-id如果一切正常,那么该命令会显示您的集群ID。
以下是paictl的一些基本用法示例:
# 获取集群ID
./paictl.py config get-id
# 将集群中正在使用的设置拉取到一个文件夹中
# 集群设置包含两个文件: layout.yaml 和 services-configuration.yaml
# 如果 <config-folder>中已经有这两个文件了,老的文件将会被覆盖
./paictl.py config pull -o <config-folder>
# 将文件夹中的配置上传到集群内
# 只有被成功上传的配置才会被应用
./paictl.py config push -p <config-folder> -m service
# 停止所有PAI服务
./paictl.py service stop
# 启动所有PAI服务
./paictl.py service start
# 停止某些PAI服务
./paictl.py service stop -n <service-name-1> <service-name-2>
# 启动某些PAI服务
./paictl.py service start -n <service-name-1> <service-name-2>如果要更改某些服务的配置,请按照服务停止、上传配置、服务启动的步骤进行。
例如,如果要自定义Webportal,则应修改services-configuration.yaml中的webportal部分。 然后使用以下命令来上传配置并重新启动Webportal:
./paictl.py service stop -n webportal
./paictl.py config push -p <config-folder> -m service
./paictl.py service start -n webportal另一个示例是重新启动整个集群:
# restart cluster
./paictl.py service stop
./paictl.py service start您可以使用exit离开dev-box容器,并使用sudo docker exec -it dev-box bash重新进入它。如果您不再需要它,请使用sudo docker stop dev-box和sudo docker rm dev-box删除Docker容器。
为pylon配置https证书您需要先获得数字证书,然后将数字证书相关文件保存到dev-box容器中,在dev-box内您可以找到services-configuration.yaml这个配置文件,然后您需要把已经保存的数字证书的文件路径配置到services-configuration.yaml文件中。您可以选择自签名证书和由CA机构颁发的证书,接下来将首先演示自签名证书的配置过程。两种证书的配置过程是近似的。
要使用paictl,请通过以下方式进入容器:
sudo docker exec -it dev-box bash当您进入容器后,您需要创建一个文件夹,并在此文件夹下生成自签名证书,我们可以在home文件夹下创建ssl文件夹。
mkdir /home/ssl
cd /home/ssl接下来输入的命令多次会用到FileName参数,您可以选择合适的文件名来替换FileName。
openssl genrsa -des3 -out FileName.key 1024这步会需要您填一个密码。
SUBJECT="/C=US/ST=Washington/CN=FileName"
openssl req -new -subj $SUBJECT -key FileName.key -out FileName.csrmv FileName.key FileName.origin.key
openssl rsa -in FileName.origin.key -out FileName.key
openssl x509 -req -days 3650 -in FileName.csr -signkey FileName.key -out FileName.crt在当前目录下,您将会发现有4个文件
修改您的services-configuration.yaml。 如果您还不知道如何配置services-configuration.yaml,请参考这个文档。请注意这里的master_ip就是您master machine的IP,而不是您dev box machine的IP。请按照以下格式来配置yaml文件:
pylon:
port: 80
uri: "http://master_ip:80"
ssl:
crt_name: xxxxxx
crt_path: /path/to/xxxxxx
key_name: yyyyyy
key_path: /path/to/yyyyyy
在我们刚才给出的样例中,配置文件内容应当为:
pylon:
port: 80
uri: "http://master_ip:80"
ssl:
crt_name: FileName.crt
crt_path: /home/ssl/FileName.crt
key_name: FileName.key
key_path: /home/ssl/FileName.key
到此,您已经配好了自签名证书,重启pylon services,可以通过https来访问OpenPai。
要配置CA证书,您首先需要申请并导出您的CA证书,您最终会得到一个crt文件和一个key文件,然后将这两个文件保存到dev-box容器中,比如存储到dev-box容器的/home/ssl文件夹下。如图所示:
这一步您可以按照配置自签名证书过程中的第7步进行配置,更改FileName字段即可。例如:
pylon:
port: 80
uri: "http://master_ip:80"
ssl:
crt_name: n32.openpai.org_chain.crt
crt_path: /home/ssl/n32.openpai.org_chain.crt
key_name: n32.openpai.org_key.key
key_path: /home/ssl/n32.openpai.org_key.key







