KunnskapsbaseKubernetes

Kubernetes offentlig tjeneste med HTTPS (SSL/TLS)

Oppdatert: 2025-01-15
Kubernetes

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.