云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上( 四 )

# 配置完成直接部署即可kubectl apply -f openelb/openelb-eip.yaml安装ArgoCDArgoCD 的部署,也可以通过官方提供的 Helm Chart 直接部署,但为了了解更多的底层逻辑,这里直接使用官方提供的配置清单安装 。
# 建命名空间kubectl create namespace argocd# Non-HA:kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.12/manifests/install.yaml# HA:kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.12/manifests/ha/install.yaml# 安装应用 ArgoCD 配置清单,生产使用建议使用stable,https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yamlkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/master/manifests/install.yaml# 或者先下载再安装wget https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.12/manifests/install.yamlkubectl apply -n argocd -f install.yaml

云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上

文章插图
通过k9s查看argocd命名空间的pods
云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上

文章插图
默认情况下,Argo CD API服务器不公开外部IP 。要访问API服务器,可以选择以下技术之一来公开Argo CD API服务器:
  • Service Type Load Balancer:修改argocd-server服务类型为LoadBalancer:
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'
  • Port Forwarding:Kubectl端口转发还可以用于连接到API服务器,而不公开服务 。操作如下后可以使用https://localhost:8080访问API服务器
kubectl port-forward svc/argocd-server -n argocd 8080:443
  • Ingress配置,详细可以参考官方的文档

云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上

文章插图
创建vim argocd-ingress.yaml
apiVersion: networking.k8s.io/v1kind: Ingressmetadata:name: argocd-server-ingressnamespace: argocdannotations:kubernetes.io/tls-acme: "true"kubernetes.io/ingress.class: nginxnginx.ingress.kubernetes.io/force-ssl-redirect: "true"nginx.ingress.kubernetes.io/ssl-passthrough: "true"nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"spec:rules:- host: argocd.test.comhttp:paths:- path: /pathType: Prefixbackend:service:name: argocd-serverport:name: httpstls:- hosts:- argocd.test.comsecretName: argocd-secret# 创建ingresskubectl apply -f argocd-ingress.yaml# 查看服务器导出地址kubectl get ingress -n argocd
云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上

文章插图
如果本地使用可以直接配置hosts文件 ,配置好后,访问 argocd.test.com 即可进入登录页 。
192.168.5.53 argocd.test.com注:细心的同学可能已经注意到,虽然 ingress 中配置了 https 协议,但浏览器仍然显示链接非安全 。那是因为 argocd-secret 中存储的证书,是 ArgoCD 生成的自签证书,浏览器不信任 。想要获得安全连接,可以使用浏览器信任的域名证书替换即可 。
# admin 用户密码kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d输入默认访问用户admin和上述的密码后进入主页面
云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上

文章插图
安装 ArgoCD CLI# 下载wget https://github.com/argoproj/argo-cd/releases/download/v2.4.12/argocd-linux-amd64cp argocd-linux-amd64 /usr/local/bin/argocdchmod +x /usr/local/bin/argocd
云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上

文章插图
# 本机上也可以直接通过svc的内部地址直接登录argocd login 10.43.171.238 --username admin --password c4iy3ZyPGUHdzuaz# 更新密码账号密码argocd account update-password

经验总结扩展阅读