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 for denne guiden er at du har laget en deployment og en service. Guide for dette finner du her.
Domene
Først må du peke inn et domene til Kubernetes. Har du ikke et domene, kan du kjøpe dette 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 har vi pekt inn example.deploi.cloud til disse adressene.
Issuer
For å opprette sertifikat må du ha en issuer registrert. Har du allerede det kan du hoppe over dette steget.
Legg følgende i letsencrypt.yaml, bytt e-post-adressen. Let’s Encrypt vil sende varsler til denne adressen. Varsler kan være om utløpt sertifikat og andre ting. 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: post@deploi.no privateKeySecretRef: name: letsencrypt-prod solvers: - http01: ingress: class: nginx
Ingress
Lag en fil som heter 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 følgende kommando for å legge til dette i Kubernetes.
kubectl apply -f ingress.yaml
TLS-sertifikatet vil nå opprettes. Dette kan ta noen minutter. Hvis dette lykkes vil tjenesten din blir tilgjengelig offentlig på https://example.deploi.cloud. Sertifikatet er gyldig i 90 dager. Kubernetes vil sørge for å lage nytt sertifikat innen det går ut.