本期视频,我们来在试验环境中安装 ArgoCD,然后跑个官方 demo,带大家初步感受下 ArgoCD 的功能。
配套视频
安装 ArgoCD
ArgoCD 的部署,也可以通过官方提供的 Helm Chart 直接部署,但为了让大家了解更多的底层逻辑,咱们直接使用官方提供的配置清单安装。
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
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
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
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
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
argocd-example-apps.git[1]
基于 ArgoCD 官方示例仓库,部署 kustomize-guestbook
到 guestbook
命名空间
“注: 如果目标命名空间不存在,需勾选 AUTO CREATE NAMESPACE ”
修改 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 ”
下期视频,我将带领大家在 github 上创建仓库,咱们自己动手,跑个样例出来。
遇到问题不要慌,我们还有社区支持。最后不要忘记点赞哦 !!!
[1]
argocd-example-apps.git: https://github.com/argoproj/argocd-example-apps.git