下载安装的yaml文件
[root@k8s-master1-60 ~]# mkdir argocd
[root@k8s-master1-60 ~]# cd argocd/
[root@k8s-master1-60 argocd]# wget https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
下载Argocd所需镜像(三个镜像)
[root@k8s-master1-60 argocd]# cat install.yaml |grep image: | sort -n | uniq -c
1 image: ghcr.io/dexidp/dex:v2.43.0
1 image: public.ecr.aws/docker/library/redis:7.2.7-alpine
8 image: quay.io/argoproj/argocd:v3.1.3
[root@k8s-master1-60 argocd]# docker pull ghcr.io/dexidp/dex:v2.43.0
[root@k8s-master1-60 argocd]# docker pull public.ecr.aws/docker/library/redis:7.2.7-alpine
[root@k8s-master1-60 argocd]# docker pull quay.io/argoproj/argocd:v3.1.3修改镜像tag、上传到私有镜像仓库
[root@k8s-master1-60 argocd]# docker tag quay.io/argoproj/argocd:v3.1.1 swr.cn-east-3.myhuaweicloud.com/beijia/argocd:v3.1.1
[root@k8s-master1-60 argocd]# docker tag public.ecr.aws/docker/library/redis:7.2.7-alpine swr.cn-east-3.myhuaweicloud.com/beijia/redis:7.2.7-alpine
[root@k8s-master1-60 argocd]# docker tag ghcr.io/dexidp/dex:v2.43.0 swr.cn-east-3.myhuaweicloud.com/beijia/dex:v2.43.0
[root@k8s-master1-60 argocd]# docker pull swr.cn-east-3.myhuaweicloud.com/beijia/dex:v2.43.0
[root@k8s-master1-60 argocd]# docker pull swr.cn-east-3.myhuaweicloud.com/beijia/redis:7.2.7-alpine
[root@k8s-master1-60 argocd]# docker pull swr.cn-east-3.myhuaweicloud.com/beijia/argocd:v3.1.1修改替换install.yaml文件、拉取私有仓库镜像进行启动部署
[root@k8s-master1-60 argocd]# sed -i 's#image: quay.io/argoproj/argocd:v3.1.3#image: swr.cn-east-3.myhuaweicloud.com/beijia/argocd:v3.1.1#g' install.yaml
[root@k8s-master1-60 argocd]# sed -i 's#image: public.ecr.aws/docker/library/redis:7.2.7-alpine#image: swr.cn-east-3.myhuaweicloud.com/beijia/redis:7.2.7-alpine#g' install.yaml
[root@k8s-master1-60 argocd]# sed -i 's#image: ghcr.io/dexidp/dex:v2.43.0#image: swr.cn-east-3.myhuaweicloud.com/beijia/dex:v2.43.0#g' install.yaml
[root@k8s-master1-60 argocd]# cat install.yaml |grep image: | sort -n | uniq -c
8 image: swr.cn-east-3.myhuaweicloud.com/beijia/argocd:v3.1.1
1 image: swr.cn-east-3.myhuaweicloud.com/beijia/dex:v2.43.0
1 image: swr.cn-east-3.myhuaweicloud.com/beijia/redis:7.2.7-alpine配置镜像拉取的密钥
[root@k8s-master1-60 argocd]# cat install.yaml |grep "imagePullPolicy: Always"
imagePullPolicy: Always
imagePullPolicy: Always
imagePullPolicy: Always
imagePullPolicy: Always
imagePullPolicy: Always
imagePullPolicy: Always
imagePullPolicy: Always
imagePullPolicy: Always
#在所有的imagePullPolicy: Always行下面添加以下内容
imagePullSecrets:
- name: huawei-images
#实例:
image: swr.cn-east-3.myhuaweicloud.com/beijia/argocd:v3.1.1
imagePullPolicy: Always
imagePullSecrets:
- name: huawei-images执行部署文件install.yaml
[root@k8s-master1-60 argocd]# kubectl apply -f install.yaml
########等待镜像启动完成如下
[root@k8s-master1-60 argocd]# kubectl get deployments.apps -n argocd
NAME READY UP-TO-DATE AVAILABLE AGE
argocd-applicationset-controller 1/1 1 1 6d23h
argocd-dex-server 1/1 1 1 6d23h
argocd-notifications-controller 1/1 1 1 6d23h
argocd-redis 1/1 1 1 6d23h
argocd-repo-server 1/1 1 1 6d23h
argocd-server 1/1 1 1 6d23h
[root@k8s-master1-60 argocd]# kubectl get pod -n argocd
NAME READY STATUS RESTARTS AGE
argocd-application-controller-0 1/1 Running 0 6d23h
argocd-applicationset-controller-957474ff5-7nrpn 1/1 Running 0 6d23h
argocd-dex-server-bc97497c6-579rf 1/1 Running 0 6d23h
argocd-notifications-controller-7d797bf45b-chbnc 1/1 Running 0 6d23h
argocd-redis-74b74f9968-nlmhj 1/1 Running 0 6d23h
argocd-repo-server-7c96dfd669-sk82d 1/1 Running 0 6d23h
argocd-server-5b8bb8cd8c-bh9kd 1/1 Running 0 6d23h查看svc端口进行登录

https://172.30.42.63:30786/

查看初始admin密码
[root@k8s-master1-60 argocd]# kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o name | cut -d'/' -f 2
argocd-server-5b8bb8cd8c-bh9kd
配置项目步骤
新建一个项目Settings → Projects → NEW PROJECTS

配置新建的Projects、直接点击新建的Projects







添加仓库地址,Settings → Repositories → +CONNECT REPO

选择连接仓库的类型:此次选择http方式

填写如下信息、然后点击红框内的按钮进行创建

代码仓库准备部署的yaml文件和Jenkinsfile文件、当然还有Dockerfile文件
1:deployment部署文件
[root@gitlab-70 deployment]# cat deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: ruoyi-gateway
namespace: beijia
labels:
app: ruoyi-gateway
spec:
replicas: 1
selector:
matchLabels:
app: ruoyi-gateway
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
name: ruoyi-gateway
namespace: mall
labels:
app: ruoyi-gateway
spec:
affinity: {}
containers:
- image: swr.cn-east-3.myhuaweicloud.com/beijia/ruoyi-gateway:1753692859
name: ruoyi-gateway
ports:
- containerPort: 80
protocol: TCP
imagePullPolicy: IfNotPresent
resources:
limits:
cpu: '1'
memory: 2Gi
requests:
cpu: '500m'
memory: 1Gi
imagePullSecrets:
- name: huawei-image
dnsPolicy: ClusterFirst
restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
name: ruoyi-gateway
namespace: beijia
labels:
app: ruoyi-gateway
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: ruoyi-gateway
type: ClusterIP
##########################################################################################################################################
2:Jenkinsfile文件
[root@gitlab-70 ruoyi-gateway]# cat Jenkinsfile
pipeline {
agent any
environment {
REGISTRY= "swr.cn-east-3.myhuaweicloud.com"
IMAGE_TAG = sh(script: "echo `date '+%s'`", returnStdout: true).trim()
}
stages {
stage ('拉取代码') {
steps {
checkout scmGit(branches: [[name: '${branch}']], extensions: [], userRemoteConfigs: [[credentialsId: '1', url: 'http://172.30.42.70/root/ruoyi_cloud.git']])
}
}
stage ('打包构建') {
steps {
sh 'mvn clean package -Dmaven.test.skip=true'
}
}
stage ('镜像构建并推送到远程仓库') {
steps {
sh 'cd ${WORKSPACE}/ruoyi-gateway/target/ && cp ../Dockerfile ./ && docker build -t swr.cn-east-3.myhuaweicloud.com/beijia/ruoyi-gateway:${IMAGE_TAG} .'
sh 'docker push swr.cn-east-3.myhuaweicloud.com/beijia/ruoyi-gateway:${IMAGE_TAG}'
}
}
stage ('提交配置变更') {
steps {
sh 'rm -rf ruoyi_cloud'
sh 'git clone git@172.30.42.70:root/ruoyi_cloud.git'
dir('ruoyi_cloud/ruoyi-gateway/deployment') {
sh "sed -i 's/gateway:.*/gateway:${IMAGE_TAG}/' deployment.yaml"
sh 'git add deployment.yaml'
sh 'git commit -am "deploy ${IMAGE_TAG}"'
sh 'git push origin master'
}
}
}
}
}
################################################################################################################################################
3:Dockerfile文件
[root@gitlab-70 ruoyi-gateway]# cat Dockerfile
# 基础镜像
FROM swr.cn-east-3.myhuaweicloud.com/beijia/jdk8:latest
# author
MAINTAINER beijia
# 创建目录
RUN mkdir -p /home/ruoyi
# 指定路径
WORKDIR /home/ruoyi
# 复制jar文件到路径
COPY ./ruoyi-gateway.jar /home/ruoyi/ruoyi-gateway.jar
# 设置 JVM 启动参数
ENV JAVA_OPTS="-Xms1024m -Xmx1024m -Djava.security.egd=file:/dev/./urandom -Dfile.encoding=utf-8"
# 启动网关服务
ENTRYPOINT java ${JAVA_OPTS} -jar ruoyi-gateway.jar新建Applications(具体跑的容器项目)



点击创建

点击SYNC进行同步部署

查看部署结果
/[root@k8s-master1-60 argocd]# kubectl get deployments.apps -n beijia ruoyi-gateway
NAME READY UP-TO-DATE AVAILABLE AGE
ruoyi-gateway 1/1 1 1 29m
[root@k8s-master1-60 argocd]# kubectl get pod -n beijia ruoyi-gateway-84756c8d4c-4blxg
NAME READY STATUS RESTARTS AGE
ruoyi-gateway-84756c8d4c-4blxg 1/1 Running 3 (27m ago) 30m