Portainer: A great web interface for my lab
Why Portainer? Works with Docker, Docker Swarm, Kubernetes
My setup consists of four Raspberry Pis scattered across three locations and a Cloud VM that ties them together in a Wireguard network. Besides a few exceptions like MySQL, I run applications using Docker. Unfortunately, I am not a Docker master. Thankfully. Portainer turned out to be a tool that would tie all of this together. In fact, it deepened my knowledge of Docker by helping me learn through an intuitive UI.
Portainer describes itself as a container management platform. It ties in to Docker sockets or Kubernetes Control Planes and brings them together in a smooth and polished user interface. In addition, the installation process is easy. After installing the Portainer UI, you can either install Portainer nodes on each of your cloud nodes or expose their container systems in another way. The UI will offer wizards that explain each of the options in an understandable way.
There are two basic variants of Portainer – CE and BE. CE or community edition is the open source, free version. It lacks some more advanced features. You can use the Business Edition under a free license on up to three nodes. It used to be five until it was cut down a short while ago. I managed to get mine before. 🙂
Easy to secure
One of the features that I enjoyed most was the ease with which you can connect Portiner with an OAuth provider. I use Google Workspace for my small LLC. Sure enough, there was another wizard available in the settings pages for linking with Google. This made me feel better about exposing the Portainer UI to the public internet. My workspace account is secured with 2FA and my android phone would throw out a dozen notifications in case any suspicious login activity got through. Basically, I outsourced my identity management to Google.
You can also activate automatic user provisioning. This makes onboarding new users easier as it removes the need to manually create an account on Portainer for them. As soon as a new teammate is given their google credentials, they can access Portainer as a regular user. Manual configuration is only needed in case they need admin privileges.
Creating stacks made easy
The graphical user interface provided through the browser makes it easy to compose software stacks and try out new stuff. Portainer integrates smoothly with the main Docker registry and can suggest interesting applications to test out. As such, it provides a great boost to my small cloud lab. I can easily gain hands on experience that helps me stand out as a contractor. In fact, I can plan out and raise a complex distributed system and see some of the pros and cons it can offer first hand.
One feature I have noticed Portainer offers that I want to try as soon as possible is the Kubernetes Cluster setup wizard. Portainer offers a visual tool for installing microk8s across your cluster and connecting them together. Afterwards, it plugs into the admin interface as it would with any other Kubernetes or Docker setup. One of the themes in this blog is crafting a small Pi-based “data center”. Such a feature would go a long way towards simplifying the process.
Conclusion: A very polished admin interface
In the end Portainer offers a single place from which you can administer your cloud. The experience is very smooth. The team behind it seems very UX (or DX) driven. The long list of wizards available for handling otherwise complex tasks makes it very friendly for beginners. Some features I have not covered that deserve at least a passing mention:
- Container Terminal Access
- Node system administration – if enabled
All in all, you should give it a test ride and see for yourselves.
Related Posts:
Filed under: docker,kubernetes,raspberry-pi - @ 2023-08-09 19:02
Tags: docker, kubernetes, oauth, raspberry-pi