inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

174만명의 커뮤니티!! 함께 토론해봐요.

명령어 파일이 있으면 좋을 것 같아요.

해결됨

바로쓰는 CI/CD on K8S

강의를 구매해서 수강하며 테스트하고 있는데, 명령어들을 실행하는 파일들이 있으면 좋을 것 같아요. 화면에 있는 명령어들을 보고 치지만, 오타가 있을 경우도 있어서요.

  • docker
  • jenkins
  • kubernetes
  • vagrant
  • argocd
댓글 1 좋아요 0 조회수 182

Argo CD Image Updater를 이용한 수업 이슈(2232) ImagePull

미해결

쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)

처음 강의부터 쭉 따라오신 분들에 한해서 제가 발견한 이슈사항 공유하고 싶어서 글을 남겼습니다. 저의 경우는 Repository를 전부 제 개인껄로 옮겨서 사용중인데요. 문제는 포크를 하지않고 제가 공부하는 Repo가 따로 있어 거기에 모아 놨다는게 문제입니다. github pull할때 path가 미친듯이 짜증나더라구요. pull하는 기준이 제가 git으로 관리하는 폴더들이 싸드리 싹싹 똑같이 생성되기 때문에 접근이 엄청 힘들었는데요. 그래서 이짓을 해야 했습니다. pipeline { agent any tools { gradle 'gradle-7.6.1' jdk 'jdk-17' } parameters { // 배포 환경 선택 choice(choices: ['dev', 'qa', 'prod'], name: 'PROFILE', description: '배포 환경 선택') } environment { // 본인의 username으로 하실 분은 수정해주세요. DOCKERHUB_USERNAME = '비밀' GITHUB_URL = '입니다' APP_VERSION = '1.1.1' BUILD_DATE = sh(script: "echo `date +%y%m%d.%d%H%M`", returnStdout: true).trim() // 위에 date 포맷 오류가 있어요. %y%m%d.%H%M%S가 맞습니다) TAG = "${APP_VERSION}-" + "${BUILD_DATE}" // 소스코드 위치 SOURCE_DIR = "kubernetes/일프로/project/kubernetes-anotherclass-api-tester-main" // 배포 및 도커관련 위치 KUBE_DIR = "kubernetes/일프로/kubernetes-anotherclass-sprint2-main" // 실습 넘버링 CLASS_NUM = '2232' } stages { stage('소스파일 체크아웃') { steps { checkout scmGit(branches: [[name: '*/main']], extensions: [[$class: 'SparseCheckoutPaths', sparseCheckoutPaths: [[path: "${SOURCE_DIR}"]]]], userRemoteConfigs: [[url: "${GITHUB_URL}"]]) sh "pwd" sh "ls -al" } } stage('소스 빌드') { steps { // 755권한 필요 (윈도우에서 Git으로 소스 업로드시 권한은 644) sh "pwd" sh "ls -al" sh "cd ./${SOURCE_DIR} && chmod +x ./gradlew" sh "cd ./${SOURCE_DIR} && gradle clean build" } } stage('릴리즈파일 체크아웃') { steps { checkout scmGit(branches: [[name: '*/main']], extensions: [[$class: 'SparseCheckoutPaths', sparseCheckoutPaths: [[path: "${KUBE_DIR}/${CLASS_NUM}"]]]], userRemoteConfigs: [[url: "${GITHUB_URL}"]]) } } stage('컨테이너 빌드 및 업로드') { steps { // jar 파일 복사 sh "cp ./${SOURCE_DIR}/build/libs/app-0.0.1-SNAPSHOT.jar ./${KUBE_DIR}/${CLASS_NUM}/build/docker/app-0.0.1-SNAPSHOT.jar" script{ // 도커 로그인 withCredentials([usernamePassword(credentialsId: 'docker_password', passwordVariable: 'PASSWORD', usernameVariable: 'USERNAME')]) { sh "echo " + '${PASSWORD}' + " | docker login -u " + '${USERNAME}' + " --password-stdin" } // 도커 빌드 및 업로드 if (DOCKERHUB_USERNAME == "1pro") { TAG = "1.0.1-231220.175735" // 1pro useranme 수강생을 위한 고정 태그명 sh "docker build ./${CLASS_NUM}/build/docker -t ${DOCKERHUB_USERNAME}/api-tester:${TAG}" } else { // 도커 빌드 sh "docker build -t ${DOCKERHUB_USERNAME}/api-tester:${TAG} ./${KUBE_DIR}/${CLASS_NUM}/build/docker" // [2] 잦은 배포 - versioning 무의미, 계획된 배포 - versioning 필수 sh "docker push ${DOCKERHUB_USERNAME}/api-tester:${TAG}" } // 도커 이미지 삭제 sh "docker rmi ${DOCKERHUB_USERNAME}/api-tester:${TAG}" } } post { always { // 도커 로그아웃 sh "docker logout" } } } } } 삽질을 몇번하니 이젠 뭐 대충 어디서 문제가 발생하는지 보이더군요... 뭐 서두는 여기까지... 급하신분은 여기부터 보시면 됩니다. 싱크가 제대로 안될 경우 해결방법 detail에서 annotations 작성시 image path를 잘 적었는지 확인(1pro/api-tester -> ${docker username}/api-tester repo URL 본인 것인지 확인 PATH 경로 잘 작성했는지 확인(저처럼 fork를 하지않고 특정 레포에 넣으신분들...) image pull이 안되는 경우 해결방법 Jenkinsfile을 뒤져서 DOCKERHUB_USERNAME 및 GITHUB_URL변경했는지 확인 2232 / deploy / helm / api-tester 폴더에 들어가 values.yaml과 values-xx.yaml파일들의 images가 1pro-/api-tester가 아닌 ${docker username}/api-tester인지 확인 Docker Hub에 접속해 v1.0.0으로 태그가 달려있으면 삭제 후 212 List View의 container-build했던 부분의 Jenkinsfile에서 image생성시 사용한 태그가 v1.0.0인지 확인해보고 GitHub에 들어가 v를 삭제한 1.0.0으로 커밋한 후에 컨테이너 빌드를 다시 시작(이 때 CI/CD서버에 docker에 로그인이 되어 있어야합니다.) 저는 이정도로 해결이 되었습니다. 아름다운 결과...

  • kubernetes
  • infrastructure
  • container
  • argocd
  • imageupdater
배성환 댓글 1 좋아요 1 조회수 139

강의 자료와 데모에서 사용한 스크립트와 yml 파일을 제공하지 않나요?

미해결

세 시간만에 끝내는 쿠버네티스부터 마이크로서비스, CI/CD, 서비스 메시까지

인프런 강의들은 강의에서 사용한 강의 자료(PPT, PDF)를 제공하는데요. 강의 자료를 다운 받는 곳이 없는데요. 강의 자료는 제공하지 않나요? 데모에서 사용한 스크립트와 yml 파일은 제공하지 않나요?

  • docker
  • kubernetes
  • ci/cd
  • msa
  • gitlab
  • istio
  • argocd
cedar 댓글 1 좋아요 0 조회수 159

kubernetes 구조 설계에 관한 질문

미해결

세 시간만에 끝내는 쿠버네티스부터 마이크로서비스, CI/CD, 서비스 메시까지

안녕하세요. 쿠버네티스를 vm에 직접 구축해서 서비스를 올려보려고 하고 있습니다. 네트워크 관련해서 여쭤보려고 하는데요. 쿠버네티스 클러스터(master node, worker node 들)는 private zone에 두고 metal lb에 공인 ip를 줘서 외부에서 통신이 들어올 때, 쿠버네티스 클러스터로 직접 들어오는 것이 아니라 metal lb를 통해서 들어오게 구성하고 싶은데, 이게 가능한 구조 일까요? 혹시 저 방법이 아니면 위와 같은 구조를 설계하려고 할 때 어떤 방식으로 인프라 설계를 해야되는지 여쭤보고자 합니다. 감사합니다.

  • docker
  • kubernetes
  • ci/cd
  • msa
  • gitlab
  • istio
  • argocd
lim.sh 댓글 1 좋아요 0 조회수 239

강의에 사용된 소스코드는 어디서 받나요?

미해결

세 시간만에 끝내는 쿠버네티스부터 마이크로서비스, CI/CD, 서비스 메시까지

movies.json movies.py 등 강의에 사용된 소스코드는 어디서 받나요?

  • docker
  • kubernetes
  • ci/cd
  • msa
  • gitlab
  • istio
  • argocd
Kevin 댓글 1 좋아요 0 조회수 422

argocd 로 배포한 것 삭제 질문 있어요

미해결

데브옵스(DevOps)를 위한 쿠버네티스 마스터

argoCd 를 이용해 CD를 구성했습니다. sync 하여 예제 app 을 배포한 후 해당 app의 CD 를 제거 했습니다. 제가 생각했던 결과물은 "CD를 제거 하면 worker node에서 예제 app이 제거 되는 것" 이었습니다. 하지만 deploy, svc, pod 전부 그대로 떠 있더라구요. 원인이 무엇일까요? 제가 잘못 한 부분이 있는 것일까요 아니면 argoCd에선 CD를 삭제해도 CD만 제거될 뿐 worker node에 띄워진 app은 건드리지 않는 것인가요?

  • argocd
  • kubernetes
  • k8s
  • docker
윤동희 댓글 1 좋아요 0 조회수 2604

인기 태그

인프런 TOP Writers

주간 인기글