Google Container Engine provides a managed Kubernetes platform to host your containers without the need of setting up your own Kubernetes cluster. Google provides the expertise of managing a Kubernetes cluster and supplies a load balanced master service for increased stability. Kubernetes has Services, Replication Controllers, managed mounts and auto scaling to keep your containers running and healthy. The Google Cloud Platform is also tightly coupled with other services from Google like Container Registry, Persistent Disk and Cloud Load Balancing.
Although the advantages of Kubernetes are manifold: auto scaling, self-healing, and a truly distributed load, there are still a lot of things that can go haywire. Applications can still experience issues because of unsuccessful deployments. Services can stop responding, run out of memory or disk space, and lose communication with the other services in your platform. Auto scaling, although very powerful, can sometimes trigger catastrophic events if not configured correctly.
For all these reasons it’s still very important to choose a suitable monitoring tool to watch over your Kubernetes environment. Because running Kubernetes in production without monitoring is like driving a car without insurance. With CoScale, you get a complete view of your Kubernetes cluster and how each container, service and node is performing. The metrics delivered with CoScale can help you to tune your services and auto scaling to get the best result out of your environment. Also it can help you catch issues faster and react quicker in solving them.
With the most recent release, CoScale has added support for the Google Container environment. With a couple of commands you can set up CoScale to monitor the underlying Kubernetes cluster and the containers running on the environment. CoScale works by deploying a Kubernetes ReplicaSet to monitor the Kubernetes master, and deploying a Kubernetes DaemonSet to monitor each of the minions running in your cluster.
With this setup, there is no need to change the configuration when you scale to more minions or update your environment. The CoScale agent will automatically be deployed on new machines and because of the auto-updating feature, you’ll never have to deploy a new version.
After installation, CoScale will provide you with some dashboards giving you insights into the health and performance of your Kubernetes environment.
The Cluster overview dashboard gives you a high-level overview of your cluster itself. Here you can see how many containers are running on the different minions, as well as the total amount of containers in your cluster. CoScale also shows the number of replication controllers and services. The event timeline gives you a clear view on when containers were created and killed in your cluster environment.
A second dashboard shows the cluster from a different and more detailed perspective. The dashboard lets you see on which minions your containers are (or were) running, and on which machines. Solid lines connect a currently running container to the minion node, dotted lines indicate a container that was running during the selected time window but has exited since.
You can filter the view on Replication Controller and on a Service level, to focus on one specific application within your cluster. You can also select a container metric and decide the color coding of containers based on this metric. In the example above, a container turns red when the CPU usage is above 90% and orange when it is between 75 and 90%. This allows you to easily pinpoint the containers that might be causing performance issues on your application.
Another interesting way to view the containers on your cluster is grouped by Replication Controller or Service. This view gives you a quick glance on your current Replicas and lets you understand the container utilization of a particular microservice.
For each of the Replication Controller CoScale also monitors the container stability, keeping you informed when certain replica’s are failing and the Replication Controller has issues reaching the required amount.
The CoScale click-through system, available in most of our dashboards, brings you to other dashboards showing you a more detailed view. In this example you can find the container lifecycles per Replication Controller or Service. This dashboard gives you a detailed insight into the amount of running containers, failed containers, container start and stop times, etc. Other metrics or information can easily be added to this dashboard to get a more detailed view on the container itself.
A full list of metrics CoScale gathers for the environment can be found in our documentation.
The CoScale Google Container Engine integration allows you to monitor every aspect of your Kubernetes environment. It provides you with an insight into the performance and stability of your containers, the Kubernetes components managing them and the overall cluster status. All this information accelerates problem solving and lowers the time to identify any problem with your Google Container Engine environment.
With the CoScale in-container monitoring you can even monitor the services running within the containers, but more on that in our previous blogpost “How to monitor Docker containers and the services inside”.