Konfiguracja wejścia ArgoCD
Warunek wstępny:-
Ingress-Nginx musi być obecny w twoim klastrze!
Ingress można skonfigurować na wiele sposobów. Stworzę wiele obiektów wejściowych i hostów.
A- Dostępny z zewnątrz punkt końcowy argocd (Jeśli używasz pojedynczego logowania , jest to wymagane do konfiguracji Okta SSO.)
[Możliwe jest skonfigurowanie Okta SSO z prywatną instalacją Argo CD, gdzie adres URL wywołania zwrotnego Okta jest jedynym publicznie ujawnionym punktem końcowym ]
B- Wewnętrznie dostępny punkt końcowy argocd (aby uzyskać dostęp do prywatnego klastra Kubernetes i kapsuł, musisz użyć wewnętrznego punktu końcowego argocd).
Uwaga: w większości przypadków może być konieczne użycie ArgoCD jako wewnętrznego punktu dostępu i uważam, że powodem jest to, że Twój wewnętrzny zespół używa ArgoCD do wdrażania usług K8s. Jest to również prawdą w moim przypadku użycia.
Wiele obiektów wejściowych i hostów —
Ingress-Nginx Ingress obsługuje tylko jeden protokół na obiekt Ingress; inną opcją jest zdefiniowanie dwóch obiektów Ingress. Jeden dla HTTP/HTTPS i jeden dla gRPC.
Ruch przychodzący HTTP/HTTPS –
Mój zewnętrzny Ingress-Nginx (dostępny spoza Twojej organizacji) [* Potrzebowałem tego, ponieważ potrzebuję używać Okta do SSO [SAML (z Dex)] jednak jeśli to nie jest twój przypadek użycia, nie twórz go . ]
Change-ME [Zmień poniższe kluczowe wartości zgodnie ze swoją infra]
- ingressClassName, host , Path, tls hosts & tls secretName
> Użyłem sekretu, który otrzymałem z sekretów certyfikatu Let's Encrypt i zmieniłem sekret hosta tls.
[Możesz użyć dowolnego certyfikatu ssl, niekoniecznie certyfikatu Let's Encrypt]
tls:
- hosts:
- argocd-ex.example.com #[Change-ME]
secretName: argocd-tls #[Change-ME] #["My Let's encrypt cert secrets name"]
Zewnętrzny Ingress-Nginx ze ścieżką Okta —
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]
Uwaga — jeśli wolisz przekazywać zaszyfrowany ruch do urządzenia POD i zakończyć TLS na samym serwerze gRPC, dodaj adnotację dotyczącą ruchu przychodzącego nginx.ingress.kubernetes.io/backend-protocol: "GRPCS".
w przeciwnym razie użyj 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
Dlaczego SSO — jednokrotne logowanie to proces uwierzytelniania, który umożliwia użytkownikom bezpieczny dostęp do wielu powiązanych aplikacji lub systemów przy użyciu tylko jednego zestawu poświadczeń.
Kliknij-
Podręcznik konfiguracji urządzenia wielofunkcyjnego ArgoCD.
ArgoCD High Availability (HA) [gotowy do produkcji].
Konfiguracja ArgoCD Okta. <<<< — —
Konfiguracja powiadomień ArgoCD Slack
Mam nadzieję, że ten artykuł uznasz za edukacyjny i pożyteczny.
By me a Coffee ← — — — Jeśli blog ci się podoba, poklasknij :) i śledź mnie po więcej tego typu treści.
Wasze brawa motywują mnie do dalszego pisania takich blogów.

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































