Häufig gestellte Fragen
Let´s Encrypt Automatisierung
Ich würde gerne automatisch Let´s Encrypt Zertifikate für meine Routen bekommen. Geht das?
Ja, mit dem clusterweiten Operator cert-manager. Um diesen zu verwenden, muss für den gewünschten Zertifikatstyp noch ein Issuer laut Dokumentation angelegt werden. Dieser kann dann beliebig Zertifikate generieren. Weitere Informationen finden sich in der Dokumentation.
Beispiel für einen Issuer:
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: letsencrypt-issuer
spec:
acme:
email: your-email@example.com
privateKeySecretRef:
name: letsencrypt-account-key
server: https://acme-v02.api.letsencrypt.org/directory
solvers:
- http01:
ingress:
serviceType: ClusterIP
Hinweis
Mit cert-manager können Certificate für Ingress-Objekte erstellt werden, jedoch standardmäßig nicht für Route-Objekte.
Ist meine Applikation mit OpenShift kompatibel?
Dies muss von Fall zu Fall entschieden werden.
Applikationen, die laut Hersteller mit OpenShift kompatibel sind, sollten keine Probleme bereiten, sofern eine aktuelle Version unterstützt wird - dies sollte explizit geklärt werden.
Für selbst gebaute Images stellt Red Hat eine Anleitung zur Verfügung. Images, die zwingend als „root“ laufen müssen stellen jedenfalls ein Problem dar - hier ist evtl Images von Interesse.
Operatoren können nur dann ohne Einschränkung installiert werden, wenn diese ausschließlich im eigenen Namespace Resourcen anlegen (keine Custom Resource Definitions (CRD)), Clusterweite Operatoren müssen durch uns installiert werden. Hier wir behalten uns eine Evaluation und Nutzen-/Risikoabwägung vor.
Welche Kubernetes/OpenShiftversion ist in Verwendung?
Jede minor OpenShift-Version ist gekoppelt an eine Kubernetes version, welche mit openshift command line interface ausgelesen werden kann: „oc version“. Die OpenShift-Version ist für den Benutzer nicht direkt einzusehen, sie kann aber mit Hilfe der Tabelle auf dieser Red Hat Seite (kostenlose Registrierung erforderlich) ermittelt werden.
Die minor-Version wird im Normalfall alle vier Monate erhöht.
Ingress oder Route?
Um Services nach Außen zu exponieren können neben Routen auch Ingress-Objekte verwendet werden. Ingress-Objekte haben den Vorteil, dass sie TLS-Zertifikate aus Secrets verwenden können wogegen Route-Objekte diese bei Erstellung als Parameter erhalten müssen. Bei sich regelmäßig ändernden Zertifikaten (wie etwa bei Let’s Encrypt) ist dies von Vorteil. Weitere Informationen dazu gibt es hier
Seit Openshift 4.12 sollten Ingress-Objekte einen Wert spec.ingressClassName gesetzt haben. In unserem Setup ist dieser auf openshift-default zu setzen. Im Idealfall passiert dies bereits im Deployment, ist ein Ingress jedoch händisch erstellt worden, kann der folgende Befehl zum Setzen des Parameters verwendet werden: oc patch ingress/<ingress-name> --type=merge --patch '{"spec":{"ingressClassName":"openshift-default"}}'.
Zukünftige Openshift-Versionen werden Ingress-Objekte mit fehlendem ingressClassName-Parameter möglicherweise nicht mehr akzeptieren.