Ensure your environment meets the following prerequisites before installing Event Streams.
Container environment
2019.4.6
Event Streams 2019.4.6 is supported on the following platforms and systems:
- 2019.4.6 in standalone:
Container platform | Systems |
---|---|
Red Hat OpenShift Container Platform 3.11 with IBM cloud foundational services 3.2.1* | - Linux® 64-bit (x86_64) systems - Microsoft Azure (IaaS) - Amazon Web Services (IaaS) |
IBM Cloud Private 3.2.1 | - Linux® 64-bit (x86_64) systems - Linux on IBM® z13 or later systems - Microsoft Azure (IaaS) - Amazon Web Services (IaaS) |
*Provided by IBM Cloud Private
Event Streams 2019.4.6 has Helm chart version 1.4.5 and includes Kafka version 2.3.1. For an overview of supported component and platform versions, see the support matrix.
2019.4.5
Event Streams 2019.4.5 is supported on the following platforms and systems:
- 2019.4.5 in standalone:
Container platform | Systems |
---|---|
Red Hat OpenShift Container Platform 3.11 with IBM cloud foundational services 3.2.1* | - Linux® 64-bit (x86_64) systems - Microsoft Azure (IaaS) - Amazon Web Services (IaaS) |
IBM Cloud Private 3.2.1 | - Linux® 64-bit (x86_64) systems - Linux on IBM® z13 or later systems - Microsoft Azure (IaaS) - Amazon Web Services (IaaS) |
*Provided by IBM Cloud Private
Event Streams 2019.4.5 has Helm chart version 1.4.4 and includes Kafka version 2.3.1. For an overview of supported component and platform versions, see the support matrix.
2019.4.4
Event Streams 2019.4.4 is supported on the following platforms and systems:
- 2019.4.4 in standalone:
Container platform | Systems |
---|---|
Red Hat OpenShift Container Platform 3.11 with IBM cloud foundational services 3.2.1* | - Linux® 64-bit (x86_64) systems - Microsoft Azure (IaaS) - Amazon Web Services (IaaS) |
IBM Cloud Private 3.2.1 | - Linux® 64-bit (x86_64) systems - Linux on IBM® z13 or later systems - Microsoft Azure (IaaS) - Amazon Web Services (IaaS) |
*Provided by IBM Cloud Private
Event Streams 2019.4.4 has Helm chart version 1.4.3 and includes Kafka version 2.3.1. For an overview of supported component and platform versions, see the support matrix.
2019.4.3
Event Streams 2019.4.3 is supported on the following platforms and systems:
- 2019.4.3 in IBM Cloud Pak for Integration:
Container platform | Systems |
---|---|
Red Hat OpenShift Container Platform 4.2 and 4.3 | - Linux® 64-bit (x86_64) systems - Microsoft Azure (IaaS) - Amazon Web Services (IaaS) |
- 2019.4.3 in standalone:
Container platform | Systems |
---|---|
Red Hat OpenShift Container Platform 3.11 with IBM cloud foundational services 3.2.1* | - Linux® 64-bit (x86_64) systems - Microsoft Azure (IaaS) - Amazon Web Services (IaaS) |
IBM Cloud Private 3.2.1 | - Linux® 64-bit (x86_64) systems - Linux on IBM® z13 or later systems - Microsoft Azure (IaaS) - Amazon Web Services (IaaS) |
*Provided by IBM Cloud Private
Event Streams 2019.4.3 has Helm chart version 1.4.2 and includes Kafka version 2.3.1. For an overview of supported component and platform versions, see the support matrix.
2019.4.2
Event Streams 2019.4.2 is supported on the following platforms and systems:
- 2019.4.2 in IBM Cloud Pak for Integration:
Container platform | Systems |
---|---|
Red Hat OpenShift Container Platform 4.2 and 4.3 | - Linux® 64-bit (x86_64) systems - Microsoft Azure (IaaS) - Amazon Web Services (IaaS) |
- 2019.4.2 in standalone:
Container platform | Systems |
---|---|
Red Hat OpenShift Container Platform 3.11 with IBM cloud foundational services 3.2.1* | - Linux® 64-bit (x86_64) systems - Microsoft Azure (IaaS) - Amazon Web Services (IaaS) |
IBM Cloud Private 3.2.1 | - Linux® 64-bit (x86_64) systems - Linux on IBM® z13 or later systems - Microsoft Azure (IaaS) - Amazon Web Services (IaaS) |
*Provided by IBM Cloud Private
Event Streams 2019.4.2 has Helm chart version 1.4.1 and includes Kafka version 2.3.1. For an overview of supported component and platform versions, see the support matrix.
2019.4.1
Event Streams 2019.4.1 is supported on the following platforms and systems:
- 2019.4.1 in IBM Cloud Pak for Integration:
Container platform | Systems |
---|---|
Red Hat OpenShift Container Platform 4.2 | - Linux® 64-bit (x86_64) systems - Microsoft Azure (IaaS) - Amazon Web Services (IaaS) |
- 2019.4.1 standalone:
Container platform | Systems |
---|---|
Red Hat OpenShift Container Platform 3.11 with IBM cloud foundational services 3.2.1* | - Linux® 64-bit (x86_64) systems - Microsoft Azure (IaaS) - Amazon Web Services (IaaS) |
IBM Cloud Private 3.2.1 | - Linux® 64-bit (x86_64) systems - Linux on IBM® z13 or later systems - Microsoft Azure (IaaS) - Amazon Web Services (IaaS) |
*Provided by IBM Cloud Private
Event Streams 2019.4.1 has Helm chart version 1.4.0 and includes Kafka version 2.3.0. For an overview of supported component and platform versions, see the support matrix.
Environment prerequisites
Ensure you have the following set up for your environment:
- If you are installing Event Streams on the OpenShift Container Platform, ensure you have the right version of OpenShift installed and integrated with the right version of IBM Cloud Private. See previous table for supported versions. For example, install OpenShift 3.11, and integrate it with IBM Cloud Private 3.2.1.
-
Install and configure IBM Cloud Private.
Important: In high throughput environments, ensure you configure your IBM Cloud Private cluster to include an external load balancer and an internal network. These configuration options help take full advantage of Event Streams scaling and Kafka settings, and avoid potential performance bottlenecks. For more information, see the performance planning topic.Note: Event Streams includes entitlement to IBM Cloud Private Foundation which you can download from IBM Passport Advantage.
- If you are installing Event Streams on an IBM Cloud Private cluster deployed on Amazon Web Services (AWS), ensure your proxy address uses lowercase characters.
- If you are installing Event Streams on an IBM Cloud Private cluster deployed on Microsoft Azure, ensure you first register a Service Principal (an application in the Azure Active Directory). For information about creating a Service Principal, see the terraform documentation.
- Install the Kubernetes command line tool, and configure access to your cluster.
- If you are installing Event Streams on the OpenShift Container Platform, ensure you also install the OpenShift Container Platform CLI.
- Install the IBM Cloud Private Command Line Interface (CLI).
- Install the Helm CLI required for your version of IBM Cloud Private, and add the IBM Cloud Private internal Helm repository called
local-charts
to the Helm CLI as an external repository. -
For message indexing capabilities (enabled by default), ensure you set the
vm.max_map_count
property to at least262144
on all IBM Cloud Private nodes in your cluster (not only the master node). Run the following commands on each node:
sudo sysctl -w vm.max_map_count=262144
echo "vm.max_map_count=262144" | tee -a /etc/sysctl.conf
Important: This property might have already been updated by other workloads to be higher than the minimum required.
Hardware requirements
The Helm chart for Event Streams specifies default values for the CPU and memory usage of the Apache Kafka brokers and Apache ZooKeeper servers.
See the following table for memory requirements of each Helm chart component. Ensure you have sufficient physical memory to service these requirements.
Kubernetes manages the allocation of containers within your cluster. This allows resources to be available for other Event Streams components which might be required to reside on the same node.
Ensure you have one IBM Cloud Private worker node per Kafka broker, and a minimum of 3 worker nodes available for use by Event Streams. Ensure each worker node runs on a separate physical server. See the guidance about Kafka high availability for more information.
Helm resource requirements
The Event Streams Helm chart has the following resource requirements based on resource request and limit settings. Requests and limits are Kubernetes concepts for controlling resource types such as CPU and memory.
- Requests set the minimum requirements a container requires to be scheduled. If your system does not have the required request value, then your services will not start up.
- Limits set the value beyond which a container cannot consume the resource. It is the upper limit within your system for the service.
For more information about resource requests and limits, see the Kubernetes documentation.
The following table lists the aggregate resource requirements of the Event Streams Helm chart. The table includes totals for both request and limit values of all pods and their containers. Each container in a pod has its own request and limit values, but as pods run as a group, these values need to be added together to understand the total requirements for a pod.
The table includes information about requirements for the following deployment options:
- The requirements are different depending on whether you require persistent storage or not.
- If you plan to set up a multizone cluster, certain pod resource requirements will be on a per zone basis.
For details about the requirements for each container within individual pods and any zone implications, see the individual tables in the sections following the summary table.
These are the minimum requirements for an Event Streams installation, and will be used unless you change them when configuring your installation. They are based on the default resource request and limit settings of the chart. Installing with these settings is suitable for a starter deployment intended for testing purposes and trying out Event Streams.
For a production setup, ensure you set higher values, and also consider important configuration options for IBM Cloud Private such as setting up a load balancer and an internal network. For more information about planning for a production setup, including requirements for a baseline production environment, see the performance planning topic.
Pod group | Configurable replicas | Total CPU request per pod group (cores) | Total CPU limit per pod group (cores) | Total memory request per pod group (Gi) | Total memory limit per pod group (Gi) |
---|---|---|---|---|---|
Kafka | 3* | 8.6* (3.2 per zone) | 10.4* (3.8 per zone) | 14.3* (4.8 per zone) | 14.3* (4.8 per zone) |
Event Streams core - Not persistent |
5.1 | 12.4 | 6 | 7.4 | |
Event Streams core - Not persistent - Multizone |
3.3 + 1.4 per zone | 7.1 + 4.9 per zone | 4 + 1.6 per zone | 4.5 + 2.6 per zone | |
Event Streams core - Persistent |
6.1 | 13.4 | 6.5 | 7.9 | |
Event Streams core - Persistent - Multizone |
4.3 + 1.4 per zone | 8.1 + 4.9 per zone | 4.5 + 1.6 per zone | 5 + 2.6 per zone | |
Message indexing | 1.5 | 2.5 | 4.4 | 8.4 | |
Geo-replication | 0* | 0.9 per replica | 1.6 per replica | 2.5 per replica | 2.5 per replica |
TOTAL not persistent | 15.2 | 24.3 | 21.8 | 23.2 | |
TOTAL persistent | 16.2 | 26.3 | 25.2 | 30.6 | |
TOTAL 3 zones and persistent | 19.6 | 36.7 | 28.1 | 35.6 |
Important: The settings marked with an asterisk (*) are configurable. The values in the table are the default minimum values.
Before installing Event Streams, consider the number of Kafka replicas and geo-replicator nodes you plan to use. Each Kafka replica and geo-replicator node is a separate chargeable unit.
The geo-replication numbers are included in the previous table as an indication to show per replica requirements, but not included in the TOTAL rows.
Kafka group
The following pods and their containers are part of this group.
Important: The settings marked with an asterisk (*) are configurable. The values in the table are the default minimum values.
Kafka pod
Number of replicas: 3*
Container | CPU request per container (cores) | CPU limit per container (cores) | Memory request per container (Gi) | Memory limit per container (Gi) |
---|---|---|---|---|
Kafka | 1* | 1* | 2* | 2* |
Metrics reporter | 0.4 | 0.6 | 1.5 | 1.5 |
Metrics proxy | 0.5 | 0.5 | 1 | 1 |
Healthcheck | 0.2 | 0.2 | 0.1 | 0.1 |
TLS proxy | 0.1 | 0.5 | 0.1 | 0.1 |
Network proxy pod
Number of replicas: 2 by default, otherwise 1 per zone
Container | CPU request per container (cores) | CPU limit per container (cores) | Memory request per container (Gi) | Memory limit per container (Gi) |
---|---|---|---|---|
Proxy | 1 | 1 | 0.1 | 0.1 |
Event Streams core group
The following pods and their containers are part of this group.
Important: The settings marked with an asterisk (*) are configurable. The values in the table are the default minimum values.
ZooKeeper pod
Number of replicas: 3
Container | CPU request per container (cores) | CPU limit per container (cores) | Memory request per container (Gi) | Memory limit per container (Gi) |
---|---|---|---|---|
ZooKeeper | 0.1* | 0.1* | 0.75 | 1 |
TLS proxy | 0.1 | 0.1 | 0.1 | 0.1 |
Administration UI pod
Number of replicas: 1
Container | CPU request per container (cores) | CPU limit per container (cores) | Memory request per container (Gi) | Memory limit per container (Gi) |
---|---|---|---|---|
UI | 1 | 1 | 1 | 1 |
Redis | 0.1 | 0.1 | 0.1 | 0.1 |
Administration server pod
Number of replicas: 1
Container | CPU request per container (cores) | CPU limit per container (cores) | Memory request per container (Gi) | Memory limit per container (Gi) |
---|---|---|---|---|
Rest | 0.5 | 4 | 1 | 1 |
Codegen | 0.2 | 0.5 | 0.3 | 0.5 |
TLS proxy | 0.1 | 0.1 | 0.1 | 0.1 |
REST producer server pod
Number of replicas: 1 per zone
Container | CPU request per container (cores) | CPU limit per container (cores) | Memory request per container (Gi) | Memory limit per container (Gi) |
---|---|---|---|---|
Rest-producer | 0.5 | 4 | 1 | 2 |
REST proxy pod
Number of replicas: 1 per zone
Container | CPU request per container (cores) | CPU limit per container (cores) | Memory request per container (Gi) | Memory limit per container (Gi) |
---|---|---|---|---|
Rest-proxy | 0.5 | 0.5 | 0.25 | 0.25 |
Collector pod
Number of replicas: 1
Container | CPU request per container (cores) | CPU limit per container (cores) | Memory request per container (Gi) | Memory limit per container (Gi) |
---|---|---|---|---|
Collector | 0.1 | 0.1 | 0.05 | 0.05 |
TLS proxy | 0.1 | 0.1 | 0.1 | 0.1 |
Access controller pod
Number of replicas: 2 by default, otherwise 1 per zone
Container | CPU request per container (cores) | CPU limit per container (cores) | Memory request per container (Gi) | Memory limit per container (Gi) |
---|---|---|---|---|
Access controller | 0.3 | 0.3 | 0.25 | 0.25 |
Redis | 0.1 | 0.1 | 0.1 | 0.1 |
Schema Registry pod
Number of replicas:
- 1 without persistence
- 2 with persistence enabled
Container | CPU request per container (cores) | CPU limit per container (cores) | Memory request per container (Gi) | Memory limit per container (Gi) |
---|---|---|---|---|
Schema Registry | 0.5 | 0.5 | 0.25 | 0.25 |
Avro service | 0.5 | 0.5 | 0.25 | 0.25 |
Message indexing group
The following pods and their containers are part of this group.
Index manager pod
Number of replicas: 1
Container | CPU request per container (cores) | CPU limit per container (cores) | Memory request per container (Gi) | Memory limit per container (Gi) |
---|---|---|---|---|
Index manager | 0.2 | 0.2 | 0.1 | 0.1 |
TLS proxy | 0.1 | 0.1 | 0.1 | 0.1 |
Elasticsearch pod
Number of replicas: 2
Container | CPU request per container (cores) | CPU limit per container (cores) | Memory request per container (Gi) | Memory limit per container (Gi) |
---|---|---|---|---|
Elastic | 0.5* | 1* | 2* | 4* |
TLS proxy | 0.1 | 0.1 | 0.1 | 0.1 |
Geo-replicator group
This group only contains the geo-replicator pod.
Number of replicas: 0*
Note: This means there is no geo-replication enabled by default. The values in the following table are the default minimum values for 1 replica.
Container | CPU request per container (cores) | CPU limit per container (cores) | Memory request per container (Gi) | Memory limit per container (Gi) |
---|---|---|---|---|
Replicator | 0.5 | 1 | 1 | 1 |
Metrics reporter | 0.4 | 0.6 | 1.5 | 1.5 |
PodSecurityPolicy requirements
To install the Event Streams chart, you must have the ibm-restricted-psp
PodSecurityPolicy selected for the target namespace.
You can define the PodSecurityPolicy when creating the namespace for your installation.
Event Streams applies network policies to control the traffic within the namespace where it is deployed, limiting the traffic to that required by Event Streams. For more information about the network policies and the traffic they permit, see network policies.
For more information about PodSecurityPolicy definitions, see the IBM Cloud Private documentation.
Note: The PodSecurityPolicy requirements do not apply to the Red Hat OpenShift Container Platform.
Red Hat OpenShift SecurityContextConstraints Requirements
If you are installing on the OpenShift Container Platform, the Event Streams chart requires a custom SecurityContextConstraints to be bound to the target namespace prior to installation. The custom SecurityContextConstraints controls the permissions and capabilities required to deploy this chart.
You can enable this custom SecurityContextConstraints resource using the supplied pre-installation setup script.
Network requirements
Event Streams is supported for use with IPv4 networks only.
File systems for storage
If you want to set up persistent storage, you must have physical volumes available, backed by one of the following file systems:
- NFS version 4
- GlusterFS version 3.10.1
- IBM Spectrum Scale version 5.0.3.0
- Kubernetes local volumes
- Amazon Elastic Block Store (EBS)
Event Streams user interface
The Event Streams user interface (UI) is supported on the following web browsers:
- Google Chrome version 65 or later
- Mozilla Firefox version 59 or later
- Safari version 11.1 or later
Event Streams CLI
The Event Streams command line interface (CLI) is supported on the following systems:
- Windows 10 or later
- Linux® Ubuntu 16.04 or later
- macOS 10.13 (High Sierra) or later
Clients
The Apache Kafka Java client included with Event Streams is supported for use with the following Java versions:
- IBM Java 8
- Oracle Java 8
You can also use other Kafka version 2.0 or later clients when connecting to Event Streams. If you encounter client-side issues, IBM can assist you to resolve those issues (see our support policy).
Event Streams is designed for use with clients based on the librdkafka
implementation of the Apache Kafka protocol.