During initial deployment, the kafka-edge
service assigns a random port to the ingress gateway in charge of exposing the kafka-edge
to external clients. This random port, in certain circumstances, may conflict with another port assigned in other parts of the deployment.
Due to the port conflict, the
kafka-edge
service may not be deployed properly and can continue to report a
Reconciled Failed state until the conflict is resolved. To determine the availability of the edge services and whether the port conflict is the reason for the failure, execute the following command from the deployer container:
kubectl get app kafka-edge -n <pod-namespace>
If the status shown is not
Reconcile succeeded, then look at the details of the app by describing the app with the following command:
kubectl describe app kafka-edge -n <pod-namespace>
At the bottom of the output, look for the status or error message, which may state the port conflict with a message similar to this:
Useful Error Message: kapp: Error: Applying create service/istio-edge-ingressgateway (v1) namespace: kafka-edge: Creating resource service/istio-edge-ingressgateway (v1) namespace: kafka-edge: Service "istio-edge-ingressgateway" is invalid: spec.ports[3].nodePort: Invalid value: 32097: provided port is already allocated (reason: Invalid) Events: <none>
Once you have this information and the port number causing the conflict, determine which service is using the port:
kubectl get svc -A | grep <port>
For example:
[root@wdc-10-220-142-191 ~]# kubectl get svc -A | grep 32097 istio-system istio-ingressgateway NodePort 100.68.40.18 <none> 15021:32737/TCP,80:32097/TCP,443:30002/TCP 3h28m
The preceding example points to the
istio-ingressgateway
service under the
istio-system
namespace. To correct this, you must delete the service and wait for it to get recreated again, at which point it gets assigned to another random port. To delete the service for the preceding example, use the following command:
kubectl delete svc -n istio-system istio-ingressgateway
Verify the deleted service has been restored and that the kafka-edge
service is reporting a Reconciled state.