0
点赞
收藏
分享

微信扫一扫

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-guestbook​​​ 到 ​​guestbook​​ 命名空间

注: 如果目标命名空间不存在,需勾选 AUTO CREATE NAMESPACE

Argo CD系列视频图文版之安装 argocd 并运行示例_github

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​​

Argo CD系列视频图文版之安装 argocd 并运行示例_https_02

结束语

ArgoCD 的安装部署,看似很麻烦,实际上整个思路还是比较清晰的。ArgoCD 的 UI 是极简主义风格的,一些管理员功能未在前端中体现,也是出于安全的角度考虑。

下期视频,我将带领大家在 github 上创建仓库,咱们自己动手,跑个样例出来。

遇到问题不要慌,我们还有社区支持。最后不要忘记点赞哦 !!!

参考资料

[1]

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

举报

相关推荐

0 条评论