No menu items!
No menu items!
More

    [ArgoCD] Triển khai ArgoCD lên Kubernetes

    Ở bài viết này mình sẽ hướng dẫn các bạn triển khai ArgoCD lên cụm Kubernetes, hi vọng bài viết này sẽ giúp các bạn triển khai 1 cách nhanh chóng công cụ này.

    Đầu tiên ta vào kho Repository chứa các file manifest hỗ trợ triển khai ArgoCD https://github.com/argoproj/argo-cd

    Ở đây mình đang demo nên mình sử dụng cách triển khai Non-HA

    Ta tạo namespace argocd và apply file manifest như dưới

    root@loadbalancer3:~# kubectl create namespace argocd
    namespace/argocd created
    root@loadbalancer3:~# kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.12/manifests/install.yaml

    Xem các thành phần đã triển khai

    root@loadbalancer3:~/learn-devops/argocd# kubectl get deploy -n argocd
    NAME                               READY   UP-TO-DATE   AVAILABLE   AGE
    argocd-applicationset-controller   1/1     1            1           60m
    argocd-dex-server                  1/1     1            1           60m
    argocd-notifications-controller    1/1     1            1           60m
    argocd-redis                       1/1     1            1           60m
    argocd-repo-server                 1/1     1            1           60m
    argocd-server                      1/1     1            1           60m

    Sau khi apply file manifest, chúng ta verify lại kết quả.

    root@loadbalancer3:~# kubectl get po,svc -n argocd
    NAME                                                   READY   STATUS    RESTARTS   AGE
    pod/argocd-application-controller-0                    1/1     Running   0          2m42s
    pod/argocd-applicationset-controller-bf6bf659d-kw5kd   1/1     Running   0          2m43s
    pod/argocd-dex-server-787dcc5fd7-l7xqp                 1/1     Running   0          2m43s
    pod/argocd-notifications-controller-78cffff85c-nfz5q   1/1     Running   0          2m43s
    pod/argocd-redis-65596bf87-q6gp5                       1/1     Running   0          2m43s
    pod/argocd-repo-server-5444cd8878-6csd7                1/1     Running   0          2m43s
    pod/argocd-server-6b567b5949-ffgp7                     1/1     Running   0          2m43s
    
    NAME                                              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
    service/argocd-applicationset-controller          ClusterIP   10.111.82.56     <none>        7000/TCP,8080/TCP            2m43s
    service/argocd-dex-server                         ClusterIP   10.104.24.46     <none>        5556/TCP,5557/TCP,5558/TCP   2m43s
    service/argocd-metrics                            ClusterIP   10.105.188.183   <none>        8082/TCP                     2m43s
    service/argocd-notifications-controller-metrics   ClusterIP   10.99.157.96     <none>        9001/TCP                     2m43s
    service/argocd-redis                              ClusterIP   10.109.110.154   <none>        6379/TCP                     2m43s
    service/argocd-repo-server                        ClusterIP   10.105.63.122    <none>        8081/TCP,8084/TCP            2m43s
    service/argocd-server                             ClusterIP   10.108.186.16    <none>        80/TCP,443/TCP               2m43s
    service/argocd-server-metrics                     ClusterIP   10.106.75.77     <none>        8083/TCP                     2m43s

    Theo kết quả trên chúng ta thấy service argocd-server đang được gắn port 80/TCP, 443/TCP nhưng type network đang là ClusterIP (ClusterIP chỉ các container thấy được nhau). Muốn các thiết bị ở ngoài kết nối được vào container thì chúng ta cần phải expose cổng này ra ngoài bằng cách đơn giản nhất là đổi type network từ ClusterIP sang NodePort là xong.

    Ta tiến hành edit service/argocd-server và thay đổi type network từ ClusterIP sang NodePort như sau:

    kubectl edit svc/argocd-server -n argocd

    Kiểm tra lại service/argocd-server ta thấy port 80 đang được expose cổng 31395, và port 443 sang được expose cổng 31607.

    root@loadbalancer3:~# kubectl get svc -n argocd
    NAME                                              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
    service/argocd-applicationset-controller          ClusterIP   10.111.82.56     <none>        7000/TCP,8080/TCP            3h54m
    service/argocd-dex-server                         ClusterIP   10.104.24.46     <none>        5556/TCP,5557/TCP,5558/TCP   3h54m
    service/argocd-metrics                            ClusterIP   10.105.188.183   <none>        8082/TCP                     3h54m
    service/argocd-notifications-controller-metrics   ClusterIP   10.99.157.96     <none>        9001/TCP                     3h54m
    service/argocd-redis                              ClusterIP   10.109.110.154   <none>        6379/TCP                     3h54m
    service/argocd-repo-server                        ClusterIP   10.105.63.122    <none>        8081/TCP,8084/TCP            3h54m
    service/argocd-server                             NodePort    10.108.186.16    <none>        80:31395/TCP,443:31607/TCP   3h54m
    service/argocd-server-metrics                     ClusterIP   10.106.75.77     <none>        8083/TCP                     3h54m

    Để ý hình dưới, service/argocd-server đang nằm ở worker2 và worker2 đang nắm ip address 192.168.13.211, vậy chúng ta dùng trình duyệt để login theo link https://192.168.13.211:31607 để xem kết quả.

    Kết quả chúng ta đã truy cập được vào ArgoCD phiên bản giao diện web.

    Sử dụng command sau để lấy mật khẩu

    kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d
    xIpxgf7QNVsQGOXY -> đây là mật khẩu nhé

    Sau khi lấy được mật khẩu, ta login theo thông tin sau

    Username: admin

    Password: xIpxgf7QNVsQGOXY

    Và đây là kết quả cuối cùng. Chúc các bạn may mắn.

    Bài viết gần đây

    spot_img

    Related Stories

    Leave A Reply

    Please enter your comment!
    Please enter your name here

    Đăng ký nhận thông tin bài viết qua email