参考:
https://www.bilibili.com/video/BV1er4y1Q76U?spm_id_from=333.999.0.0
https://argo-cd.readthedocs.io/en/stable/getting_started/#ingress
https://github.com/kubernetes/ingress-nginx
https://argo-cd.readthedocs.io/en/stable/getting_started/#4-login-using-the-cli

1 create ns

  1. # ns
  2. kubectl create namespace argocd

2 argocd deploy

  1. # argocd
  2. # 下载最新安装文件,将官方镜像下载后存到本地仓库后修改安装文件中的镜像名称为本地仓库中的
  3. mkdir -p argocd && cd argocd
  4. wget https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
  5. docker pull quay.io/argoproj/argocd-applicationset:v0.4.1
  6. docker pull quay.io/argoproj/argocd:v2.3.3
  7. docker pull redis:6.2.6-alpine
  8. docker pull ghcr.io/dexidp/dex:v2.30.2
  9. docker tag quay.io/argoproj/argocd-applicationset:v0.4.1 harbor.dockerregistry.com/app/argocd/argocd-applicationset:v0.4.1
  10. docker tag quay.io/argoproj/argocd:v2.3.3 harbor.dockerregistry.com/app/argocd/argocd:v2.3.3
  11. docker tag redis:6.2.6-alpine harbor.dockerregistry.com/app/argocd/redis:6.2.6-alpine
  12. docker tag ghcr.io/dexidp/dex:v2.30.2 harbor.dockerregistry.com/app/argocd/dex:v2.30.2
  13. docker push harbor.dockerregistry.com/app/argocd/argocd-applicationset:v0.4.1
  14. docker push harbor.dockerregistry.com/app/argocd/argocd:v2.3.3
  15. docker push harbor.dockerregistry.com/app/argocd/redis:6.2.6-alpine
  16. docker push harbor.dockerregistry.com/app/argocd/dex:v2.30.2
  17. vim install.yaml
  18. ## edit images
  19. kubectl apply -n argocd -f install.yaml

3 argocd ingress

  1. # argocd ingress
  2. # 强制使用https 做为登录页,证书用已安装argocd所提供的,不用再自己做
  3. vim argocd-server-ingress.yaml
  4. # add
  1. ---
  2. apiVersion: networking.k8s.io/v1
  3. kind: Ingress
  4. metadata:
  5. name: argocd-server-ingress
  6. namespace: argocd
  7. annotations:
  8. kubernetes.io/tls-acme: "true"
  9. kubernetes.io/ingress.class: "nginx"
  10. nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
  11. nginx.ingress.kubernetes.io/ssl-passthrough: "true"
  12. nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
  13. spec:
  14. rules:
  15. - host: argocd.local.com
  16. http:
  17. paths:
  18. - pathType: Prefix
  19. path: /
  20. backend:
  21. service:
  22. name: argocd-server
  23. port:
  24. name: https
  25. #name: http
  26. tls:
  27. - hosts:
  28. - argocd.local.com
  29. secretName: argocd-secret # do not change, this is provided by Argo CD
  1. kubectl apply -f argocd-server-ingress.yaml

4 login argocd

  1. # secret
  2. # 获取随机字符串
  3. $ kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
  4. # hosts
  5. # 将lb的IP与自定义域名进行绑定,写入服务器与客户端的hosts文件中
  6. vim /etc/hosts
  7. 10.1.6.233 argocd.local.com
  8. # windows hosts
  9. 10.1.6.233 argocd.local.com
  10. # login
  11. https://argocd.local.com/ # 跳过证书检查,直接信任
  12. # 默认用户名,admin
  13. # 密码,用上面获取到的字符串

image.png

若登录不上,很有可能是开了代理,如梯子等。先关了再重试。

5 modify secret

image.png

6 guestbook deploy

  1. # images
  2. # 将镜像load到本地
  3. docker pull lowyard/ks-guestbook-demo:0.1
  4. docker tag lowyard/ks-guestbook-demo:0.1 harbor.dockerregistry.com/app/ks-guestbook-demo:0.1
  5. docker push harbor.dockerregistry.com/app/ks-guestbook-demo:0.1
  6. docker pull lowyard/ks-guestbook-demo:0.2
  7. docker tag lowyard/ks-guestbook-demo:0.2 harbor.dockerregistry.com/app/ks-guestbook-demo:0.2
  8. docker push harbor.dockerregistry.com/app/ks-guestbook-demo:0.2
  9. # code
  10. # https://github.com/argoproj/argocd-example-apps.git
  11. # 将官方demo 代码搞到自己本地的gitlab
  12. # edit code
  13. # 代码路径:argocd-example-apps\kustomize-guestbook\guestbook-ui-deployment.yaml
  14. # 位置:
  15. - image: harbor.dockerregistry.com/app/ks-guestbook-demo:0.1
  16. # deploy

image.png

  1. # service export
  2. sessionAffinity: None
  3. #type: ClusterIP
  4. type: NodePort

image.png

image.png

image.png

image.png