Oi, Pedro, tudo bem?
Vamos por partes.
Para configurar os certificados SSL, você pode usar o cert-manager, um projeto Kubernetes que automatiza a gestão de certificados. Ele pode emitir certificados de várias fontes, como Let's Encrypt, HashiCorp Vault, entre outros.
Vou deixar abaixo um exemplo de como instalar o cert-manager em seu cluster Kubernetes:
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.3.1/cert-manager.yaml
Depois de instalado, você pode criar um Issuer
ou ClusterIssuer
para emitir seus certificados. Vou também deixar um exemplo de como criar um ClusterIssuer
para o Let's Encrypt:
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: nginx
Para configurar os domínios, você pode usar o Ingress, que é uma API do Kubernetes que gerencia o acesso externo aos serviços em um cluster. Você pode definir regras de roteamento HTTP/HTTPS no Ingress e todos os tráfegos que atendem a essas regras serão roteados para os serviços apropriados.
Para te dar uma ajudinha com isso, aqui também um exemplo de como criar um Ingress para o seu domínio:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
spec:
rules:
- host: seu-dominio.com
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: seu-servico
port:
number: 80
tls:
- hosts:
- seu-dominio.com
secretName: exemplo-segredo-tls
Quanto ao IP fixo, isso depende do provedor de serviços de nuvem que você está usando. Por exemplo, no Google Cloud, você pode reservar um endereço IP externo estático e, em seguida, usar num recurso de Ingress.
Se outra dúvida surgir, estamos disponíveis.
Abraços!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.