<p>I followed the <a href="https://dataflow.spring.io/docs/installation/kubernetes/" rel="nofollow noreferrer">how to install</a> guide of Spring Cloud Data Flow to install the application on Azure Kubernetes Cluster with <code>kubectl</code>. I use Kafka as a message broker and I created a simple stream, <code>time | log</code>.</p>

<p>The stream cannot be deployed, I enclose the logs which I can't fully understand.</p>

<pre><code>PS kubectl get pods
NAME                                   READY   STATUS    RESTARTS   AGE
grafana-7d7d77d54-m59dx                1/1     Running   0          5h36m
kafka-broker-64bfd5d6b5-9c7ld          1/1     Running   0          25m
kafka-zk-768b548468-mhrrn              1/1     Running   0          145m
mysql-9dbdc88c6-xz4hh                  1/1     Running   0          21h
prometheus-64b45b746-zs7z4             1/1     Running   0          5h37m
prometheus-proxy-6764bf4968-4xjz5      1/1     Running   0          28m
scdf-server-7f864c96b7-s8cmm           1/1     Running   0          62m
skipper-7fbd7f47cd-b92v4               1/1     Running   0          6h13m
test-stream-log-v9-ffcd9d55f-8p96j     0/1     Running   13         68m
test-stream-time-v9-6c47699d94-pfzkr   0/1     Running   13         68m
</code></pre>

<p>Time app log. <a href="https://pastebin.com/JyS8azVk" rel="nofollow noreferrer">https://pastebin.com/JyS8azVk</a></p>

<p>Log app log. <a href="https://pastebin.com/pCe1NqSn" rel="nofollow noreferrer">https://pastebin.com/pCe1NqSn</a></p>

<p>Kafka log. <a href="https://pastebin.com/Dj5KfVsQ" rel="nofollow noreferrer">https://pastebin.com/Dj5KfVsQ</a></p>

user1721713
<p>From the attached logs in <code>time-source</code>; specifically, this: </p>

<pre><code>2019-12-19 21:15:23.963 ERROR 1 --- [           main] o.s.cloud.stream.binding.BindingService  : Failed to create producer binding; retrying in 30 seconds
org.springframework.cloud.stream.provisioning.ProvisioningException: Provisioning exception; nested exception is java.util.concurrent.TimeoutException
        at org.springframework.cloud.stream.binder.kafka.provisioning.KafkaTopicProvisioner.createTopic(KafkaTopicProvisioner.java:290) ~[spring-cloud-stream-binder-kafka-core-2.1.4.RELEASE
</code></pre>

<p>This is indicative that the Spring Cloud Stream binder provisioner is unable to create the desired topic for the producer (i.e. <code>time-source</code>).</p>

<p>Based on your <code>kubectl get pods</code> output, however, it appears your Kafka and ZK were deployed roughly recently as opposed to Skipper, which was deployed >6hrs ago.</p>

<p>It is likely that you may have deployed components in the wrong order or that you may have reprovisioned Kafka, but that IP/Host/Port changes aren't yet reflecting in Skipper's deployment. The reason being, Skipper keeps track of <a href="https://github.com/spring-cloud/spring-cloud-dataflow/blob/master/src/kubernetes/skipper/skipper-config-kafka.yaml#L17" rel="nofollow noreferrer">Kafka credentials in its config-map</a>, so all the stream applications that it deploys (via SCDF) will automatically receive the credentials at deployment time.</p>

<p>I'd guess the credentials that the applications received might have changed when you reprovisioned Kafka/ZK — you could compare that. I'd suggest bouncing Skipper deployment so it can receive the latest in its configmap or clean-slate it all, and follow the deployment order described in the docs from the beginning.</p>
