Argo CD系列視頻圖文版之安裝 argocd 並運行示例

開篇

本期視頻,我們來在試驗環境中安裝 ArgoCD,然後跑個官方 demo,帶大家初步感受下 ArgoCD 的功能。

配套視頻


安裝 ArgoCD

ArgoCD 的部署,也可以通過官方提供的 Helm Chart 直接部署,但爲了讓大家瞭解更多的底層邏輯,咱們直接使用官方提供的配置清單安裝。

1. 應用 ArgoCD 配置清單

kubectl create namespace argocd 
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

2. 查看部署配置

kubectl get deploy -n argocd

NAME                 READY   UP-TO-DATE   AVAILABLE   AGE
argocd-dex-server    1/1     1            1           46m
argocd-redis         1/1     1            1           46m
argocd-repo-server   1/1     1            1           46m
argocd-server        1/1     1            1           46m

3. 配置 ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: argocd-server-ingress
  namespace: argocd
  annotations:
    kubernetes.io/tls-acme: "true"
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
  rules:
  - host: monday.automan.fun
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: argocd-server
            port:
              name: https
  tls:
  - hosts:
    - monday.automan.fun
    secretName: argocd-secret

4. 查看服務器導出地址

kubectl get ingress -n argocd

NAME                    CLASS    HOSTS                ADDRESS       PORTS     AGE
argocd-server-ingress   <none>   monday.automan.fun   10.10.14.91   80, 443   3m18s

5.配置 hosts 解析域名

10.10.14.91 monday.automan.fun

配置好後,訪問 monday.automan.fun 即可進入登錄頁。

注:細心的同學可能已經注意到,雖然 ingress 中配置了 https 協議,但瀏覽器仍然顯示鏈接非安全。那是因爲 argocd-secret 中存儲的證書,是 ArgoCD 生成的自簽證書,瀏覽器不信任。想要獲得安全連接,可以使用瀏覽器信任的域名證書替換即可。

獲取管理員密碼

# admin 用戶密碼
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

部署 demo

1.創建應用

argocd-example-apps.git[1]

基於 ArgoCD 官方示例倉庫,部署 kustomize-guestbookguestbook 命名空間

注: 如果目標命名空間不存在,需勾選 AUTO CREATE NAMESPACE


2.導出應用服務

修改 guestbook 命令空間下的 service 類型,由 ClusterIp 變更爲 NodePort

apiVersion: v1
kind: Service
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/instance":"guestbook"},"name":"kustomize-guestbook-ui","namespace":"guestbook"},"spec":{"ports":[{"port":80,"targetPort":80}],"selector":{"app":"guestbook-ui"}}}
  creationTimestamp: "2021-09-09T11:52:45Z"
  labels:
    app.kubernetes.io/instance: guestbook
  name: kustomize-guestbook-ui
  namespace: guestbook
  resourceVersion: "492594"
  selfLink: /api/v1/namespaces/guestbook/services/kustomize-guestbook-ui
  uid: 40c30cd5-5743-4c86-a2af-3338d9d0a2d0
spec:
  clusterIP: 10.233.5.15
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: guestbook-ui
  sessionAffinity: None
  type: NodePort # 修改此處

導出服務後,即可通過主機節點IP 地址加端口訪問應用服務。

http://10.10.17.90:30021

結束語

ArgoCD 的安裝部署,看似很麻煩,實際上整個思路還是比較清晰的。ArgoCD 的 UI 是極簡主義風格的,一些管理員功能未在前端中體現,也是出於安全的角度考慮。

下期視頻,我將帶領大家在 github 上創建倉庫,咱們自己動手,跑個樣例出來。

遇到問題不要慌,我們還有社區支持。最後不要忘記點贊哦 !!!

參考資料

[1]

argocd-example-apps.git: https://github.com/argoproj/argocd-example-apps.git


本文分享自微信公衆號 - Jenkins(Jenkins-Community)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章