1
0

CloudManager, Kubernetes Better Dashboard

One Tool is Enough Article
Docs EInnovator Posted 02 Dec 20

CloudManager, Kubernetes Better Dashboard

If you are new or recently started your journey in the Kubernetes world, you may at first fell a bit intimidated about the challenges ahead. You think you got the key ideas about container orchestration and that cloud computing is your way, but on your daily work you are remained that the “devil is in the details”. You think: “…there should be a tool for this, and a tool for that”. Soon to discover that tools don’t do all or exactly what you want, or you spread too thin across the functionality of different tools.

Take for instances two of the most widely used tools: kubectl, the official Kubernetes command-line tool, and Kubernetes Dashboard, the official UI. You start with kubectl and soon discover that beyond learning a few basic commands and options, you have also to write extensive, error prone yaml manifest files to do the bulk of the work. Want to deploy an app bundled in a Docker image?! Then brace yourself to write one or more manifest files to cover the different moving parts – deployment and pod specs, service spec, configmaps for settings, statefulset for a backing database, etc. Want your app to be accessed via TLS secured https web protocol?! (a credibility must, since the mood shift triggered by the NSA scandal) Then hold on to your certificates and start setting up an ingress and secret, with some more manifest files. Want to collaborate with your team mates and give them the right permissions to do their jobs and not more?! Right, you got the idea…

You decide to leave the dark caves of command-line tools, and jump into the bright new sun of Kubernetes Dashboard UI. Looks good and clean, but then you discover soon what you can not do. Deploying any of your apps and resources?! Fallback to kubectl and manifests. Multiple clusters?!? Authenticate again at best, reinstall Dashboard UI likely. Want to leverage the community and deploy pre-packaged marketplace services?! That’s another tool. Helm is quite popular, these days. Want to build Docker images for your app and setup some sort of CICD (continuous delivery-integration) pipeline?! That’s also another set of tools.

Let’s move on… time to market is after all the secret sauce for most business and startup ideas. What you need is a tool that makes the common and essential devops workflows seemly. “One-Click”, if your are an e-commerce fan. Enter Cloud Manager. A keep it simple, do it all, alternative to Dashboard UI. With CloudManager, no task worst spending too much time is more than a few steps away.

Cloud Manager Kubernetes Dashboard

Going Beyond

Here is a glimpse of what you can do with CloudManager faster than you can post a question in forum.

Going Multi-Cluster

To scale up your business idea and keep you users happy with web low-response time, you will want to deploy your app to multiple clusters. If you are targeting the US market, keep your clusters in the US. If you clients are east bound, then plenty of cloud data-centers in APJ available. EU crowds?! Stick to EU regulation.

CloudManager is build from the ground-up to support multiple clusters. Clusters are top-level managed resources. Multiple authentication mechanisms are supported. Simply copy-paste your cluster config file to setup the cluster. When creating a Kubernetes namespace (a naming folder or space), simply select one of the cluster you have setup. Want to redeploy to a different cluster?!? Copy-paste deployments and resources, between different spaces in different clusters.

Going Multi-Cloud

Not happy with pricing of top cloud providers, and want to move to a low-cost alternative provider?! Want to offload your organization data-center to the cloud?!? Don’t trust enough a single provider, to keep all your apps and data under same management roof?!? In all these cases, you want to go with multiple cloud providers.

Cloud Manager allow you to do one-click cluster imports from multiple cloud providers. At the date of this writing, is supports imports from AWS, GCP, IBM Cloud, Azure, DigitalOcean, Linode, and a few others. Once a cluster is imported, you are all set. You can manage all your Kubernetes resources from Cloud Manager. No need to back to the provider portal (except maybe to check your billing).

Going as a Team

Building ideas and delivering value alone is though and often not so fun. You likely want to go with a team, from the enterprise or your room mate.

Cloud Manager can run as a standalone app in single-user mode, or in multi-user/enterprise mode with a side-kick SSO Gateway — as authentication & identity provider. You can choose what works best for you context. Want to invite and give permissions to a team member in a single step? Click Add Collaborator and type the username/email.

Going Simple

In your mind, an app is an app – even if Kubernetes thinks is a bunch of different things. It is as a deployable Docker image, and possibly needs a DB as backing store. Going fancy with micro-services!? Then its just a few of these same apps.

With Cloud Manager an app is what you care about. Minimal configuration to get started. Fine-tuning, if needed, can wait for another time. Enter name of docker image, and the rest just happens automatically. Configuration (without manifest), check! HTTP secured DNS route, check! Need a free certificate, got it! Scaling up for resources and number of replicas, check! Trouble-shooting from the logs, found it!

Going with Other’s Help

You can not build all of the world yourself. At least, not in a single day. You need the help of the community and install third-party software. There is a database that works best for your architecture and data-model. There is a message-broker that is as fast and as reliable as you need it to be. No need to reinvent the wheel, yet again.

Cloud Manager allows you to setup (one or more) marketplace Catalogs, each defined with an external index file specifying a collection of solutions that can be installed. The format of the catalog index is compatible with other tools – including Helm Charts. A few catalogs are setup automatically with lots of popular services ready to install, but you can add more. You can also fine-tune settings to customize each installed solution.

Going Continuously

Users are king, and kings don’t like to wait. Bug or feature, make sure it is ready soon, preferably today. *Continous Integration/Delivery pipelines (CI/CD) is what you call what is being done, when it is being done right. It is mostly automatic, or triggered with a single-click, from a git commit to a cloud deployment and a happy user.

Cloud Manager provides simplified support for CI/CD pipelines with Tekton. Build pipelines are setup with minimal configuration. You are free to choose any GIT repository provider (GitHub, or any other), and pick any Docker image registry (DockerHub, the original, or any other). All the details of configuring Tekton and Kubernetes for running the builds inside the cluster are taken care automatically. One-click to trigger all: pull source code, run tests (should), build image, and push to the registry. Need to redeploy with new image, click Restart.

Don’t Trust Me – Try it Yourself

All that looks too good to be true, probably it isn’t. Except when you find your match, and decide to settle down. If you are into Kubernetes and containers, you should not trust my word. Check out for yourself, and see if CloudManager wins your heart and mind.

Cloud Manager is packaged as a docker image, and it is super-easy to deploy. With Docker, it is one-line way:

docker run -p5005:2500 einnovator/einnovator-devops cm -d

This runs the latest version of Cloud Manager in a docker container named cm. Open the web browser in URL http://localhost:5005 to access the console and get started.

Alternatively, if you already have a Kubernetes cluster setup, you can install Cloud Manager using an Helm chart. Run the following commands:

helm repo add ei https://cdn.einnovator.org/charts
helm repo update
kubectl create ns devops
helm -ndevops install cm ei/einnovator-devops

This create a new Helm release with name cm. Installation is done in newly created namespace devops.

To expose the installed service, there are several possibilities. The simplest one to get started is to use kubectl port-forward, as shown below.

Linux/MacOS:

export POD_NAME=$(kubectl get pods -ndevops -l "app.kubernetes.io/name=einnovator-devops,app.kubernetes.io/instance=cm" -o jsonpath="{.items[0].metadata.name}")
kubectl --namespace test port-forward $POD_NAME 5000:80

WindowsOS:

kubectl get pods -ndevops -l "app.kubernetes.io/name=einnovator-devops,app.kubernetes.io/instance=cm" -o jsonpath="{.items[0].metadata.name}" > sso-pod.txt
set /p POD_NAME = < cm-pod.txt
kubectl -ndevops port-forward $POD_NAME 5000:80

This should give you enough details to get started. To learn about other installation options and settings, including running in multi-user mode see the references below.

A final “Getting Started” option worthy of mention here, is to use a cloud installation setup as a public cloud by EInnovator at: https://cloud.einnovator.org.

What About the Alternatives

Am I being partial!? Are there other alternative tools to kubectl and dashboard?! There are. But none with the scope or simplicity of Cloud Manager. Several command-line tools are available to generate manifest files automatically from a somewhat more simplified input (other manifest file?!?). Several alternative UIs are available, but when the going gets though it’s back to kubectl. Enterprise scale solutions, there are few. But come with complexity of integration and in bits-and-pieces, not to mention price tag. Cloud Manager has all what is needed, for those who know what it takes.

Learning More

Comments and Discussion

Content