Replies: 1 comment 6 replies
-
Your Kafka CR is not readable, but basically, you have to set the load balancer class in it:https://strimzi.io/docs/operators/latest/full/configuring.html#type-GenericKafkaListenerConfiguration-schema-reference (the |
Beta Was this translation helpful? Give feedback.
6 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Bug Description
Hi Team,
When we are trying to expose our strimzi kafka cluster using listener of "type: Loadbalancer" on port 9094. This creates nlb of internal type. Once the NLB's are created, strimzi operator gets into an error loop where it tries to set the LoadbalancerClass to "null". Once the external Listener config is removed from the kafka-cluster -> The nlb's get's created -> operator becomes healthy.
When the Operator is in error mode, then too the nlb's keep serving the connection to kafka cluster via the bootstrap external loadbalancer.
Error in the strimzi operator pod:
io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: PATCH at: https://10.100.0.1/api/v1/namespaces/kafka/services/k8s-master-kafka-external-bootstrap. Message: Service "k8s-master-kafka-external-bootstrap" is invalid: spec.loadBalancerClass: Invalid value: "null": may not change once set. Received status: Status(apiVersion=v1, code=422, details=StatusDetails(causes=[StatusCause(field=spec.loadBalancerClass, message=Invalid value: "null": may not change once set, reason=FieldValueInvalid, additionalProperties={})], group=null, kind=Service, name=k8s-master-kafka-external-bootstrap, retryAfterSeconds=null, uid=null, additionalProperties={}), kind=Status, message=Service "k8s-master-kafka-external-bootstrap" is invalid: spec.loadBalancerClass: Invalid value: "null": may not change once set, metadata=ListMeta(_continue=null, remainingItemCount=null, resourceVersion=null, selfLink=null, additionalProperties={}), reason=Invalid, status=Failure, additionalProperties={}).
Steps to reproduce
Expected behavior
Strimzi operator must not try to reset the external bootstrap service loadbalancerclass to "null". This will make strimzi operator in healthy condition
Strimzi version
0.29.0
Kubernetes version
1.25
Installation method
YAML Files
Infrastructure
Amazon EKS
Configuration files and logs
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
labels:
project: kafka
team: infra
name: k8s-master
namespace: kafka
spec:
entityOperator:
tlsSidecar: {}
topicOperator: {}
userOperator: {}
kafka:
authorization:
superUsers:
- admin
type: simple
config:
auto.create.topics.enable: "true"
inter.broker.protocol.version: "3.0"
log.message.format.version: "3.0"
offsets.topic.replication.factor: 3
transaction.state.log.min.isr: 2
transaction.state.log.replication.factor: 3
listeners:
- authentication:
type: tls
name: tls
port: 9093
tls: true
type: internal
- authentication:
type: tls
configuration:
bootstrap:
alternativeNames:
- xyz.my-domain.com
annotations:
external-dns.alpha.kubernetes.io/hostname: xyz.my-domain.com
name: external
port: 9094
tls: true
type: loadbalancer
logging:
loggers:
kafka.root.logger.level: DEBUG
type: inline
metricsConfig:
type: jmxPrometheusExporter
valueFrom:
configMapKeyRef:
key: k8s-master-kafka-jmx-exporter-configuration.yaml
name: k8s-master-kafka-jmx-exporter-configuration
replicas: 5
storage:
type: jbod
volumes:
- id: 0
size: 200Gi
type: persistent-claim
template:
pod:
metadata:
annotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
version: 3.0.0
kafkaExporter:
groupRegex: .*
topicRegex: .*
zookeeper:
metricsConfig:
type: jmxPrometheusExporter
valueFrom:
configMapKeyRef:
key: k8s-master-zookeeper-jmx-exporter-configuration.yaml
name: k8s-master-zookeeper-jmx-exporter-configuration
replicas: 3
storage:
size: 100Gi
type: persistent-claim
Additional context
No response
Beta Was this translation helpful? Give feedback.
All reactions