You can convert agent nodes to public or private for an existing DC/OS cluster.
These steps must be performed on a machine that is configured as a DC/OS node. Any tasks that are running on the node will be terminated during this conversion process.
- Install DC/OS using the custom installation method.
- Deploy at least one master and one private agent node.
- Retrieve the archived DC/OS installer file (
dcos-install.tar) from your installation.
- Install the CLI JSON processor jq.
- Install and configure SSH. This is required to access nodes in the DC/OS cluster.
Determine the node type
You can determine the node type by running this command from the DC/OS CLI.
Run this command to determine how many private agents are there in the cluster. A result of
0indicates that there are no private agents.
dcos node --json | jq --raw-output '. | select(.reserved_resources.slave_public == null) | .id' | wc -l
Run this command to determine how many public agents are there in the cluster. A result of
0indicates that there are no public agents.
dcos node --json | jq --raw-output '. | select(.reserved_resources.slave_public != null) | .id' | wc -l
Uninstall the DC/OS private agent software
Uninstall DC/OS on the agent node.
sudo /opt/mesosphere/bin/dcos-shell sudo -i pkgpanda uninstall sudo systemctl stop dcos-mesos-slave sudo systemctl disable dcos-mesos-slave
Remove the old directory structures on the agent node.
sudo rm -rf /etc/mesosphere /opt/mesosphere /var/lib/mesos /var/lib/dcos
Restart the machine.
Install DC/OS and convert agent node
Copy the archived DC/OS installer file (
dcos-install.tar) to the node that that is being converted. This archive is created during the GUI or CLI installation method.
Copy the files to your agent node. For example, you can use Secure Copy (scp) to copy
dcos-install.tarto your home directory:
scp ~/dcos-install.tar $username@$node-ip:~/dcos-install.tar
SSH to the machine:
Create a directory for the installer files:
sudo mkdir -p /opt/dcos_install_tmp
sudo tar xf dcos-install.tar -C /opt/dcos_install_tmp
Run this command to install DC/OS on your agent nodes. You must designate your agent nodes as public or private.
Private agent nodes:
sudo bash /opt/dcos_install_tmp/dcos_install.sh slave
Public agent nodes:
sudo bash /opt/dcos_install_tmp/dcos_install.sh slave_public