Настройка входа ArgoCD
Предпосылки:-
Ingress-Nginx должен присутствовать в вашем кластере!
Вход можно настроить несколькими способами. Я создам несколько входных объектов и хостов.
A- Доступная извне конечная точка argocd (если вы используете единый вход , это необходимо для настройки Okta SSO.)
[Можно настроить Okta SSO с частной установкой Argo CD, где URL-адрес обратного вызова Okta является единственной общедоступной конечной точкой ]
B- Конечная точка argocd с внутренним доступом (для доступа к вашему частному кластеру Kubernetes и модулям вам необходимо использовать внутреннюю конечную точку argocd).
Примечание. В большинстве случаев вам может потребоваться использовать ArgoCD в качестве внутренней точки доступа, и я полагаю, что причина в том, что ваша внутренняя команда использует ArgoCD для развертывания сервисов K8s. Это также верно в моем случае использования.
Несколько объектов Ingress и хостов —
Ingress-Nginx Ingress поддерживает только один протокол для каждого объекта Ingress; другой вариант — определить два объекта Ingress. Один для HTTP/HTTPS и один для gRPC.
Вход HTTP/HTTPS —
Мой внешний Ingress-Nginx (доступный из-за пределов вашей организации) [* Мне это нужно, потому что мне нужно использовать Okta для SSO [SAML (с Dex)], однако, если это не ваш вариант использования, не создавайте его . ]
Change-ME [Измените приведенные ниже ключевые значения в соответствии с вашей инфраструктурой]
- ingressClassName, host, Path, tls hosts и tls secretName
> Я использовал секрет, полученный из секретов сертификата Let's Encrypt, и изменил имя секрета хостов tls.
[Вы можете использовать любой сертификат ssl, не обязательно сертификат Let's Encrypt]
tls:
- hosts:
- argocd-ex.example.com #[Change-ME]
secretName: argocd-tls #[Change-ME] #["My Let's encrypt cert secrets name"]
Внешний Ingress-Nginx с путем 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]
Примечание. Если вы предпочитаете пересылать зашифрованный трафик на POD и завершать TLS на самом сервере gRPC, добавьте аннотацию ingress nginx.ingress.kubernetes.io/backend-protocol: "GRPCS".
в противном случае используйте 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
Почему SSO — единый вход — это процесс проверки подлинности, который позволяет пользователям безопасно получать доступ к нескольким связанным приложениям или системам, используя только один набор учетных данных.
Нажми на меня-
Полное руководство по установке ArgoCD.
ArgoCD High Availability (HA) [готов к производству].
Настройка ArgoCD Окта. <<<< — —
Средство обновления изображений ArgoCD .
Настройка уведомлений ArgoCD Slack
Я надеюсь, что вы найдете эту статью поучительной и полезной.
От меня Кофе ← — — — Если вам нравится блог, пожалуйста, хлопните мне в ладоши : ) и подпишитесь на меня, чтобы узнать больше такого контента.
Ваши аплодисменты мотивируют меня продолжать писать такие блоги.

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































