1:ArgoCD介绍 Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Argo CD是一个基于Kubernetes的声明式的GitOps工具。 它的优势总结如下: 1:应用定义、配置和环境信息是声明式的,并且可以进行版本控制; 2:应用部署和生命周期管理是全自动化的,是可审计的,清晰易懂; 3:Argo CD是一个独立的部署工具,支持对多个环境、多个Kubernetes集群上的应用进行统一部署和管理
2.实验环境:
[root@k8s-master ~]# kubectl get no
NAME STATUS ROLES AGE VERSION
k8s-master Ready control-plane,master 5d17h v1.23.0
k8s-node01 Ready <none> 5d17h v1.23.0
k8s-node02 Ready <none> 5d17h v1.23.0
[root@k8s-master ~]# kubectl get no
NAME STATUS ROLES AGE VERSION
k8s-master Ready control-plane,master 5d17h v1.23.0
k8s-node01 Ready <none> 5d17h v1.23.0
k8s-node02 Ready <none> 5d17h v1.23.0
[root@k8s-master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
quay.io/argoproj/argocd v2.11.3 4a29ef67566a 8 weeks ago 460MB
ghcr.io/dexidp/dex v2.38.0 f94213d142aa 6 months ago 98.3MB
redis 7.0.14-alpine 6642e4fb6e9b 7 months ago 33.2MB
calico/kube-controllers v3.25.0 5e785d005ccc 18 months ago 71.6MB
calico/cni v3.25.0 d70a5947d57e 18 months ago 198MB
calico/node v3.25.0 08616d26b8e7 18 months ago 245MB
calico/kube-controllers v3.23.1 4d33632489a4 2 years ago 135MB
calico/cni v3.23.1 90d97aa939bb 2 years ago 262MB
calico/node v3.23.1 fbfd04bbb7f4 2 years ago 219MB
registry.aliyuncs.com/google_containers/kube-apiserver v1.23.0 e6bf5ddd4098 2 years ago 135MB
registry.aliyuncs.com/google_containers/kube-scheduler v1.23.0 56c5af1d00b5 2 years ago 53.5MB
registry.aliyuncs.com/google_containers/kube-proxy v1.23.0 e03484a90585 2 years ago 112MB
registry.aliyuncs.com/google_containers/kube-controller-manager v1.23.0 37c6aeb3663b 2 years ago 125MB
registry.aliyuncs.com/google_containers/etcd 3.5.1-0 25f8c7f3da61 2 years ago 293MB
kubernetesui/dashboard v2.4.0 72f07539ffb5 2 years ago 221MB
registry.aliyuncs.com/google_containers/coredns v1.8.6 a4ca41631cc7 2 years ago 46.8MB
registry.aliyuncs.com/google_containers/pause 3.6 6270bb605e12 2 years ago 683kB
kubernetesui/metrics-scraper v1.0.7 7801cfc6d5c0 3 years ago 34.4MB
关于argocd介质详见:
链接: https://pan.baidu.com/s/1ho-ezf6GUzllOHGQObQeQA?pwd=u8up 提取码: u8up
1:创建一个命名空间存放argocd的Pod
[root@k8s-master ~]# kubectl create ns argocd
namespace/argocd created
2:通过本地方式部署
[root@k8s-master ~]# kubectl apply -n argocd -f install.yaml
[root@k8s-master ~]# kubectl get pod,svc -n argocd
NAME READY STATUS RESTARTS AGE
pod/argocd-application-controller-0 1/1 Running 1 (10h ago) 10h
pod/argocd-applicationset-controller-6c9ffcb978-5f4tv 1/1 Running 1 (10h ago) 10h
pod/argocd-dex-server-dbccdf8d8-ngfdr 1/1 Running 1 (10h ago) 10h
pod/argocd-notifications-controller-6d7b75d9b-5j7nn 1/1 Running 1 (10h ago) 10h
pod/argocd-redis-78ff6464dd-6nklb 1/1 Running 1 (10h ago) 10h
pod/argocd-repo-server-6d9474d5c6-4jh8s 1/1 Running 1 (10h ago) 10h
pod/argocd-server-5cdbb4db49-f2245 1/1 Running 1 (10h ago) 10h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/argocd-applicationset-controller ClusterIP 10.108.56.98 <none> 7000/TCP,8080/TCP 10h
service/argocd-dex-server ClusterIP 10.100.5.12 <none> 5556/TCP,5557/TCP,5558/TCP 10h
service/argocd-metrics ClusterIP 10.108.45.43 <none> 8082/TCP 10h
service/argocd-notifications-controller-metrics ClusterIP 10.111.144.10 <none> 9001/TCP 10h
service/argocd-redis ClusterIP 10.107.130.208 <none> 6379/TCP 10h
service/argocd-repo-server ClusterIP 10.109.42.152 <none> 8081/TCP,8084/TCP 10h
service/argocd-server NodePort 10.109.160.22 <none> 80:30230/TCP,443:32036/TCP 10h
service/argocd-server-metrics ClusterIP 10.106.80.200 <none> 8083/TCP 10h
使用NodePort方式暴露端口
[root@k8s-master argocd]# kubectl edit svc -n argocd argocd-server
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
kind: Service
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/component":"server","app.kubernetes.io/name":"argocd-server","app.kubernetes.io/part-of":"argocd"},"name":"argocd-server","namespace":"argocd"},"spec":{"ports":[{"name":"http","port":80,"protocol":"TCP","targetPort":8080},{"name":"https","port":443,"protocol":"TCP","targetPort":8080}],"selector":{"app.kubernetes.io/name":"argocd-server"}}}
creationTimestamp: "2024-08-02T13:53:28Z"
labels:
app.kubernetes.io/component: server
app.kubernetes.io/name: argocd-server
app.kubernetes.io/part-of: argocd
name: argocd-server
namespace: argocd
resourceVersion: "59196"
uid: 9bf21f42-9cf8-446a-81b2-2ec236369914
spec:
clusterIP: 10.109.160.22
clusterIPs:
- 10.109.160.22
externalTrafficPolicy: Cluster
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: http
nodePort: 30230
port: 80
protocol: TCP
targetPort: 8080
- name: https
nodePort: 32036
port: 443
protocol: TCP
targetPort: 8080
selector:
app.kubernetes.io/name: argocd-server
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}
获取admin的密码
[root@k8s-master ~]# echo $(kubectl get secret -n argocd argocd-initial-admin-secret -o yaml | grep password | awk -F: '{print $2}') | base64 -d
dlhJwUhDI0pAkIYO[root@k8s-master ~]#
访问地址:https://192.168.56.201:32036/
用户admin,密码
修改密码:
密码修改为admin123