- Đăng vào
Deploy ArgoCD trên Kubernetes
Bài viết này, mình sẽ trình bày các bước để deploy ArgoCD trên Kubernetes cluster'
Muốn hợp tác? Vui lòng gửi mail đến: hello@nvienanh.info
Deploy ArgoCD manifest
Đầu tiên, chúng ta sẽ sử dụng manifest mà ArgoCD cung cấp để deploy. Mình deploy theo phương án Non-HA (Non High Availabolity). Việc này khá đơn giản chỉ cần chạy 2 câu lệnh là được.
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Deploy ArgoCD ingress
Sau khi deploy từ manifest mặc định xong, chúng ta cần tạp Ingress để cho phép người dùng truy cập vào app. Trong bài viết này mình dùng Nginx
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: argocd-server-ingress
namespace: argocd
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
ingressClassName: nginx
rules:
- host: argocd.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: argocd-server
port:
name: https
tls:
- hosts:
- argocd.example.com
secretName: argocd-server-tls # as expected by argocd-server
Lưu ý rằng trong line 7, mình dùng letsencrypt để tạo chứng chỉ SSL, chi tiết bạn có thể tham khảo bài viết Tạo chứng chỉ Let’s Encrypt trên Kubernetes
Sau đó chúng ta deploy ingress-nginx
kubectl apply -f ingress.yaml
Truy cập vào app
Sau khi mọi resouce đã deploy xong, bạn có thể truy cập vào phần quản lý tại: argocd.example.com
, trong đó thông tin đăng nhập ban đầu:
- user: admin
- pass:
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d