Предпосылки:-
Ingress-Nginx должен присутствовать в вашем кластере!
Вход можно настроить несколькими способами. Я создам несколько входных объектов и хостов.
A- Доступная извне конечная точка argocd (если вы используете единый вход , это необходимо для настройки Okta SSO.)
[Можно настроить Okta SSO с частной установкой Argo CD, где URL-адрес обратного вызова Okta является единственной общедоступной конечной точкой ]
B- Конечная точка argocd с внутренним доступом (для доступа к вашему частному кластеру Kubernetes и модулям вам необходимо использовать внутреннюю конечную точку argocd).
Примечание. В большинстве случаев вам может потребоваться использовать ArgoCD в качестве внутренней точки доступа, и я полагаю, что причина в том, что ваша внутренняя команда использует ArgoCD для развертывания сервисов K8s. Это также верно в моем случае использования.
Ingress-Nginx Ingress поддерживает только один протокол для каждого объекта Ingress; другой вариант — определить два объекта Ingress. Один для HTTP/HTTPS и один для gRPC.
Вход HTTP/HTTPS —
Мой внешний Ingress-Nginx (доступный из-за пределов вашей организации) [* Мне это нужно, потому что мне нужно использовать Okta для SSO [SAML (с Dex)], однако, если это не ваш вариант использования, не создавайте его . ]
Change-ME [Измените приведенные ниже ключевые значения в соответствии с вашей инфраструктурой]
> Я использовал секрет, полученный из секретов сертификата 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
Ресурсные хуки ArgoCD.
Я надеюсь, что вы найдете эту статью поучительной и полезной.
От меня Кофе ← — — — Если вам нравится блог, пожалуйста, хлопните мне в ладоши : ) и подпишитесь на меня, чтобы узнать больше такого контента.
Ваши аплодисменты мотивируют меня продолжать писать такие блоги.
Проблема кибербезопасности является глобальной проблемой, и различные организации, правительства и неправительственные организации в настоящее время проводят бесплатное обучение и программы, чтобы побудить больше людей делать карьеру в области кибербезопасности. Как человек, получивший пользу от бесплатного технического обучения и программ, я составил список бесплатных курсов, тренингов, учебных лагерей и стажировок, которые могут заинтересовать других.
С ростом популярности контейнеров при разработке приложений возникает ряд дополнительных проблем, связанных с необходимостью управления тысячами контейнеров, на которых выполняются сложные корпоративные приложения. Управление такими контейнерами в нескольких средах развертывания — сложная задача.
В 2022 году, с выпуском GPT-3, навыки письма, кажется, стали менее важными. С помощью ИИ люди с плохим письмом также могут генерировать качественный персонал.
Переход к новой карьере может быть чрезвычайно сложным, если вы пытаетесь сделать это в одиночку. Важно найти партнеров по подотчетности, которые находятся на том же уровне обучения, что и вы, у которых схожие цели, упорство и стремление.
В современном быстро меняющемся и конкурентном мире карьера играет важную роль в личностном росте, финансовой стабильности и общей удовлетворенности жизнью. Однако многие люди оказываются в безжалостном цикле застоя и неудовлетворенности, постепенно угасая в своей профессиональной жизни.
Мы часто обнаруживаем, что изо всех сил пытаемся реализовать то, что, как мы знаем, полезно для нас. От того, чтобы сказать значимому другому, что мы любим его, до того, чтобы помнить, что нужно говорить как пират, всегда будут те, кто утверждает, что день, неделя или месяц событий не нужны, потому что они уже делают эти вещи.