開篇
本期視頻,我們來在試驗環境中安裝 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-guestbook
到 guestbook
命名空間
“注: 如果目標命名空間不存在,需勾選 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 上創建倉庫,咱們自己動手,跑個樣例出來。
遇到問題不要慌,我們還有社區支持。最後不要忘記點贊哦 !!!
參考資料
argocd-example-apps.git: https://github.com/argoproj/argocd-example-apps.git
本文分享自微信公衆號 - Jenkins(Jenkins-Community)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。