Monitoring IBM Bluemix Container Service with CoScale
Share this post:
In this blog post we discuss how CoScale integrates with IBM Bluemix Container Service to provide full visibility of your containerized applications, as they run in production. In the sections below, we demonstrate how to set up a Kubernetes cluster in Bluemix and how to set up CoScale to monitor this cluster. As a result, with CoScale, you can proactively manage the performance of your applications hosted on IBM Bluemix Container Service.
About IBM Bluemix
Bluemix was announced in June 2014 as the IBM Cloud platform, providing users with a variety of compute choices as well as over 140 IBM and third party services. The IBM Bluemix Container Service combines Docker and Kubernetes to deliver powerful tools, an intuitive user experience, and built-in security and isolation to enable rapid delivery of applications all while leveraging Cloud Services including cognitive capabilities from Watson. We have integrated monitoring in the offering, but we know that our customers operate in a multi-cloud environment and we’re excited to partner with CoScale to provide users that operational consistency across environments.
CoScale offers a container-native monitoring solution, helping enterprises to accelerate and assure container deployments in production. Using a lightweight monitoring approach, the CoScale platform continuously monitors your complete stack of containerized infrastructure and applications. Powered by anomaly detection, it helps you keep control over large and dynamic container environments; and proactively detect problems, before they impact your business.
Setting up a Kubernetes cluster in Bluemix
The first step is to create a Bluemix account. After you’ve successfully logged into Bluemix, the left-hand navigation will take you to containers.
Select the Kubernetes Cluster icon. Depending on your account type, you may only have access to a lite (free!) cluster. A paid cluster will enable additional configuration parameters, but is not necessary for a sample deployment with CoScale. Detailed documentation for cluster creation is available. Set the following parameters for a paid cluster:
- Cluster name
- Kubernetes version
- Datacenter location
- Machine type – a flavor with pre-defined resources per worker node in your cluster
- Number of workers – 1 to n based on capacity requirements and can be scaled up or down after the cluster is running
- Private and Public VLAN – choose networks for worker nodes (we’ll create for you if you don’t have any yet)
- Hardware – clusters and worker nodes are always single-tenant and isolated to you, but you can choose the level of isolation to meet your needs (shared workers have multi-tenant hypervisor and hardware whereas dedicated worker nodes are single tenant down to the hardware level)
Once you are satisfied with your selections, click on the ‘Create Cluster’ button.
Prefer the command line instead? The same configuration options can integrated to your existing CI/CD pipeline.
bx cs cluster-create –name <name> –location <datacenter> –workers 2 –machine-type u1c.2×4 –hardware shared –public-vlan <vlan_id> –private-vlan <vlan_id>
Deploying the CoScale agent on Bluemix
As mentioned, CoScale natively integrates with IBM Bluemix. For that you should select to install our agent as a container on every node in your cluster. Of course you need to sign up for a CoScale account first, if you don’t already have one. Our installation wizard will guide you through the process as you first log in to the application, or you can go to the left-hand side menu and select Datasources > Agent to set this up.
After selecting to install the agent as a container, the next step is selecting IBM Bluemix as deployment/orchestration system.
Our agent will connect to the Kubernetes API of the IBM Bluemix Container Service. In most cases we can connect to your Kubernetes cluster through a service account. If you run the CoScale agent as a Daemon Sets within your Kubernetes cluster this is enough. If you have set up your Kubernetes cluster differently you can use the advanced configuration settings to specify the authentication details.
A final step is setting up the in-container monitoring in the agent. This can be done in two ways:
- Either you can manually specify which container images, using the “Add Image” button. You then have to specify the image name (exact name or glob type pattern) and tag (e.g. latest, or an exact version, or a range), and subsequently the plugin (e.g. NGINX) that you want to use to monitor this image. See also this blog post on in-container monitoring.
- A second option is in-container monitoring using Docker labels. In this case our agent will monitor all images with a specific Docker label. You can set this up via the “Generate Docker labels” button. See also this blog post on monitoring based on Docker labels.
And that is it! To finalize the installation, you need to create two items in your kubernetes cluster:
- A ReplicaSet that gathers data about the cluster from the Kubernetes master.
- A DaemonSet with 1 CoScale agent per node that will gather metrics about each node
We provide you with the exact commands to do this as part of the installation process, and you only have to copy and paste this from the UI to finalize the installation.
Once the agent is installed, it automatically starts gathering metrics from your hosts, containers and Kubernetes cluster. With the in-container monitoring, it will also auto-detect new agents running recognized images and gather application-specific metrics for those.
CoScale does not only provide quick time to value in terms of installation, it also provides a lot of out-of-the box dashboards. For each of the monitored technology components there is one or more default dashboards, and you can further customize these as desired.
For example, below we show the default dashboard for monitoring your Kubernetes cluster.
This is for a simple demo environment, so there are no scaling events taking place, but the dashboard gives a good overview of the amount of nodes, containers, replica sets, replication controllers and services. In addition, these dashboards are interactively linked to other dashboards. So for example, when you click on “Replica Sets”, you get a detailed overview of the replica sets and the containers per replica set for this cluster.
We also have default dashboards showing the resources usage of containers, and you can filter these views by specific containers, replica sets, etc.
Finally let’s give an example of an in-container monitoring dashboard, in this case for a Memcached service running inside a container on IBM Bluemix Container Service. We can see application-specific metrics such as connections, cache hits and misses, etc. for the different containers running this service, allowing us to inspect the health of our Memcached service.
Besides the many dashboards that CoScale provides, it also run automatic anomaly detection on all your metrics, in order to proactively alert you on performance issues.
IBM Bluemix Container Service makes it very easy to set up a Kubernetes cluster to host your containerized applications. When running such applications in productions, operational visibility is required to ensure that applications are running as expected. CoScale provides a container-native monitoring solution, integrated with IBM Bluemix Container Service, to proactively manage availability and performance in production.
Are you already running IBM Bluemix Container Service, and would you like to try our CoScale for yourself? Then sign up for our 30 day free trial now.
via Bluemix Blog https://ibm.co/2pQcNaA
June 5, 2017 at 08:54AM