Kubernetes offentlig tjeneste med HTTPS (SSL/TLS)
Denne guiden viser deg hvordan du gjør tjenesten din på Kubernetes tilgjengelig offentlig med TLS-sertifikat for HTTPS-støtte. Utgangspunktet er at du har laget en deployment og en service (se guiden Kubernetes «services»).
Domene
Først må du peke inn et domene til Kubernetes. Har du ikke et domene, kan du kjøpe det fra Deploi. Har du administrert Kubernetes hos Deploi, er IP-adressene 193.69.47.150, 193.69.47.106 og 193.69.50.36. For dette eksempelet peker vi example.deploi.cloud til disse adressene.
Issuer
For å opprette sertifikat må du ha en issuer registrert. Legg følgende i letsencrypt.yaml (bytt e-postadressen). Let's Encrypt vil sende varsler til denne adressen. Kjør deretter kubectl apply -f letsencrypt.yaml.
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: [email protected]
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: nginx
Ingress
Lag en fil ingress.yaml og legg følgende i den. Skriv inn ditt domene der det står «example.deploi.cloud».
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
cert-manager.io/issuer: letsencrypt-prod
name: example-ingress
spec:
ingressClassName: nginx
rules:
- host: example.deploi.cloud
http:
paths:
- backend:
service:
name: echoserver
port:
number: 80
path: /
pathType: Prefix
tls:
- hosts:
- example.deploi.cloud
secretName: example-ingress-cert
Kjør kubectl apply -f ingress.yaml. TLS-sertifikatet vil nå opprettes (kan ta noen minutter). Tjenesten din blir tilgjengelig offentlig på https://example.deploi.cloud. Sertifikatet er gyldig i 90 dager; Kubernetes fornyer det automatisk.