묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
"https통신을 위한 인증서 작업" 영상에서 나오는 notion 정보 어디에 있는 걸까요?
https://picturesque-staircase-f6e.notion.site/eks-spring-1c323940dccf8067a6c2ee4bbbaaa91a 해당 링크에서 찾으려고 하니 제가 못 찾는 건지 찾을 수가 없는데요. 제가 못 찾는 걸까요??
-
해결됨eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
EKS 에서 노드 그룹 생성 실패 질문
안녕하세요 선생님! 우선 좋은 강의 만들어주셔서 감사드립니다 :) E0622 -------- ---- memcache.go:265] couldn't get current server API group list: the server has asked for the client to provide credentialserror: You must be logged in to the server (the server has asked for the client to provide credentials)kubectl get nodes이렇게 명령어를 실행하니 위에 같은 에러가 발생 됩니다.그래서 AWS 에서 정상적으로 노드그룹이 생성 되었는지 확인 해보니깐 이렇게 에러가 발생 되었습니다.구글링 통해 확인 해보니깐 VPN 관련 이슈가 있을 수 있다고 해서 VPN -> NAT 게이트웨이 페이지로 가보니 아무것도 생성이 되지 않는 것 같은데 혹시 NAT 게이트웨이 생성 해야지 해결 될 수 있는 부분일까요?
-
미해결바로쓰는 CI/CD on K8S
명령어 파일이 있으면 좋을 것 같아요.
강의를 구매해서 수강하며 테스트하고 있는데, 명령어들을 실행하는 파일들이 있으면 좋을 것 같아요. 화면에 있는 명령어들을 보고 치지만, 오타가 있을 경우도 있어서요.
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
Argo CD Image Updater를 이용한 수업 이슈(2232) ImagePull
처음 강의부터 쭉 따라오신 분들에 한해서 제가 발견한 이슈사항 공유하고 싶어서 글을 남겼습니다. 저의 경우는 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-testerrepo 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에 로그인이 되어 있어야합니다.) 저는 이정도로 해결이 되었습니다. 아름다운 결과...
-
미해결세 시간만에 끝내는 쿠버네티스부터 마이크로서비스, CI/CD, 서비스 메시까지
강의 자료와 데모에서 사용한 스크립트와 yml 파일을 제공하지 않나요?
인프런 강의들은 강의에서 사용한 강의 자료(PPT, PDF)를 제공하는데요. 강의 자료를 다운 받는 곳이 없는데요. 강의 자료는 제공하지 않나요? 데모에서 사용한 스크립트와 yml 파일은 제공하지 않나요?
-
미해결세 시간만에 끝내는 쿠버네티스부터 마이크로서비스, CI/CD, 서비스 메시까지
kubernetes 구조 설계에 관한 질문
안녕하세요.쿠버네티스를 vm에 직접 구축해서 서비스를 올려보려고 하고 있습니다. 네트워크 관련해서 여쭤보려고 하는데요.쿠버네티스 클러스터(master node, worker node 들)는 private zone에 두고 metal lb에 공인 ip를 줘서 외부에서 통신이 들어올 때, 쿠버네티스 클러스터로 직접 들어오는 것이 아니라 metal lb를 통해서 들어오게 구성하고 싶은데, 이게 가능한 구조 일까요? 혹시 저 방법이 아니면 위와 같은 구조를 설계하려고 할 때 어떤 방식으로 인프라 설계를 해야되는지 여쭤보고자 합니다. 감사합니다.
-
미해결세 시간만에 끝내는 쿠버네티스부터 마이크로서비스, CI/CD, 서비스 메시까지
강의에 사용된 소스코드는 어디서 받나요?
movies.jsonmovies.py 등강의에 사용된 소스코드는 어디서 받나요?
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
argocd 로 배포한 것 삭제 질문 있어요
argoCd 를 이용해 CD를 구성했습니다. sync 하여 예제 app 을 배포한 후 해당 app의 CD 를 제거 했습니다. 제가 생각했던 결과물은 "CD를 제거 하면 worker node에서 예제 app이 제거 되는 것" 이었습니다. 하지만 deploy, svc, pod 전부 그대로 떠 있더라구요. 원인이 무엇일까요? 제가 잘못 한 부분이 있는 것일까요 아니면 argoCd에선 CD를 삭제해도 CD만 제거될 뿐 worker node에 띄워진 app은 건드리지 않는 것인가요?