ArgoCD-Ingress-Setup
Voraussetzung:-
Ingress-Nginx muss in Ihrem Cluster vorhanden sein!
Ingress kann auf verschiedene Arten konfiguriert werden. Ich werde mehrere Ingress-Objekte und Hosts erstellen.
A – Von außen zugänglicher argocd-Endpunkt (Wenn Sie Single Sign-On verwenden , ist dies für die Einrichtung von Okta SSO erforderlich.)
[Es ist möglich, Okta SSO mit einer privaten Argo-CD-Installation einzurichten, bei der die Okta-Rückruf-URL der einzige öffentlich zugängliche Endpunkt ist ]
B – Intern zugänglicher argocd-Endpunkt (um auf Ihren privaten Kubernetes-Cluster und Ihre Pods zuzugreifen, müssen Sie einen internen argocd-Endpunkt verwenden).
Hinweis: In den meisten Fällen müssen Sie möglicherweise ArgoCD als internen Zugriffspunkt verwenden. Ich glaube, der Grund dafür ist, dass Ihr internes Team ArgoCD zur Bereitstellung von K8s-Diensten verwendet. Dies gilt auch in meinem Anwendungsfall.
Mehrere Ingress-Objekte und Hosts –
Ingress-Nginx Ingress unterstützt nur ein Protokoll pro Ingress-Objekt; Eine weitere Möglichkeit besteht darin, zwei Ingress-Objekte zu definieren. Eine für HTTP/HTTPS und eine für gRPC.
HTTP/HTTPS-Eingang –
Mein externes Ingress-Nginx (zugänglich von außerhalb Ihrer Organisation) [* Ich brauchte es, weil ich Okta für SSO [SAML (mit Dex)] verwenden muss. Wenn das jedoch nicht Ihr Anwendungsfall ist, erstellen Sie es nicht . ]
Change-ME [Ändern Sie die folgenden Schlüsselwerte gemäß Ihrer Infrastruktur]
- ingressClassName, Host, Pfad, TLS-Hosts und TLS-Geheimnisname
> Ich habe das Geheimnis verwendet, das ich aus den Zertifikatsgeheimnissen von Let's Encrypt erhalten habe, und den geheimen Namen des TLS-Hosts geändert.
[Sie können jedes SSL-Zertifikat verwenden, nicht unbedingt das Let's Encrypt-Zertifikat]
tls:
- hosts:
- argocd-ex.example.com #[Change-ME]
secretName: argocd-tls #[Change-ME] #["My Let's encrypt cert secrets name"]
Externer Ingress-Nginx mit Okta-Pfad –
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: argocd-server-ingress-external
namespace: argocd
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/proxy-connect-timeout: "300"
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
spec:
ingressClassName: external-nginx #[Change-ME]
rules:
- host: argocd-ex.example.com #[Change-ME]
http:
paths:
- path: /api/dex/callback #[SAML (with Dex) SSO Setup path]
pathType: ImplementationSpecific
backend:
service:
name: argocd-server #[your argoCD server service name]
port:
name: http
tls:
- hosts:
- argocd-ex.example.com #[Change-ME]
secretName: argocd-tls #["My Let's encrypt cert secrets name"] #[Change-ME]
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: argocd-server-ingress-internal
namespace: argocd
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/proxy-connect-timeout: "300"
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
spec:
ingressClassName: internal-nginx #[Change-ME]
rules:
- host: argocd-in.example.com #[Change-ME]
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: argocd-server #[your argoCD server service name]
port:
name: https
tls:
- hosts:
- argocd-in.example.com #[Change-ME]
secretName: argocd-tls #["My Let's encrypt cert secrets name"] #[Change-ME]
Hinweis – Wenn Sie lieber verschlüsselten Datenverkehr an Ihren POD weiterleiten und TLS auf dem gRPC-Server selbst beenden möchten, fügen Sie die Ingress-Anmerkung hinzu nginx.ingress.kubernetes.io/backend-protocol: "GRPCS".
andernfalls verwenden Sie nginx.ingress.kubernetes.io/backend-protocol: „GRPC“
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: argocd-server-grpc-ingress
namespace: argocd
annotations:
nginx.ingress.kubernetes.io/backend-protocol: "GRPCS" #[Note me]
spec:
ingressClassName: internal-nginx #[Change-ME]
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: argocd-server #[your argoCD server service name]
port:
name: https
host: grpc.argocd.example.com
tls:
- hosts:
- grpc.argocd.example.com
secretName: argocd-tls #["My Let's Encrypt Cert Secrets Name"] #[Change-ME]
kubectl get ing -n argocd
ArgoCD Ingress Objects
Warum SSO – Single Sign-On ist ein Authentifizierungsprozess, der es Benutzern ermöglicht, mit nur einem Satz Anmeldeinformationen sicher auf mehrere verwandte Anwendungen oder Systeme zuzugreifen.
Klick mich-
ArgoCD All-in-One-Setup-Anleitung.
ArgoCD High Availability (HA) [Produktionsbereit].
ArgoCD Okta-Setup. <<<< — -
ArgoCD Slack-Benachrichtigungs-Setup
Ich hoffe, dass Sie diesen Artikel lehrreich und nützlich finden.
Von mir einen Kaffee ← — — — Wenn Ihnen der Blog gefällt, klatschen Sie mir bitte :) und folgen Sie mir für weitere Inhalte dieser Art.
Ihr Applaus motiviert mich, weiterhin solche Blogs zu schreiben.

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































