VMware Admiral is a container management platform with a GUI to help deploy and manage containers and provide life-cycle management. Admiral is highly scalable and has a small footprint. Some of the key features of Admiral are listed below. Note: Admiral is currently in beta so it’s not officially supported. Use at your own risk until we release a fully supported version.
- Rule-based resource Management – container placement
- Live Status Updates
- Template Management
To deploy admiral, you can simply run the following command from a Photon OS VM. Admiral will run as a container pulled from the docker registry. We will be exposing port 8282 to the photon VM to access the Admiral portal. Once the container is deployed, navigate to https://PhotonOSIP:8282
docker run -d -p 8282:8282 --name admiral vmware/admiral
Let’s add a couple of our VCH hosts. Click on Add host and add the IP Address. Click on Login Credentials, add a new login, and click the certificate radio button. The certificates are in the same directory where you extracted the VIC engine and deployed a VCH. They are named server-cert.pem, and server-key.pem and they are in a folder with the name you provided the VCH during deploy. I will be authenticating to a VCH so I need to provide the certs, otherwise if you are authenticating to a PhotonOS VM or other Docker host you can enter root credentials via user name and password. Note: If using a PhotonOS VM make sure you enable the docker remote API.
Select a placement zone, I will just use the default zone, and then click on verify. You should see “Verified successfully!” at the top. Once complete, click Add.
Feel free to add multiple VCH machines, and or Docker VMs. The dashboard for the Hosts screen shows the IP address, Containers, and CPU / Memory usage.
Managing and Deploying Templates
Under Templates, you can quickly provision any of the popular templates or import templates. It shows 15 popular, but you can search for anything that is “registry.hub.docker.com” I ran a quick search for nginx and found 25 templates. Let’s test the deployment of an nginx container. Click on the arrow next to Provision and select Enter Additional Info.
There are multiple tabs and configuration for each of the tabs. If you have similar deployments, you can save the template at the bottom right. Let’s go through a few of the options. Under Basic, we provide a name, any commands to execute after the container starts, and any container dependent services, like a database for WordPress.
Under the Network tab, provide port bindings (host and container port), hostname, and the Network Mode (Bridge, None, or Host).
I will skip the rest of the tabs, but here are some options you can configure.
- Storage – Volumes to mount, Working diretory
- Policy – Cluster Size, Restart Policy, Max Restarts, CPU shares, Memory Limit and Swap, Affinity Constraints
- Environment – Environment Variables and Custom Properties
- Health Config – HTTP, TCP, Command
- Log Config – json, splunk, syslog, etc
Click Provision when you ready. The provision Status will show up on the right.
Once it completes, we can access the Docker Host that we placed the container via the port specified.
Let’s try to deploy a container via our Harbor registry created in Part 3 – Deploying VCH with Harbor. Click on Manage Registry at the top right, click add, then specify the IP, Name, and login credentials.
Next, search for an image that has been pushed to your registry, I pushed hello-world into harborproject1 previously.
The resources tab contains 3 sub-tabs – Containers, Applications, and Networks. There isn’t much to see in my lab under applications or networks, but the containers tab dashboard will show all containers on your docker hosts, the status, the creation date, ports , and any commands executed on startup. If we hover over the container, and click the Eye icon, we can get more information about the container including CPU and Memory usage, Direct links to the container (For WordPress or other access) the logs, and more!
I didn’t realize how powerful Admiral truly was until I started playing around with it. I can definitely see this being of huge benefit to out customers who are using vSphere Integrated Containers and looking for a nice interface for container management and development; not to mention it was cake to deploy.