related-skills: cncf-argo, cncf-artifact-hub, cncf-aws-eks, cncf-azure-aks
Strimzi in Cloud-Native Engineering
Category: Streaming & Messaging
Status: Active
Stars: 2,900
Last Updated: 2026-04-22
Primary Language: Java
Documentation: Kafka on Kubernetes - Apache Kafka for cloud-native environments
Purpose and Use Cases
Strimzi is a core component of the cloud-native ecosystem, serving as cloud-native environments
What Problem Does It Solve?
Strimzi addresses the challenge of running Apache Kafka on Kubernetes with native integration. It provides Kafka-native on Kubernetes, automated management, and cloud-native scalability.
When to Use This Project
Use Strimzi when need Kafka on Kubernetes, want managed Kafka, or require Kafka at scale. Not ideal for simple deployments or when event-driven architecture, Kafka-native deployment, or Kafka scaling requirements.
Key Use Cases
- Kafka on Kubernetes Deployments
- Event-Driven Architecture
- Real-Time Data Streaming
- Kafka Multi-Tenancy
- Kafka Migration to Cloud
Architecture Design Patterns
Core Components
- Cluster Operator: Manages Kafka clusters
- Kafka Node: Kafka broker instance
- ZooKeeper Node: ZooKeeper ensemble member
- Topic Operator: Manages topics
- User Operator: Manages users and ACLs
Component Interactions
- Operator → Kafka: Operator manages Kafka cluster
- Kafka → ZooKeeper: Kafka stores metadata in ZooKeeper
- Topic Operator → Kafka: Topic operator manages topics
- User Operator → Kafka: User operator manages users
Data Flow Patterns
- Cluster Creation: Create Kafka CR → Operator creates cluster → Kafka ready
- Topic Creation: Create Topic CR → Topic operator → Kafka topic
- Message Flow: Producer → Kafka → Consumer
- Configuration Sync: Config updates → Kafka pods
Design Principles
- Kafka Native: Full Kafka compatibility
- Automated Management: Full lifecycle management
- Kubernetes Native: Deep integration
- Operational Simplicity: Easy to operate
Integration Approaches
Integration with Other CNCF Projects
- Kafka: Apache Kafka core
- ZooKeeper: Metadata storage
- Kubernetes: Platform integration
- Prometheus: Metrics collection
API Patterns
- Kafka CRD: Kafka cluster definition
- Topic CRD: Topic definition
- User CRD: User definition
- Kafka Connect CRD: Connect cluster definition
Configuration Patterns
- Kafka YAML: Cluster configuration
- Topic YAML: Topic configuration
- User YAML: User configuration
- Connect YAML: Connect configuration
Extension Mechanisms
- Custom Connectors: Add Kafka connectors
- Custom Metrics: Add custom metrics
- Custom Config: Custom Kafka config
Common Pitfalls and How to Avoid Them
Misconfigurations
- Disk Space: Kafka log storage exhaustion
- How to Avoid: Monitor disk space, configure retention, scale storage
- Network Issues: Network partitions
- How to Avoid: Configure network isolation, monitor latency
Performance Issues
- Upgrade Issues: Kafka version upgrade problems
- How to Avoid: Test upgrades, follow upgrade path, backup
- Schema Registry: Schema registry issues
- How to Avoid: Configure registry, monitor health
Operational Challenges
- TLS Issues: TLS configuration problems
- How to Avoid: Verify certificates, check TLS settings
- Replication Issues: Replication lag
- How to Avoid: Monitor replication, check network
Security Pitfalls
Coding Practices
Idiomatic Configuration
- Declarative Configuration: Define Kafka in YAML
- Topic Management: Use KafkaTopic CRs
- Monitoring Integration: Integrate with Prometheus
API Usage Patterns
- kubectl apply: Apply Kafka configurations
- strimzi-cli: Strimzi-specific commands
- Kafka CLI: Kafka tools
- kubectl describe: Describe Kafka resources
Observability Best Practices
- Kafka Metrics: Monitor Kafka cluster metrics
- Operator Metrics: Monitor operator health
- Topic Metrics: Track topic statistics
Testing Strategies
- Integration Tests: Test Kafka functionality
- Failover Tests: Test cluster failover
- Performance Tests: Validate performance
Development Workflow
- Local Development: Use minikube or kind
- Debug Commands: Check Kafka and operator logs
- Test Environment: Set up test cluster
- CI/CD Integration: Automate testing
- Monitoring Setup: Configure observability
- Documentation: Maintain documentation
Fundamentals
Essential Concepts
- Kafka Cluster: Kafka cluster definition
- Cluster Operator: Cluster management
- Kafka Broker: Kafka broker instance
- ZooKeeper: ZooKeeper ensemble
- Topic Operator: Topic management
- User Operator: User management
- Kafka Connect: Kafka Connect cluster
- Kafka Mirror Maker: Data replication
Terminology Glossary
- Cluster Operator: Manages Kafka clusters
- Kafka Broker: Kafka server instance
- Topic Operator: Manages topics
- User Operator: Manages users
- Mirror Maker: Data replication
Data Models and Types
- Kafka: Kafka cluster definition
- KafkaTopic: Topic definition
- KafkaUser: User definition
- KafkaConnect: Connect cluster
Lifecycle Management
- Cluster Creation: Create Kafka CR → Operator creates → Cluster ready
- Topic Creation: Create Topic CR → Operator creates → Topic exists
- Upgrade Process: Update Kafka version → Rolling restart → New version
- Failure Recovery: Detect failure → Heal → Restore
State Management
- Cluster State: Ready, error, or scaling
- Broker State: Running, stopped, or starting
- Topic State: Created, updating, or deleted
- Operator State: Running or error
Scaling and Deployment Patterns
Horizontal Scaling
- Broker Scaling: Add/remove brokers
- Consumer Scaling: Scale consumer groups
- Topic Scaling: Replication factor changes
- Cluster Scaling: Add nodes to cluster
High Availability
- Broker HA: Multiple brokers per partition
- Replication HA: ISR configuration
- Operator HA: Multiple operator instances
- ZooKeeper HA: ZooKeeper ensemble
Production Deployments
- Cluster Setup: Deploy Kafka cluster
- Network Configuration: Configure network
- Security Setup: Enable TLS, SASL, RBAC
- Monitoring Setup: Configure metrics
- Logging Setup: Centralize logs
- Backup Strategy: Configure backups
- Resource Quotas: Set resource limits
- Performance Tuning: Optimize Kafka settings
Upgrade Strategies
- Kafka Upgrade: Upgrade Kafka version
- Operator Upgrade: Upgrade operator
- Broker Upgrade: Rolling broker upgrade
- Testing: Verify functionality
Resource Management
- CPU Resources: Broker CPU limits
- Memory Resources: Broker memory limits
- Storage Resources: Log storage configuration
- Network Resources: Network configuration
Additional Resources
- Official Documentation: https://strimzi.io/docs/
- GitHub Repository: Check the project's official documentation for repository link
- CNCF Project Page: cncf.io/projects/cncf-strimzi/
- Community: Check the official documentation for community channels
- Versioning: Refer to project's release notes for version-specific features
Troubleshooting
Common Issues
Deployment Failures
- Check pod logs for errors
- Verify configuration values
- Ensure network connectivity
Performance Issues
- Monitor resource usage
- Adjust resource limits
- Check for bottlenecks
Configuration Errors
- Validate YAML syntax
- Check required fields
- Verify environment-specific settings
Integration Problems
- Verify API compatibility
- Check dependency versions
- Review integration documentation
Getting Help
- Check official documentation
- Search GitHub issues
- Join community channels
- Review logs and metrics
Content generated automatically. Verify against official documentation before production use.
Examples
Basic Configuration
# Basic configuration example
apiVersion: v1
kind: ConfigMap
metadata:
name: {{project_name}}-config
namespace: default
data:
# Configuration goes here
config.yaml: |
# Base configuration
# Add your settings here
Kubernetes Deployment
# Kubernetes deployment for {{project_name}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{project_name}}
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: {{project_name}}
template:
metadata:
labels:
app: {{project_name}}
spec:
containers:
- name: {{project_name}}
image: {{project_name}}:latest
ports:
- containerPort: 8080
resources:
limits:
memory: "128Mi"
cpu: "500m"
Kubernetes Service
# Kubernetes service for {{project_name}}
apiVersion: v1
kind: Service
metadata:
name: {{project_name}}
namespace: default
spec:
selector:
app: {{project_name}}
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIP
When to Use
Use this skill when:
- Integrating a CNCF project into Kubernetes infrastructure — You need to configure, deploy, or troubleshoot a cloud-native tool within a cluster
- Designing cloud-native architecture — You are selecting and integrating CNCF tools to solve specific infrastructure challenges
- Resolving operational issues — A CNCF component is misbehaving, underperforming, or needs configuration changes
Core Workflow
Assess Requirements — Understand the use case, scale, integration needs, and existing infrastructure. Checkpoint: Document requirements, constraints, and success criteria.
Design Architecture — Plan component interactions, data flow, and deployment strategy using cloud-native best practices. Checkpoint: Verify the architecture addresses all requirements and follows CNCF conventions.
Implement & Configure — Create manifests, configurations, and deployment scripts. Include resource limits, health checks, and observability hooks. Checkpoint: Validate all YAML against schema and test in a staging environment.
Deploy & Monitor — Apply manifests to the cluster, verify component health, and confirm observability is working. Checkpoint: Confirm all pods/services are running, probes passing, and metrics/alerts configured.
Constraints
MUST DO
- Include at least one complete working YAML manifest example
- Note when content is auto-generated vs. manually verified
- Reference relevant CNCF project documentation
MUST NOT DO
- Deploy manifests without testing in a staging environment first
- Use deprecated API versions (e.g., apps/v1beta1)
- Omit resource limits and requests in Kubernetes manifests
1---2name: strimzi3description: "Provides Strimzi in Kafka on Kubernetes - Apache Kafka for cloud-native environments"4license: MIT5---678910 related-skills: cncf-argo, cncf-artifact-hub, cncf-aws-eks, cncf-azure-aks11121314# Strimzi in Cloud-Native Engineering1516**Category:** Streaming & Messaging 17**Status:** Active 18**Stars:** 2,900 19**Last Updated:** 2026-04-22 20**Primary Language:** Java 21**Documentation:** [Kafka on Kubernetes - Apache Kafka for cloud-native environments](https://strimzi.io/docs/) 2223---2425## Purpose and Use Cases2627Strimzi is a core component of the cloud-native ecosystem, serving as cloud-native environments2829### What Problem Does It Solve?3031Strimzi addresses the challenge of running Apache Kafka on Kubernetes with native integration. It provides Kafka-native on Kubernetes, automated management, and cloud-native scalability.3233### When to Use This Project3435Use Strimzi when need Kafka on Kubernetes, want managed Kafka, or require Kafka at scale. Not ideal for simple deployments or when event-driven architecture, Kafka-native deployment, or Kafka scaling requirements.3637### Key Use Cases3839- Kafka on Kubernetes Deployments40- Event-Driven Architecture41- Real-Time Data Streaming42- Kafka Multi-Tenancy43- Kafka Migration to Cloud4445---4647## Architecture Design Patterns4849### Core Components5051- **Cluster Operator**: Manages Kafka clusters52- **Kafka Node**: Kafka broker instance53- **ZooKeeper Node**: ZooKeeper ensemble member54- **Topic Operator**: Manages topics55- **User Operator**: Manages users and ACLs5657### Component Interactions58591. **Operator → Kafka**: Operator manages Kafka cluster601. **Kafka → ZooKeeper**: Kafka stores metadata in ZooKeeper611. **Topic Operator → Kafka**: Topic operator manages topics621. **User Operator → Kafka**: User operator manages users6364### Data Flow Patterns65661. **Cluster Creation**: Create Kafka CR → Operator creates cluster → Kafka ready671. **Topic Creation**: Create Topic CR → Topic operator → Kafka topic681. **Message Flow**: Producer → Kafka → Consumer691. **Configuration Sync**: Config updates → Kafka pods7071### Design Principles7273- **Kafka Native**: Full Kafka compatibility74- **Automated Management**: Full lifecycle management75- **Kubernetes Native**: Deep integration76- **Operational Simplicity**: Easy to operate7778---7980## Integration Approaches8182### Integration with Other CNCF Projects8384- **Kafka**: Apache Kafka core85- **ZooKeeper**: Metadata storage86- **Kubernetes**: Platform integration87- **Prometheus**: Metrics collection8889### API Patterns9091- **Kafka CRD**: Kafka cluster definition92- **Topic CRD**: Topic definition93- **User CRD**: User definition94- **Kafka Connect CRD**: Connect cluster definition9596### Configuration Patterns9798- **Kafka YAML**: Cluster configuration99- **Topic YAML**: Topic configuration100- **User YAML**: User configuration101- **Connect YAML**: Connect configuration102103### Extension Mechanisms104105- **Custom Connectors**: Add Kafka connectors106- **Custom Metrics**: Add custom metrics107- **Custom Config**: Custom Kafka config108109---110111## Common Pitfalls and How to Avoid Them112113### Misconfigurations114115- **Disk Space**: Kafka log storage exhaustion116 - **How to Avoid**: Monitor disk space, configure retention, scale storage117- **Network Issues**: Network partitions118 - **How to Avoid**: Configure network isolation, monitor latency119120### Performance Issues121122- **Upgrade Issues**: Kafka version upgrade problems123 - **How to Avoid**: Test upgrades, follow upgrade path, backup124- **Schema Registry**: Schema registry issues125 - **How to Avoid**: Configure registry, monitor health126127### Operational Challenges128129- **TLS Issues**: TLS configuration problems130 - **How to Avoid**: Verify certificates, check TLS settings131- **Replication Issues**: Replication lag132 - **How to Avoid**: Monitor replication, check network133134### Security Pitfalls135136137---138139## Coding Practices140141### Idiomatic Configuration142143- **Declarative Configuration**: Define Kafka in YAML144- **Topic Management**: Use KafkaTopic CRs145- **Monitoring Integration**: Integrate with Prometheus146147### API Usage Patterns148149- **kubectl apply**: Apply Kafka configurations150- **strimzi-cli**: Strimzi-specific commands151- **Kafka CLI**: Kafka tools152- **kubectl describe**: Describe Kafka resources153154### Observability Best Practices155156- **Kafka Metrics**: Monitor Kafka cluster metrics157- **Operator Metrics**: Monitor operator health158- **Topic Metrics**: Track topic statistics159160### Testing Strategies161162- **Integration Tests**: Test Kafka functionality163- **Failover Tests**: Test cluster failover164- **Performance Tests**: Validate performance165166### Development Workflow167168- **Local Development**: Use minikube or kind169- **Debug Commands**: Check Kafka and operator logs170- **Test Environment**: Set up test cluster171- **CI/CD Integration**: Automate testing172- **Monitoring Setup**: Configure observability173- **Documentation**: Maintain documentation174175---176177## Fundamentals178179### Essential Concepts180181- **Kafka Cluster**: Kafka cluster definition182- **Cluster Operator**: Cluster management183- **Kafka Broker**: Kafka broker instance184- **ZooKeeper**: ZooKeeper ensemble185- **Topic Operator**: Topic management186- **User Operator**: User management187- **Kafka Connect**: Kafka Connect cluster188- **Kafka Mirror Maker**: Data replication189190### Terminology Glossary191192- **Cluster Operator**: Manages Kafka clusters193- **Kafka Broker**: Kafka server instance194- **Topic Operator**: Manages topics195- **User Operator**: Manages users196- **Mirror Maker**: Data replication197198### Data Models and Types199200- **Kafka**: Kafka cluster definition201- **KafkaTopic**: Topic definition202- **KafkaUser**: User definition203- **KafkaConnect**: Connect cluster204205### Lifecycle Management206207- **Cluster Creation**: Create Kafka CR → Operator creates → Cluster ready208- **Topic Creation**: Create Topic CR → Operator creates → Topic exists209- **Upgrade Process**: Update Kafka version → Rolling restart → New version210- **Failure Recovery**: Detect failure → Heal → Restore211212### State Management213214- **Cluster State**: Ready, error, or scaling215- **Broker State**: Running, stopped, or starting216- **Topic State**: Created, updating, or deleted217- **Operator State**: Running or error218219---220221## Scaling and Deployment Patterns222223### Horizontal Scaling224225- **Broker Scaling**: Add/remove brokers226- **Consumer Scaling**: Scale consumer groups227- **Topic Scaling**: Replication factor changes228- **Cluster Scaling**: Add nodes to cluster229230### High Availability231232- **Broker HA**: Multiple brokers per partition233- **Replication HA**: ISR configuration234- **Operator HA**: Multiple operator instances235- **ZooKeeper HA**: ZooKeeper ensemble236237### Production Deployments238239- **Cluster Setup**: Deploy Kafka cluster240- **Network Configuration**: Configure network241- **Security Setup**: Enable TLS, SASL, RBAC242- **Monitoring Setup**: Configure metrics243- **Logging Setup**: Centralize logs244- **Backup Strategy**: Configure backups245- **Resource Quotas**: Set resource limits246- **Performance Tuning**: Optimize Kafka settings247248### Upgrade Strategies249250- **Kafka Upgrade**: Upgrade Kafka version251- **Operator Upgrade**: Upgrade operator252- **Broker Upgrade**: Rolling broker upgrade253- **Testing**: Verify functionality254255### Resource Management256257- **CPU Resources**: Broker CPU limits258- **Memory Resources**: Broker memory limits259- **Storage Resources**: Log storage configuration260- **Network Resources**: Network configuration261262---263264## Additional Resources265266- **Official Documentation:** https://strimzi.io/docs/267- **GitHub Repository:** Check the project's official documentation for repository link268- **CNCF Project Page:** [cncf.io/projects/cncf-strimzi/](https://www.cncf.io/projects/cncf-strimzi/)269- **Community:** Check the official documentation for community channels270- **Versioning:** Refer to project's release notes for version-specific features271272---273274## Troubleshooting275276### Common Issues2772781. **Deployment Failures**279 - Check pod logs for errors280 - Verify configuration values281 - Ensure network connectivity2822832. **Performance Issues**284 - Monitor resource usage285 - Adjust resource limits286 - Check for bottlenecks2872883. **Configuration Errors**289 - Validate YAML syntax290 - Check required fields291 - Verify environment-specific settings2922934. **Integration Problems**294 - Verify API compatibility295 - Check dependency versions296 - Review integration documentation297298### Getting Help299300- Check official documentation301- Search GitHub issues302- Join community channels303- Review logs and metrics304*Content generated automatically. Verify against official documentation before production use.*305306## Examples307308### Basic Configuration309310311```yaml312# Basic configuration example313apiVersion: v1314kind: ConfigMap315metadata:316 name: {{project_name}}-config317 namespace: default318data:319 # Configuration goes here320 config.yaml: |321 # Base configuration322 # Add your settings here323```324325### Kubernetes Deployment326327328```yaml329# Kubernetes deployment for {{project_name}}330apiVersion: apps/v1331kind: Deployment332metadata:333 name: {{project_name}}334 namespace: default335spec:336 replicas: 1337 selector:338 matchLabels:339 app: {{project_name}}340 template:341 metadata:342 labels:343 app: {{project_name}}344 spec:345 containers:346 - name: {{project_name}}347 image: {{project_name}}:latest348 ports:349 - containerPort: 8080350 resources:351 limits:352 memory: "128Mi"353 cpu: "500m"354```355356### Kubernetes Service357358359```yaml360# Kubernetes service for {{project_name}}361apiVersion: v1362kind: Service363metadata:364 name: {{project_name}}365 namespace: default366spec:367 selector:368 app: {{project_name}}369 ports:370 - protocol: TCP371 port: 80372 targetPort: 8080373 type: ClusterIP374```375376---377378## When to Use379380Use this skill when:381382- **Integrating a CNCF project into Kubernetes infrastructure** — You need to configure, deploy, or troubleshoot a cloud-native tool within a cluster383- **Designing cloud-native architecture** — You are selecting and integrating CNCF tools to solve specific infrastructure challenges384- **Resolving operational issues** — A CNCF component is misbehaving, underperforming, or needs configuration changes385---386387## Core Workflow3883891. **Assess Requirements** — Understand the use case, scale, integration needs, and existing infrastructure. **Checkpoint:** Document requirements, constraints, and success criteria.3903912. **Design Architecture** — Plan component interactions, data flow, and deployment strategy using cloud-native best practices. **Checkpoint:** Verify the architecture addresses all requirements and follows CNCF conventions.3923933. **Implement & Configure** — Create manifests, configurations, and deployment scripts. Include resource limits, health checks, and observability hooks. **Checkpoint:** Validate all YAML against schema and test in a staging environment.3943954. **Deploy & Monitor** — Apply manifests to the cluster, verify component health, and confirm observability is working. **Checkpoint:** Confirm all pods/services are running, probes passing, and metrics/alerts configured.396397---398399## Constraints400401### MUST DO402- Include at least one complete working YAML manifest example403- Note when content is auto-generated vs. manually verified404- Reference relevant CNCF project documentation405406### MUST NOT DO407- Deploy manifests without testing in a staging environment first408- Use deprecated API versions (e.g., apps/v1beta1)409- Omit resource limits and requests in Kubernetes manifests