mirror of
https://github.com/clearml/clearml-docs
synced 2025-05-02 12:04:40 +00:00
Add SSH Session UI application (#933)
This commit is contained in:
parent
789c177c84
commit
7b0fae72f3
BIN
docs/img/apps_ssh_session_dashboard.png
Normal file
BIN
docs/img/apps_ssh_session_dashboard.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 181 KiB |
BIN
docs/img/apps_ssh_session_wizard.png
Normal file
BIN
docs/img/apps_ssh_session_wizard.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
@ -20,6 +20,8 @@ ClearML provides the following applications:
|
||||
* [**Task Scheduler**](apps_task_scheduler.md) - Schedule tasks for one-shot and/or periodic execution at specified times (available under ClearML Enterprise Plan)
|
||||
* [**Trigger Manager**](apps_trigger_manager.md) - Define tasks to be run when predefined events occur (available under ClearML Enterprise Plan)
|
||||
* **AI Dev**: Applications for deploying AI development environments on remote machines.
|
||||
* [**SSH Session**](apps_ssh_session.md) - Launch a full development environment on a remote machine with a
|
||||
detached interactive SSH session (available under ClearML Enterprise Plan)
|
||||
* [**Jupyter Lab**](apps_jupyter_lab.md) - Launch a Jupyter Lab session on a remote machine (available under ClearML Enterprise Plan)
|
||||
* [**VS Code**](apps_vscode.md) - Launch a VS Code session on a remote machine (available under ClearML Enterprise Plan)
|
||||
* **UI Dev**: Applications for deploying user interfaces for models.
|
||||
|
95
docs/webapp/applications/apps_ssh_session.md
Normal file
95
docs/webapp/applications/apps_ssh_session.md
Normal file
@ -0,0 +1,95 @@
|
||||
---
|
||||
title: SSH Session
|
||||
---
|
||||
|
||||
:::important Enterprise Feature
|
||||
The SSH Session application is available under the ClearML Enterprise plan.
|
||||
:::
|
||||
|
||||
The SSH Session UI application allows you to launch a full development environment on a remote machine complete with
|
||||
a detached interactive SSH session.
|
||||
|
||||
The Session app offers workspace management features, allowing you to store, sync, and restore interactive workspaces
|
||||
across sessions. This ensures that all your work is preserved and can be easily accessed in future sessions.
|
||||
|
||||
The SSH Session is set up using a [ClearML Agent](../../clearml_agent.md). When configuring an app instance, select a
|
||||
queue, and the agent servicing that queue will set up the remote environment and SSH session. When the environment setup is
|
||||
complete, the app instance dashboard displays SSH connection parameters and the command line to connect to the session.
|
||||
|
||||
The application monitors the session's activity and shuts down if it is inactive for a specified maximum idle time.
|
||||
|
||||
Once you have launched an app instance, you can view the following information in its dashboard:
|
||||
|
||||
* App status indicator
|
||||
* <img src="/docs/latest/icons/ico-ssh-loading.svg" alt="Active instance" className="icon size-md space-sm" /> - Remote SSH session is setting up
|
||||
* <img src="/docs/latest/icons/ico-ssh-active.svg" alt="Loading instance" className="icon size-md space-sm" /> - Remote SSH session is active
|
||||
* <img src="/docs/latest/icons/ico-ssh-idle.svg" alt="Idle instance" className="icon size-md space-sm" /> - Remote SSH session is idle
|
||||
* <img src="/docs/latest/icons/ico-ssh-stopped.svg" alt="Stopped instance" className="icon size-md space-sm" /> - Remote SSH session is stopped
|
||||
* Idle time
|
||||
* Restored workspace - If a previous session’s workspace was restored, this will display its session ID
|
||||
* Current session ID
|
||||
* SSH:Host:Port - The hostname and port for the SSH connection
|
||||
* User - SSH username for the interactive session
|
||||
* Password - SSH password for the interactive session
|
||||
* Connect Command - The command line to initiate an SSH connection to the remote environment
|
||||
* Remote environment's resource metrics over time:
|
||||
* CPU usage
|
||||
* Network throughput
|
||||
* Disk performance
|
||||
* Memory performance
|
||||
* GPU utilization
|
||||
* GPU memory usage
|
||||
* Console - The console log shows the instance's activity, including session setup progress and SSH server status changes
|
||||
|
||||

|
||||
|
||||
## SSH Session Instance Configuration
|
||||
|
||||
When configuring a new SSH Session instance, you can fill in the required parameters or reuse the configuration of
|
||||
a previously launched instance.
|
||||
|
||||
Launch an app instance with the configuration of a previously launched instance using one of the following options:
|
||||
* Cloning a previously launched app instance will open the instance launch form with the original instance's
|
||||
configuration prefilled.
|
||||
* Importing an app configuration file. You can export the configuration of a previously launched instance as a JSON file
|
||||
when viewing its configuration.
|
||||
|
||||
The prefilled instance launch form can be edited before starting the new app instance.
|
||||
|
||||
To configure a new app instance, click `Launch New` <img src="/docs/latest/icons/ico-add.svg" alt="Add new" className="icon size-md space-sm" />
|
||||
to open the app's instance launch form.
|
||||
|
||||
|
||||
### Configuration Options
|
||||
* Import Configuration - Import an app instance configuration file. This will fill the instance launch form with the
|
||||
values from the file, which can be modified before launching the app instance
|
||||
* Git - The details for a git repository to optionally clone into your remote environment:
|
||||
* Repository
|
||||
* Branch
|
||||
* Commit
|
||||
* Docker - Input details to run the session in Docker container
|
||||
* Image - Docker image to launch
|
||||
* Docker Arguments - Additional arguments for the Docker image
|
||||
* Init Script - Bash script that is executed upon container boot (comments are supported only at the beginning of the
|
||||
line)
|
||||
* Extra Packages - Specify Python packages to install when setting up the remote environment
|
||||
* Persistent Workspace Path - Specify your workspace root directory, it will be automatically stored when the session is
|
||||
closed and restored into a new instance when the session app instance is cloned (example: `~/workspace`)
|
||||
* Queue - The [ClearML Queue](../../fundamentals/agents_and_queues.md#what-is-a-queue) to which the SSH Session app
|
||||
instance task will be enqueued (make sure an agent is assigned to that queue)
|
||||
* Maximum idle time (in hours) - Maximum idle time after which the app instance will shut down
|
||||
* Interactive Session Name - Name your current interactive session
|
||||
* Advanced Options
|
||||
* Interactive Session Project - The project in which the interactive session is created. If left empty, the default
|
||||
project `Interactive Session` is used
|
||||
* Interactive Session Tags - Comma separated list of tags to add to your interactive session
|
||||
* Restore Interactive Workspace ID - Input a previously run interactive session ID to restore its workspace
|
||||
* Use DropBear SSH server instead of OpenSSH server - Use DropBear SSH server instead of OpenSSH server. Required if
|
||||
not running as root inside container
|
||||
* Idle Network Threshold (MB) - Network throughput under which the session will be considered idle
|
||||
* Idle CPU Threshold (%) - CPU utilization under which the session will be considered idle
|
||||
* Idle GPU Threshold (%) - GPU utilization under which the session will be considered idle
|
||||
* Export Configuration - Export the app instance configuration as a JSON file, which you can later import to create a
|
||||
new instance with the same configuration
|
||||
|
||||

|
@ -157,6 +157,7 @@ module.exports = {
|
||||
},
|
||||
{
|
||||
"AI Dev": [
|
||||
'webapp/applications/apps_ssh_session',
|
||||
'webapp/applications/apps_jupyter_lab',
|
||||
'webapp/applications/apps_vscode',
|
||||
]
|
||||
|
15
static/icons/ico-ssh-active.svg
Normal file
15
static/icons/ico-ssh-active.svg
Normal file
@ -0,0 +1,15 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
|
||||
<g>
|
||||
<rect x="10" y="13" width="44" height="38" rx="4" ry="4" fill="#acbde5"/>
|
||||
<path d="M12,23h40v24c0,1.1-.9,2-2,2H14c-1.1,0-2-.9-2-2v-24h0Z" fill="#5f739b"/>
|
||||
<path d="M12,15h40v4c0,1.1-.9,2-2,2H14c-1.1,0-2-.9-2-2v-4h0Z" transform="translate(64 36) rotate(180)" fill="#334766"/>
|
||||
<path d="M21,44.05c-.38,0-.77-.15-1.06-.44-.59-.59-.59-1.54,0-2.12l3.13-3.13-3.1-3.1c-.59-.59-.59-1.54,0-2.12s1.54-.59,2.12,0l4.16,4.16c.28.28.44.66.44,1.06s-.16.78-.44,1.06l-4.19,4.19c-.29.29-.68.44-1.06.44Z" fill="#fff"/>
|
||||
<path d="M34.5,43.5h-5c-.83,0-1.5-.67-1.5-1.5s.67-1.5,1.5-1.5h5c.83,0,1.5.67,1.5,1.5s-.67,1.5-1.5,1.5Z" fill="#fff"/>
|
||||
<circle cx="49" cy="18" r="1.5" fill="#78ea6c"/>
|
||||
<circle cx="44" cy="18" r="1.5" fill="#eaea11"/>
|
||||
<circle cx="39" cy="18" r="1.5" fill="#f45b5b"/>
|
||||
</g>
|
||||
<circle cx="49" cy="49" r="12" fill="#0d0e15"/>
|
||||
<path d="m49,39c-5.52,0-10,4.48-10,10s4.48,10,10,10,10-4.48,10-10-4.48-10-10-10Z" fill="#21b553"/>
|
||||
<path d="m52.42,48.23l-4.06-3.38c-.65-.54-1.64-.08-1.64.77v6.76c0,.85.99,1.31,1.64.77l4.06-3.38c.48-.4.48-1.14,0-1.54Z" fill="#fff"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
15
static/icons/ico-ssh-idle.svg
Normal file
15
static/icons/ico-ssh-idle.svg
Normal file
@ -0,0 +1,15 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
|
||||
<g>
|
||||
<rect x="10" y="13" width="44" height="38" rx="4" ry="4" fill="#acbde5"/>
|
||||
<path d="M12,23h40v24c0,1.1-.9,2-2,2H14c-1.1,0-2-.9-2-2v-24h0Z" fill="#5f739b"/>
|
||||
<path d="M12,15h40v4c0,1.1-.9,2-2,2H14c-1.1,0-2-.9-2-2v-4h0Z" transform="translate(64 36) rotate(180)" fill="#334766"/>
|
||||
<path d="M21,44.05c-.38,0-.77-.15-1.06-.44-.59-.59-.59-1.54,0-2.12l3.13-3.13-3.1-3.1c-.59-.59-.59-1.54,0-2.12s1.54-.59,2.12,0l4.16,4.16c.28.28.44.66.44,1.06s-.16.78-.44,1.06l-4.19,4.19c-.29.29-.68.44-1.06.44Z" fill="#fff"/>
|
||||
<path d="M34.5,43.5h-5c-.83,0-1.5-.67-1.5-1.5s.67-1.5,1.5-1.5h5c.83,0,1.5.67,1.5,1.5s-.67,1.5-1.5,1.5Z" fill="#fff"/>
|
||||
<circle cx="49" cy="18" r="1.5" fill="#78ea6c"/>
|
||||
<circle cx="44" cy="18" r="1.5" fill="#eaea11"/>
|
||||
<circle cx="39" cy="18" r="1.5" fill="#f45b5b"/>
|
||||
</g>
|
||||
<circle cx="49" cy="49" r="12" fill="#0d0e15"/>
|
||||
<path d="m49,39c-5.52,0-10,4.48-10,10s4.48,10,10,10,10-4.48,10-10-4.48-10-10-10Z" fill="#50beff"/>
|
||||
<path id="idle-s" d="m50.44,49.24v-4.48c0-.67-.55-1.22-1.22-1.22s-1.22.55-1.22,1.22v4.88s.01.04.01.05c-.01.33.1.66.35.91l4.31,3.61c.12.09.34.25.56.25.43,0,.77-.35.77-.77,0-.21-.1-.39-.23-.55l-3.33-3.91Z" fill="#fff"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
32
static/icons/ico-ssh-loading.svg
Normal file
32
static/icons/ico-ssh-loading.svg
Normal file
@ -0,0 +1,32 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
|
||||
<style>
|
||||
@keyframes anim {
|
||||
from {
|
||||
r: 2px;
|
||||
}
|
||||
to {
|
||||
r: 6px;
|
||||
}
|
||||
to {
|
||||
r: 8px;
|
||||
}
|
||||
}
|
||||
.circle {
|
||||
animation-name: anim;
|
||||
animation-duration: 1.2s;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
</style>
|
||||
<g>
|
||||
<rect x="10" y="13" width="44" height="38" rx="4" ry="4" fill="#acbde5"/>
|
||||
<path d="M12,23h40v24c0,1.1-.9,2-2,2H14c-1.1,0-2-.9-2-2v-24h0Z" fill="#5f739b"/>
|
||||
<path d="M12,15h40v4c0,1.1-.9,2-2,2H14c-1.1,0-2-.9-2-2v-4h0Z" transform="translate(64 36) rotate(180)" fill="#334766"/>
|
||||
<path d="M21,44.05c-.38,0-.77-.15-1.06-.44-.59-.59-.59-1.54,0-2.12l3.13-3.13-3.1-3.1c-.59-.59-.59-1.54,0-2.12s1.54-.59,2.12,0l4.16,4.16c.28.28.44.66.44,1.06s-.16.78-.44,1.06l-4.19,4.19c-.29.29-.68.44-1.06.44Z" fill="#fff"/>
|
||||
<path d="M34.5,43.5h-5c-.83,0-1.5-.67-1.5-1.5s.67-1.5,1.5-1.5h5c.83,0,1.5.67,1.5,1.5s-.67,1.5-1.5,1.5Z" fill="#fff"/>
|
||||
<circle cx="49" cy="18" r="1.5" fill="#78ea6c"/>
|
||||
<circle cx="44" cy="18" r="1.5" fill="#eaea11"/>
|
||||
<circle cx="39" cy="18" r="1.5" fill="#f45b5b"/>
|
||||
</g>
|
||||
<circle cx="49" cy="49" r="12" fill="#0d0e15"/>
|
||||
<circle class="circle" cx="16" cy="16" r="8" fill="#D3FF00" style="transform: translate(33px, 33px)" />
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
15
static/icons/ico-ssh-stopped.svg
Normal file
15
static/icons/ico-ssh-stopped.svg
Normal file
@ -0,0 +1,15 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
|
||||
<g>
|
||||
<rect x="10" y="13" width="44" height="38" rx="4" ry="4" fill="#acbde5"/>
|
||||
<path d="M12,23h40v24c0,1.1-.9,2-2,2H14c-1.1,0-2-.9-2-2v-24h0Z" fill="#5f739b"/>
|
||||
<path d="M12,15h40v4c0,1.1-.9,2-2,2H14c-1.1,0-2-.9-2-2v-4h0Z" transform="translate(64 36) rotate(180)" fill="#334766"/>
|
||||
<path d="M21,44.05c-.38,0-.77-.15-1.06-.44-.59-.59-.59-1.54,0-2.12l3.13-3.13-3.1-3.1c-.59-.59-.59-1.54,0-2.12s1.54-.59,2.12,0l4.16,4.16c.28.28.44.66.44,1.06s-.16.78-.44,1.06l-4.19,4.19c-.29.29-.68.44-1.06.44Z" fill="#fff"/>
|
||||
<path d="M34.5,43.5h-5c-.83,0-1.5-.67-1.5-1.5s.67-1.5,1.5-1.5h5c.83,0,1.5.67,1.5,1.5s-.67,1.5-1.5,1.5Z" fill="#fff"/>
|
||||
<circle cx="49" cy="18" r="1.5" fill="#78ea6c"/>
|
||||
<circle cx="44" cy="18" r="1.5" fill="#eaea11"/>
|
||||
<circle cx="39" cy="18" r="1.5" fill="#f45b5b"/>
|
||||
</g>
|
||||
<circle cx="49" cy="49" r="12" fill="#0d0e15"/>
|
||||
<path d="M49 39C43.48 39 39 43.48 39 49C39 54.52 43.48 59 49 59C54.52 59 59 54.52 59 49C59 43.48 54.52 39 49 39Z" fill="#50BEFF"/>
|
||||
<rect x="45" y="45" width="8" height="8" rx="1" fill="white"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
Loading…
Reference in New Issue
Block a user