IBM® Cloud Private components

IBM Cloud Private has two main components: a container manager (Docker) and a container orchestrator (Kubernetes).

Other components of an IBM Cloud Private cluster work with the main components to provide services such as authentication, storage, networking, logging, and monitoring. A cluster management console is also provided, which serves as a centralized management location for the services.

For more information about architecture models and node types, see Architecture.

Note: Management components such as monitoring, metering, and logging, run on the management node. If no management node is present in your cluster, then the management components run on the master node.

Components

View the following table for a description of the IBM Cloud Private node components.

Component Version Role
Alert manager 0.15.0 Handles alerts sent by the Prometheus server. It sends data from deduplicating, grouping, and routing alerts to the correct receiver integration such as slack, email, or PagerDuty.
Ansible basedauth-apikeys, installer and ops manager 2.5.0 Deploys IBM Cloud Private on master and worker nodes. The boot node is also used to scale the size of the cluster on demand, and for rolling updates.
Audit Logging 3.2.0 Forwards audit logs generated by the Kubernetes API server and platform services to Elasticsearch and SIEM servers.
Authentication manager 3.2.0 Provides an HTTP API for managing users. Protocols are implemented in a RESTful manner. OpenID Connect is used for authentication.
Calico (node) 3.5.2 Sets the Calico network configurations on each node. For more information about Calico components, see v3.5.2 Opens in a new tab.
calicoctl 3.5.2 A client tool that is used to create, read, update, and delete Calico objects from the command line.
Calico (CNI) 3.5.2 Sets the network CNI plug-ins on each node.
calico (kube-controllers) 3.5.2 A controller center that sets the network policy in the IBM Cloud Private cluster.
Catalog management console 3.2.0 Catalog user interface to view, deploy and manage Kubernetes workloads
Certificate manager 0.7.0 A component that manages the lifecycle of certificates.
CoreDNS 1.2.6 Provides service discovery for Kubernetes applications.
Docker registry 18.06.2 Private image registry that is used to store container image files in an image repositories. The Docker distribution and registry version is API V2.
Default backend 1.5 Minor component of the ingress controller that assists with the routing of inbound connections to services in your cluster.
Elasticsearch 5.5.1 Stores the system and application logs, and metrics. Elasticsearch also provides an advanced API that can be used for querying your logs and metrics.
etcd 3.2.24 Distributed key-value store that maintains configuration data.
Filebeat 5.5.1 Collects the logs for all system components, and user application containers that are running on each node.
GlusterFS 4.1.5 A storage file system.
Grafana 5.2.0 Data visualization & monitoring with support for Prometheus as datasource.
Policy management console 3.2.0 Policy user interface to view, deploy, and manage policies.
Heapster 1.4.0.2 Connects to the kubelet that is running in each worker node and collects node and container metrics. These metrics include CPU, memory, and network usage.
Heketi 8.0.0 CLI to manage GlusterFS.
Helm (Tiller) 2.12.3 Manages Kubernetes charts (packages).
IBM Cloud Private management console 3.2.0 A web portal that is based on the Open DC/OS GUI. This management console connects to the leading master node by using the virtual IP (VIP) provided by the VIP manager.
Image manager 2.2.5 Manages images by providing extended features to the Docker registry. These features include authorization for push, pull, and remove operations. The image manager also provides authorization for cataloging of image libraries.
Indices-cleaner 1.0 Cleans up Elasticsearch data.
Istio 1.0.6 Istio is an open platform that you can use to connect, secure, control, and observe microservices. With Istio, you can create a network of deployed services that include load balancing, service-to-service authentication, monitoring, and more, without changing the service code.
Key management Service 3.1.1 Provision and manage encryption keys.
Kibana 5.5.1 A user interface that provides easy access to data stored in Elasticsearch, plus the ability to create visualizations and dashboards of that data.
Kubelet 1.13.5 Supervises the system components of the cluster.
Kubernetes API server 1.13.5 Provides a REST API for validating and configuring data for Kubernetes objects. These Kubernetes objects include pods, service, and replication controllers.
Kubernetes control manager 1.13.5 Maintains the shared state of the Kubernetes cluster by monitoring, and adjusting the current state to ensure that the required service standard is in effect. This maintenance is done through the Kubernetes API server.
Kubernetes pause 3.1 Stores the IP address for pods, and sets up the network namespace for other containers that join the pod.
Kubernetes proxy 1.13.5 Takes traffic that is directed at Kubernetes services and forwards it to the appropriate pods. Kubernetes proxy is started by Kubernetes minion.
Kubernetes scheduler 1.13.5 Assigns pods to worker nodes based on scheduling policy.
kube_state_metrics 1.2.0 Communicates with the Kubernetes API server to generates metrics about the state of Kubernetes objects.
Logstash 5.5.1 Transforms and forwards the logs that are collected by Filebeat to Elasticsearch.
Multicluster hub 3.2.0 Provides management dashboard and the search service for clusters.
Metering 3.2.0 Collects usage metrics for your applications and cluster.
Metrics server 0.3.1 Metrics Server is a cluster-wide aggregator of resource usage data. Horizontal Pod Autoscaler (HPA) relies on the Metrics API to get node metrics.
MongoDB 3.6 Database that is used by OIDC, metering service (IBM® Cloud Product Insights), Helm repository server, and Helm API server.
NGINX Ingress controller 0.23.0 Used to load balance NodePort Kubernetes services.
nvidia-device-plugin 1.2 Provide GPU resource to the Kubernetes cluster.
OpenID Connect (OIDC) 1.0 Identity protocol over OAuth 2.0. WebSphere Liberty profile is used as the OIDC provider. Liberty profile can be configured to integrate with an existing enterprise LDAP server.
Platform API / cloudctl CLI 3.2.0 Serves downloads of CLI binaries including the cloudctl CLI and the backend API of cloudctl.
Platform management console 3.2.0 Provides the management console for resources within the cluster.
Prometheus components
  • Prometheus (2.8.0)
  • collectd_exporter (0.4.0)
  • node_exporter (0.16.0)
  • configmap_reload (0.2.2)
  • elasticsearch-exporter(1.0.2)
  • kube-state-metrics-exporter(1.3.0)
Collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true.
IBM Cloud Private management ingress 2.2.3 Hosts the management console and acts as the reverse proxy for all system components API.
Service Catalog 0.1.40 Implements the Open Service Broker API to provide service broker integration for IBM Cloud Private
System health service 3.2 Provides health status of the cluster components like node status, management services status, pod failure details
UCarp 1.5.2 Used to manage virtual IP (VIP) on the master node. This component helps to maintain high availability (HA) in the cluster. UCarp requires an HA master environment to start.
Unified router 3.2.0 Used to support backend functioning of the IBM Cloud Private management console.
vip_manager 1.1
Web terminal 3.2.0 Provides the backend for the web-terminal feature in the management console.

Component services and dependencies

View the following table for a list of IBM Cloud Private components and associated management services, and component dependencies.

Note: The management services in bold identify the primary service for the component.

Component Services Dependency
Alert manager monitoring
Audit logging audit-logging Certificate manager
Authentication manager auth-apikeys, auth-idp, auth-pap, auth-pdp, secret-watcher Certificate manager, Calico , MongoDB
Calico (node) calico, calico-route-reflector
calicoctl calico
Calico (CNI) calico
calico (kube-controllers) calico
Catalog management console catalog-ui Kubernetes API server, Authentication manager, Helm (tiller), Platform management console
Certificate manager ibm-cert-manager
CoreDNS kube-dns
Default backend nginx-ingress
Elasticsearch logging Authentication manager
Filebeat logging
GlusterFS storage-glusterfs
Grafana monitoring Authentication manager
Policy management console grc-ui Kubernetes API server, Authentication manager, Platform management console
Heapster heapster
Heketi storage-glusterfs
Helm (Tiller) tiller, helm-api, helm-repo, mgmt-repo Authentication manager, Certificate manager, Default backend, MongoDB, Platform API
IBM Cloud Private management console platform-ui, catalog-ui Authentication manager, MongoDB
Image manager image-manager Certificate manager
Indices-cleaner logging
Istio istio-citadel, istio-egressgateway, istio-galley, istio-ingressgateway, istio-pilot, istio-policy, istio-sidecar-injector, istio-statsd-prom-bridge, istio-telemetry, jaeger-agent, jaeger-collector, jaeger-query, kiali, kiali-jaeger, prometheus, tracing, zipkin, grafana
Key management service key-management, key-management-hsm, kmsplugin Authentication manager, MongoDB
Kibana logging Authentication manager
Logstash logging
Multicluster hub multicluster-hub, search Kubernetes API server, Authentication manager, Helm (tiller)
Metering metering Authentication manager, MongoDB, IBM Cloud Private management ingress
Metrics server metrics-server, custom-metrics-adapter Authentication manager
MongoDB mongodb
NGINX Ingress controller nginx-ingress Default backend
OpenID Connect (OIDC) auth-idp Authentication manager
Platform API / cloudctl CLI platform-api Kubernetes API server, Authentication manager
Platform management console platform-ui Kubernetes API server, Authentication manager, Catalog management console, Image manager
Prometheus components monitoring, monitoring-crd Metrics-server, Authentication manager
IBM Cloud Private management ingress icp-management-ingress Certificate manager
Service Catalog service-catalog Kubernetes API server, Metrics-server, CoreDNS
System health service system-healthcheck-service Kubernetes API server, IBM Cloud Private management ingress
Unified router unified-router
Web terminal web-terminal Kubernetes API server, Platform API, Authentication manager

Vulnerability Advisor (VA) components (optional feature)

Component Version Location Role
Kafka 0.10.0.4 VA node Data pipeline component that is used for data ingestion and curation.
VA-Minio RELEASE.2019-04-09T01-22-30Z.1 VA node Objective data store component that is used for indexing and querying Vulnerability Advisor data.
VA-minioCleaner RELEASE.2019-04-03T17-59-57Z.1 VA node Used to manage Vulnerability Advisor data size and prune old data. The VA-minioCleaner curator is deployed as a CronJob.
Security Analytics Service (SAS) components
  • SAS API server
3.2.0 VA node Vulnerability Advisor frontend service components. SAS components provide RESTful APIs for the Vulnerability Advisor crawlers and the Vulnerability Advisor dashboard.

The crawlers output scanned container and image information, which are known as frames, into the Vulnerability Advisor data pipeline by using the SAS APIs.

The Vulnerability Advisor dashboard, also uses SAS APIs to report Vulnerability Advisor findings.

Statsd 0.7.2.1 VA node Used by the Vulnerability Advisor service for internal system monitoring.
VA Annotators
  • MA File Annotator
  • Process MA Annotator
  • VA Compliance annotator
  • VA Config parser
  • VA Password annotator
  • VA Rootkit annotator
  • VA Vulnerability annotator
3.2.0 VA node Vulnerability Advisor data pipeline components that improve the security of scanned containers and image data by using various analytics, including vulnerability analysis, compliance checking, password analysis, configuration analysis, and rootkit detection.

These annotators use internal and external security and compliance information to improve the security of your containers and images.

VA Indexers
  • VA COS indexer
  • VA Generic indexer
3.2.0 VA node Data pipeline components that are used to index Vulnerability Advisor findings into the Vulnerability Advisor backend.
VA Usncrawler 3.2.0 VA node Data pipeline component that is used to ingest and aggregate external security notices for the Vulnerability Advisor analytics components.
VA Crawlers 3.2.0 all nodes Vulnerability Advisor data collectors, also known as crawlers, that inspect running containers and airgap images.

These crawlers extract system and application information that is used by all the Vulnerability Advisor analytics components.

Live and metrics crawlers run on worker nodes and are deployed as DaemonSets.

The registry crawlers runs as a separate deployment and scans images that are deployed into the IBM Cloud Private image registry.

MA mcm controller 3.2.0 VA node MA policy controller that is used to get MA result and perform MCM MA policies on ICP cluster.
Zookeeper 3.4.10 VA node Used by the kafka component in the Vulnerability Advisor.