Ensure your environment meets the following prerequisites before installing Event Streams.
Container environment
Event Streams 10.0.0 is supported on the Red Hat OpenShift Container Platform.
Version 10.0.0 is installed by the Event Streams operator 2.0.0, and includes Kafka version 2.5.0. For an overview of supported component and platform versions, see the support matrix.
Ensure you have the following set up for your environment:
- A supported version of OpenShift Container Platform installed. See the support matrix for supported versions.
- The OpenShift Container Platform CLI installed.
- The IBM Cloud Pak CLI (
cloudctl
) installed.
Hardware requirements
Ensure your hardware can accommodate the resource requirements for your planned deployment.
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.
For production systems, it is recommended to have Event Streams configured with at least 3 Kafka brokers, and to have one worker node for each Kafka broker. This requires 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.
Resource requirements
Event Streams resource requirements depend on several factors. The following sections provide guidance about minimum requirements for a starter deployment, and options for initial production configurations.
Minimum resource requirements are as follows. Always ensure you have sufficient resources in your environment to deploy the Event Streams operator together with a development or a production Event Streams operand configuration.
Deployment | CPU (cores) | Memory (Gi) | VPCs (see licensing) |
---|---|---|---|
Operator | 1 | 1 | N/A |
Development | 8.8 | 9.1 | 0.5 |
Production | 13 | 15.3 | 3 |
Note: Event Streams provides samples to help you get started with deployments. The resource requirements for these specific samples are detailed in the planning section. If you do not have an Event Streams installation on your system yet, always ensure you include the resource requirements for the operator together with the intended Event Streams instance requirements (development or production).
Important: Licensing is based on the number of Virtual Processing Cores (VPCs) used by your Event Streams instance. See licensing considerations for more information. For a production installation of Event Streams, the ratio is 1 license required for every 1 VPC being used. For a non-production installation of Event Streams, the ratio is 1 license required for every 2 VPCs being used.
Event Streams is a Kubernetes operator-based release and uses custom resources to define your Event Streams configurations.
The Event Streams operator uses the declared required state of your Event Streams in the custom resources to deploy and manage the entire lifecycle of your Event Streams instances. Custom resources are presented as YAML configuration documents that define instances of the EventStreams
custom resource type.
The provided samples define typical configuration settings for your Event Streams instance, including broker configurations, security settings, and default values for resources such as CPU and memory defined as “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 the 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. Containers that exceed a CPU resource limit are throttled, and containers that exceed a memory resource limit are terminated by the system.
Ensure you have sufficient CPU capacity and physical memory in your environment to service these requirements. Your Event Streams instance can be dynamically updated later through the configuration options provided in the custom resource.
Installing Event Streams has two phases:
- Install the Event Streams operator: this will deploy the operator that will install and manage your Event Streams instances.
- Install one or more instances of Event Streams by applying configured custom resources.
Operator requirements
The Event Streams operator requires the following minimum resource requirements. Ensure you always include sufficient CPU capacity and physical memory in your environment to service the operator requirements.
CPU request (cores) | CPU limit (cores) | Memory request (Gi) | Memory limit (Gi) |
---|---|---|---|
0.2 | 1.0 | 1.0 | 1.0 |
The Event Streams operator will automatically deploy the required IBM Cloud Platform Common Services if not present. Ensure you include the following Common Services component resource requirements in your calculations:
- Catalog UI
- Certificate Manager
- Common Web UI
- IAM
- Ingress NGINX
- Installer
- Licensing
- Management ingress
- Metering
- Mongo DB
- Monitoring Exporters
- Monitoring Grafana
- Monitoring Prometheus Ext
- Platform API
Note: If you are installing Event Streams in an existing IBM Cloud Pak for Integration deployment, the required Common Services might already be installed.
Adding Event Streams geo-replication to a deployment
The Event Streams geo-replicator allows messages sent to a topic on one Event Streams cluster to be automatically replicated to another Event Streams cluster. This capability ensures messages are available on a separate system to form part of a disaster recovery plan.
To use this feature, ensure you have the following additional resources available. The following table shows the prerequisites for each geo-replicator node.
CPU request (cores) | CPU limit (cores) | Memory request (Gi) | Memory limit (Gi) | VPCs (see licensing) |
---|---|---|---|---|
1.0 | 2.0 | 2.0 | 2.0 | 1.0 |
For instructions about installing geo-replication, see configuring.
Red Hat OpenShift Security Context Constraints
Event Streams requires a Security Context Constraint (SCC) to be bound to the target namespace prior to installation.
By default, Event Streams uses the default restricted
SCC that comes with the OpenShift Container Platform.
If you use a custom SCC (for example, one that is more restrictive), or have an operator that updates the default SCC, the changes might interfere with the functioning of your Event Streams deployment. To resolve any issues, apply the SCC provided by Event Streams as described in troubleshooting.
Network requirements
Event Streams is supported for use with IPv4 networks only.
Data storage requirements
If you want to set up persistent storage, Event Streams requires block storage configured to use the XFS or ext4 file system. The use of file storage (for example, NFS) is not recommended.
For example, you can use one of the following systems:
- Kubernetes local volumes
- Amazon Elastic Block Store (EBS)
- Rook Ceph
- Red Hat OpenShift Container Storage
Event Streams UI
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
See the post-installation tasks for information about installing the CLI
Kafka 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.