Acho que o problema é que seu pod tenta se conectar ao banco de dados antes que o istio sidecar esteja pronto. E assim a conexão não pode ser estabelecida.
O Istio executa um contêiner de inicialização que configura a tabela de rotas dos pods para que todo o tráfego seja roteado pelo sidecar. Portanto, se o sidecar não estiver em execução e o outro pod tentar se conectar ao banco de dados, nenhuma conexão poderá ser estabelecida.
Existem duas soluções.
Primeiro, seu trabalho pode esperar, por exemplo, 30 segundos antes de chamar
main.py
com algum comando de sono. Alternativamente, você pode habilitar
holdApplicationUntilProxyStarts
. Por este contêiner principal não será iniciado até que o sidecar esteja em execução.