Quero configurar um cluster Kubernetes local para teste no macOS. Eu selecioneimicrok8sfornecido pela Canonical. O Kubernetes não roda nativamente no macOS, mas usa uma VM Linux fornecida pormultipassagem.
A instalação foi tranquila e a implantação dokubernetes-bootcampparecia ter funcionado. Esta é a saída que obtive até agora:
microk8s kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 5h9m
kubernetes-bootcamp NodePort 10.152.183.226 <none> 8080:31004/TCP 4h10m
multipass list
Name State IPv4 Image
microk8s-vm Running 192.168.64.2 Ubuntu 18.04 LTS
Executar ping na instância ping 192.168.64.2
funciona conforme o esperado.
Atualizar: testei ainda mais a conectividade instalando o nginx dentro da VM. O uso curl http://192.168.64.2
da página inicial do nginx dentro da VM apareceu no macOS.
Agora, quando eu uso shell na VM multipass exec microk8s-vm -- bash
, posso curl
acessar meu serviço implantado conforme esperado com ambos:
curl http://127.0.0.1:31004
curl http://10.152.183.226:8080
Obtendo o resultado esperado de:
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-57978f5f5d-d977w | v=1
No entanto, estou perdendo a etapa de acessar esses URLs do macOS (curl e navegador). Tentei sem sucesso:
curl http://10.152.183.226:8080
curl http://10.152.183.226:31004
curl http://192.168.64.2:8080
curl http://192.168.64.2:31004
Obviamente, estou faltando uma etapa para tornar os serviços em execução acessíveis no host do macOS. O que eu perdi? Ajuda é muito bem vinda!
Responder1
Esse 192.168.64.2 parece uma rede somente host e pode ser uma rede somente host interna. Você pode executar ping em 192.168.64.2 a partir do terminal Mac? o padrão do multipass é NAT para rede e não oferece a opção de alterá-lo para ponte até o multipass 1.6. Que neste momento é apenas fonte. Vejo 1,5 quando digito multipass --version
.
Você pode contornar isso de qualquer maneira usando ssh para encaminhar a porta multipass para o host Mac. No shell multipass, também conhecido como multipass shell
cujo padrão é primário, execute . Adicione se desejar que o comando ssh port forward seja executado em segundo plano e adicione se desejar permitir conexões de outros hosts na mesma rede do seu Mac. Se o ssh não estiver disponível no seu Mac, habilite o acesso remoto ou apenas logins ssh (servidor ssh) para o seu nome de usuário no painel de controle de compartilhamento nas configurações do seu Mac.ssh -R 8080 -R 31004 [email protected]
-f
-g