Pessoal, para quem não conseguiu acessar a aplicação externamente, é necessário criar uma entrada no firewall do Google Cloud, permitindo a conexão externa.
Primeiro, verifique os serviços e qual porta o NodePort está utilizando:
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 44h
svc-pod-1 NodePort 10.96.5.20 <none> 80:30314/TCP 33m
svc-pod-2 ClusterIP 10.96.12.116 <none> 8080/TCP 13h
Na sequência, crie uma entrada no firewall do Google Cloud, utilizando o seguinte comando:
$ gcloud compute firewall-rules create svc-pod-1 --allow tcp:30314
Creating firewall...⠹Created [https://www.googleapis.com/compute/v1/projects/kubernetes-363413/global/firewalls/svc-pod-1].
Creating firewall...done.
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED
svc-pod-1 default INGRESS 1000 tcp:30314 False
Feito isso, você poderá acessar a aplicação através de qualquer endereço IP listado em "EXTERNAL-IP":NODE_PORT (no meu caso, 30314). Para obter a lista dos IPs que você poderá acessar, rode o comando:
% kubectl get nodes --output wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
gke-cluster-1-default-pool-4358b71e Ready <none> 44h v1.22.12-gke.300 10.186.0.4 34.118.81.158 Container-Optimized OS from Google 5.10.127+ containerd://1.5.13
gke-cluster-1-default-pool-4358b71e Ready <none> 44h v1.22.12-gke.300 10.186.0.5 34.116.212.51 Container-Optimized OS from Google 5.10.127+ containerd://1.5.13
gke-cluster-1-default-pool-4358b71e Ready <none> 44h v1.22.12-gke.300 10.186.0.6 34.118.63.86 Container-Optimized OS from Google 5.10.127+ containerd://1.5.13
A documentação sobre o procedimento que executei está disponível em: