일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Monitoring
- scraping
- docker
- eks
- opentelemetry
- helm
- gitlab ci
- GitLab
- 웹 취약점
- Crawling
- CD
- CI/CD
- linkerd
- argocd
- Kubernetes
- deploy
- 크롤링
- gitlab cd
- Grafana
- Service Mesh
- sonarqube
- Jenkins
- 스크레이핑
- Prometheus
- CI
- ECR
- Resource
- 웹 해킹
- 모의해킹
- DevOps
- Today
- Total
목록WorkFlow (13)
ㅡ.ㅡ
Gitlat Repo Jenkinsfile 수정 Argocd에서 사용되는 Helm Repo에 저장된 이미지의 태그 값을 업데이트하여 ArgoCD에서 변경 사항을 감지하게하는 과정이다. Clone repository push된 저장소를 불러오는 과정으로 JenkinsAgent로 저장소의 파일들을 복사한다. 또한 이미지의 태그값으로 사용할 COMMIT_ID_SHORT값을 추출한다. Image Tag Update 기존에 불러온 APP의 저장소를 삭제하고 Gitlab credentials을 사용해 Helm저장소를 불러온다. Clone repository Stage에서 values.yaml파일에 저장된 tag값을 추출한 COMMIT_ID_SHORT 값으로 변경 후 push를한다. Gitlab credentials..
helm 수정 239 - 241 : pipeline 작업 시 docker, ECR 관련 플러그인 설치 그외 설정 : pipeline 작업을 수행하는 agent에서 docker를 사용하기위한 설정 231 installPlugins: 232 - kubernetes:1.30.1 233 - workflow-aggregator:2.6 234 - git:4.8.2 235 - configuration-as-code:1.52 236 - gitlab-plugin:1.5.20 237 - sonar:2.13.1 238 - generic-webhook-trigger:1.77 239 - amazon-ecr:1.6 240 - aws-credentials:1.31 241 - docker-workflow:1.26 575 agent:..
Gitlab app/springboot git 이미지를 통해 helm 리소스가 저장된 프로젝트를 클론하여 CI시 변경된 이미지 태그값과 커밋 메시지를 app이있는 저장소의 COMMIT_SHORT_SHA값으로 입력하여 변경된 리소스의 추적성을 확보할 수 있다. argocd쪽에서는 해당 프로젝트를 주기적으로 확인하다가 자동 배포를 사용할경우 변경된 리소스를 감지하여 배포하게 된다. helm-value-update: stage: deploy image: entrypoint: [''] name: alpine/git:latest script: - mkdir /helm-repo; cd /helm-repo - git clone http://아이디:비밀번호@프로젝트주소.git - git config --global u..
kubectl apply -f 링크 주소 형식으로 설치를 안하는 이유는 삭제하려고 할 때 설치했을 당시와 내용이 변경됬으면 삭제할 때 오류가 발생하는 부분을 방지하기위해 wget으로 파일을 다운로드 후 진행한다(정확히 테스트는 안해봤지만.. 이름, 버전 같은것들이 변경됬을경우 리소스를 찾을 수 없다고 나올 확률이 높음) 네임스페이스 생성 및 리소스 파일 다운로드 kubectl create namespace argocd wget https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml -O argocd.yaml argocd.yaml > NLB 설정 변경(aws lb controller - 2.2버전) Annotation..
Gitlab 계정 및 API 키 발급 Jenkins Gitlab API키 등록 및 연결 Dashboard > Credentials > Global > Add Credentials 등록한 API키로 Gitlab 연결 확인 Gitlab 프로젝트 내 Intergrations > Jenkins 활성화 및 Jenkins 주소, 계정, 비밀번호 등입력 후 테스트 Jenkins 프로젝트 생성 및 GITLAB 프로젝트 연동 Jenkins Project 생성(Pipeline) 및 작업 추가 CI 스크립트를 Jenkins에서 관리하는 방법 CI 스크립트를 Gitlab 저장소에서 관리하는 방법 Credentials을 생성하는 방법으로 Gitlab의 ID와 Password를 입력 Gitlab 저장소에 Jenkinsfile 생..
EBS 생성 Jenkins의 데이터를 저장할 볼륨을 생성하는 과정으로 Jenkins가 설치될 노드가 생성되는 영역과 일치 시켜줘야 pod 생성 시 볼륨이 연결된다. EBS는 단일 노드에서만 사용할 수 있어 멀티 노드에서 볼륨을 공유하여 사용할 시 EFS나 NFS를 고려해봐야한다. export VOLUME_ID=$(aws ec2 create-volume --size 20 \ --region ap-northeast-2 \ --availability-zone ap-northeast-2a \ --volume-type gp2 \ --tag-specifications 'ResourceType=volume, Tags=[{Key=Name,Value=EKS-Jenkins}]' \ | jq '.Vol..
이전에 생성한 gitlab-admin SA와 dtzar/helm-kubectl 이미지를 활용해 Gitlab에서 helm 을 사용하여 CD작업을 진행한다. helm_charts 저장소에 아래 이미지와 같이 helm_charts 폴더에 생성할 리소스 파일을 준비해놓는다. values.yaml에 정의된 값들이 templates에 잇는 K8S 리소스 파일에 매핑된다. .gitlab-ci.yml kubectl 명령어를 사용하기 위해 k8s api 서버에 인증할 값들을 CI/CD 변수로 등록한다. 배포시 변경되는값(이미지 파일의 태그 값과 환경 등)들을 values파일에 추가하여 배포를 진행한다. before_script: - export # 스크립트에서 사용할 변수 설정 variables: DOCKER_TLS_C..
이전에 생성한 gitlab-admin SA와 dtzar/helm-kubectl 이미지를 활용해 Gitlab에서 CD작업을 진행한다. k8s-conf/resource.yaml 저장소에 아래 이미지와 같이 k8s-conf에 생성할 리소스 파일을 준비해놓는다. # 내부 접근용 서비스(ClusterIP) - 셀렉터의 라벨과 파드의 라벨 매칭 apiVersion: v1 kind: Service metadata: name: springboot-svc-clusterip spec: ports: - name: springboot-web-clusterip port: 7070 targetPort: 8080 selector: app: springboot type: ClusterIP --- # 내/외부 접근용 서비스(Nodep..
ECR 주소 변수 생성 AWS CLI + Docker 이미지 생성 아래 이미지와 같이 ECR 내 저장소에 들어가면 푸시 명령어가 작성되어있다. CI 작업 진행시 사용할 도커 이미지와 ECR에 로그인할 AWS-CLI 이미지를 병합한 이미지를 생성한다. # Dockerfile FROM amazon/aws-cli as initial FROM docker.io/library/docker:19.03.15 COPY --from=initial / / # 생성된 IMAGE ECR push(Dockerfile이 있는 경로에서 진행) aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin docker b..