묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
Project URL와 Repository URL의 차이가 궁금합니다.
안녕하세요.젠킨스 파이프라인 기본 구성 및 배포 세분화 강의를 보던 중 궁금한 점이 생겨 질문을 남기게 되었습니다. 강의 영상의 8분 25초쯤을 보시면, Github project에 Project url을 지정하는 곳이 보입니다.그리고, 9분쯤에 Repository URL이라는 부분도 보입니다. 이 두 속성의 차이점이 궁금합니다. 제 개인적인 생각으로는 Project URL의 경우 해당 Repo가 Private일 경우 Jenkins에서 접근할 방법이 없기 때문에 단순히 명세의 개념이라고 생각했습니다.반대로, 실제로 Project 소스를 가져오기 위해 참조되는 것은 Credentials 속성을 가지고 있는 Repository URL일 것이구요. 혹시나, 제가 잘못 알고 있는 부분이 있다면 알려주시면 감사하겠습니다 !!
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
강사님 한번에 질문을 하게 되면 좋은데 그렇지 못해 죄송합니다.
인그레스서비스를 blue/green 배포하는 것은 잘 이해했습니다. 그럼 만약 ArgoCD를 여기에 사용 가능한지도 궁금합니다. 일반적인 blue/green 배포에서는 ArgoCD가 레이블을 자동으로 조정하는 것으로 알고 있는데 인그레스에서는 어떻게 동작하는지 설명 부탁드릴 수 있는지요?
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
현업에서 startupProbe 사용에 대한 질문입니다.
안녕하세요, 강의 내용과는 큰 관련 없는 질문이지만 지식 공유자님의 경험이 듣고 싶어서 질문 드립니다.저희 회사에는 EKS가 구축되어 있고, 기존에 사용하던 템플릿이 있어서 확인해 보았는데,startupProbe 없이 livenessProbe, readinessProbe만 최초 5초 정도 지난 후 동작하도록 세팅이 되어 있더라구요.저는 JVM 개발자이지만, 아직까지 다른 올라가있는 모든 App들이 파이썬 기반이라서 가능한 것으로 추측이 되었습니다.따라서 파이썬 기반이어서 최초 기동 시간이 필요가 없는 경우 등등 실제로 이런 식으로 startupProbe 없이 사용해도 무방한지가 궁금했고, 사용하는 경우가 자주 있다면 어떤 경우에 주로 사용되는지도 궁금합니다.감사합니다.
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
강사님 질문 드립니다.
만약 ingress 서비스를 실제 업무에 사용하게 되면 blue/green 배포시에 어떻게 동작하는지 궁금합니다. 아울러 ingress 서비스가 사용되는 경우에 대한 설명 부탁드립니다. 감사합니다.
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
강사님 인그레스와 관련하여 질문 드립니다.
좋은 강의 정말 감사합니다. 다른 책이나 강의에서 들을 수 없었던 내용을 알게 되는 재미로 매일 듣고 있습니다.강사님 인그레스 관련하여 궁금한게 있어 질문 드립니다.인그레스와 nginx 사이의 관게를 클래스로 매칭 시킨다는 것은 어렴풋이 이해가 가는데 nginx 가 매칭된 인그레스의 패스정보 등은 어떻게 가져오는지 그 메카니즘이 궁금해서 문의 드립니다.감사합니다
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
argo image updater 이미지명 규칙 수정 문의
88. ArgoCD Image Updater를 이용한 이미지 자동배포 (💻 실습)강의 실습 도중 발생한 문제와 해결 방법에 대해서 공유 드립니다. ArgoCD를 통해서 2232 Application을 배포할 때values-dev.yaml 파일을 사용하여 helm chart 앱을 생성했습니다. 강사님께서 제공해주신 git 코드(fork한 코드 repo, 하기 코드 블록)를 통해서 application 생성 했을 때,자연스럽게 1pro/api-tester:1.0.0 이미지를 가지고 와서 pod를 생성했습니다. 2232/deploy/helm/api-tester/values-dev.yamlimage: repository: 1pro/api-tester pullPolicy: Always tag: 1.0.0이후 Image-updater를 사용하여 image의 변경사항을 감지하려고 했으나 image-updater 파드에서는 감지되지 않았고, 당연히 argo cd에서도 sync 되지 않았습니다. 해당 문제를 찾아보니 regex 식의 규칙과 기존 이미지의 이미지명 형태가 동일해야 image updater가 인지를 하는 것 같아 하기 argo application과 연결된 git 디렉토리의 코드(2232/deploy/helm/api-tester/values-dev.yaml)를 같게 변경했더니 image-updater가 정상동작하면서 auto sync도 제대로 실행되었습니다. image: repository: alchdliodd/api-tester pullPolicy: Always tag: 1.1.1-250604.171111 강의 영상에서는 이렇게 맞추지 않아도 정상적으로 동작하는 것 같았는데,이 현상이 argo image updater의 버그인지, 아니면 원래 해당 규칙을 맞추어야 하는 것인지 문의 드립니다.
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
PV/PVC (local, hostPath) 강의에 대한 질문입니다.
안녕하세요 !강의 5분에 hostPath, local 사용 목적에 관한 질문이 있어 글을 남기게 되었습니다.사용 목적 2번에서 노드의 디스크 공간이 한정적이라 디스크 공간이 부족해져서 노드가 죽어버리면 그 노드 위에 다른 Pod들도 함께 죽는다고 말씀해주셨습니다. 여기서 생긴 의문은 hostPath로 node의 Volume을 사용하든 PVC/PV를 이용하여 Volume을 사용하든 특정 Pod에서 사용량이 많으면 어떤 경우든 죽어버릴 것 같다는 것입니다.아니면, hostPath는 용량을 설정하지 않는데 비해, PVC/PV에서는 용량을 설정해주는 옵션이 있어 해당하는 Pod만 죽고 다른 Pod에는 영향이 없는 걸까요?
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
Jenkins 파일 - 파라미터 사용법 차이
안녕하세요섹션 18 - 82번 강의 : 배포 파이프라인 구축 후 마주하게 되는 고민들(실습)수강 중 Jenkins 파일에 대한 질문이 있어 문의 드립니다. Jenkins 파일을 작성할 때, parameter로 PROFILE(배포환경선택)과 DOCKERHUB_USERNAME(도커허브유저명)을 설정하셨는데 하기 코드를 보시면 parameters { // 배포 환경 선택 choice(choices: ['dev', 'qa', 'prod'], name: 'PROFILE', description: '배포 환경 선택') // DockerHub 사용자명 입력 string(name: 'DOCKERHUB_USERNAME', defaultValue: '', description: 'DockerHub 사용자명을 입력하세요.') // GitHub 사용자명 입력 string(name: 'GITHUB_USERNAME', defaultValue: '', description: 'GitHub 사용자명을 입력하세요.') } stage('헬름 배포') { steps { // helm 명령 사용 - [1] 중요 데이터 암호화 관리 withCredentials([file(credentialsId: 'k8s_master_config', variable: 'KUBECONFIG')]) { sh "helm upgrade api-tester-${CLASS_NUM} ./${CLASS_NUM}/deploy/helm/api-tester -f ./${CLASS_NUM}/deploy/helm/api-tester/values-${params.PROFILE}.yaml" + " -n anotherclass-222-${params.PROFILE} --install --kubeconfig " + '${KUBECONFIG}' + // [5] Helm 부가기능 " --wait --timeout=10m" + // 최대 10분으로 설정 // [2] 잦은 배포 - versioning 무의미, 계획된 배포 - versioning 필수 " --set image.tag=${TAG}" + " --set image.repository=${DOCKERHUB_USERNAME}/api-tester" } } } PROFILE은 앞에 "params"가 붙어있고 (${params.PROFILE}),DOCKERHUB_USERNAME은 환경변수처럼 그냥 ${DOCKERHUB_USERNAME}로 사용하신 것을 볼 수 있습니다. 혹시 choice문을 사용하여 사용자가 선택하는 prarmeter의 경우 params를 붙인다던가 하는 규칙이 있는 걸까요? 위 두 개 사용 방법이 다른 것에 원인이 있는지 궁금합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
jar 파일 생성과 컨테이너 생성 순서
이번 강의에서 NestJS는 컨테이너를 생성하면서 npm install + npm run build로 컨테이너 내에서 애플리케이션을 빌드하는 것을 배웠습니다.하지만 왜 Spring Boot는 컨테이너를 생성하기 전에 먼저 빌드를 하고 이 jar 파일을 컨테이너로 복사하는 것인가요?Spring Boot도 NestJS처럼 컨테이너 내에서 빌드하면 docker compose up -d --build 전에 ./gradlew clean build도 생략할 수 있으니 더 편리하지 않을까 싶어 혹시 이유가 있는지 질문 드립니다. 감사합니다.
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
50강 빌드파일
지금까지는 눈으로 학습했는데, AWS ECR에 올리는 실습을 직접 하려다 보니 로컬에서 spring boot 빌드하는 환경 구성에 시간을 잡아먹고있습니다. 개발자가 아니라서 이런 개발환경은 너무 낯선데, 다른방법으로 빌드할수는 없을까요. VSCODE에서 SpringBoot Extention Pack으로 고군분투해봐도 시간만 소요될 뿐 진행되지 않아 문의드립니다.
-
해결됨실리콘밸리 엔지니어와 함께하는 Docker
mysql 포트 사용에 관하여
강의 너무 감사합니다!질문사항이 있어 문의드립니다.yml파일 내부 db: 하위 ports: 설정부분을 보면3306:3306으로 지정되어 있습니다만,현재 제 로컬 PC에서 mysql server가 3306포트로 실행되고 있어서 에러를 만났습니다.그런데, 가만히 생각해보니 Flask 앱이 아닌, 제가 로컬(제 PC)에서 직접 요청을 할 일이 없는 경우라면 ports 설정이 필요한가요? 당장의 실습 환경에서 코드를 봤을 땐 호스트(로컬PC)에서 접근할 만 한 기능이 들어가 있는 것 같지는 않아서 db의 ports 설정부분을 제거하고 실행했을 땐 정상적으로 앱이 동작했습니다.제가 생각하지 못한 필요한 경우가 있을까 궁금하여 질문드립니다.제 로컬에서 실행되는 MySQL이 강제로 종료해도 데몬으로 등록되어있어서 계속 살아나더군요. 결국 데몬 등록을 없애고 수동으로 종료를 확인한 후에 다시 compose up --build했을 때는 됩니다.최종적으로 질문을 정리해보자면 혹시 "호스트로 내 로컬을 지정하지 않고 (즉, ports 설정을 하지 않고) 도커 네트워크 안에서 통신하도록 구성한 상황에서 문제상황이 생긴다면 어떤 게 있을까요?" 정도 인 것 같습니다.
-
미해결AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법
4강-Postman 사용하여 health check
안녕하세요, 4강보면서 실습중인데, 마지막 postman사용해서 health check 하는 방법에 대해 자세히 알려주실 수 있나요? postman 설치까지만 해두었습니다.
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
프론트엔드 애플리케이션 EC2 배포 관련 질문입니다.
안녕하세요.EC2 강의를 듣던 중, 프론트엔드 애플리케이션은 주로 CDN을 통해 배포하고, 백엔드 API 서버는 EC2에 배포한다고 설명해주셨는데 이와 관련해 궁금한 점이 있습니다.만약 CSR 기반의 프론트엔드 프로젝트라면, 빌드 후 생성된 정적 파일을 S3에 업로드하고 CloudFront 같은 CDN을 통해 배포하는 방식이 충분하다고 생각합니다.하지만 최근에는 React에서 Server Actions 같은 서버 기능이 도입되고, Next.js 역시 SSR, API Routes 등을 포함하면서 정적 파일만으로 구성되지 않는 경우가 많아지고 있습니다.이런 경우, 프론트엔드 애플리케이션은 어떤 방식으로 어디에 배포하는 것이 적절할까요? CDN만으로는 어려워 보이는데, EC2나 다른 대안이 있는지도 궁금합니다.감사합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
최종적으로 springboot+mysql+redis 를 compose로 ec2에 실행시
compose up -d --build 를 통해최종적으로 다합해서 시작을했는데 에러가 뜨는게아니라 계속 과부하 걸리는지 EC2가 먹통이되더라고요 로컬로해도 계속 메모리부족같은게 뜨면서 프로그램 실행중인거 끄라고 그러는데 뭔가 메모리를 어디서 엄청 잡아먹는거같은데 다른건 다괜찮은데 compose로 mysql이랑 springboot연결하면 그런거같네요
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
빌드(jar 패키징) 오류 공유
아마 h2같은 in-memory DB를 사용하지 않고, 직접 mysql driver를 추가한 경우는 datasource객체를 만드려고 시도하면서 url, username, password같은 정보가 없다면 스프링 서버를 띄우기도 실패할 것입니다! 이렇게요.FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'.스프링 프로젝트를 생성하면 최초로 만들어지는// java @SpringBootTest public class XXTests { @Test void contextLoads() { } } // kotlin @SpringBootTest class XXTests { @Test fun contextLoads() { } }이 테스트코드도 실패할거에요그럴때는 해당 클래스 파일을 없애거나@SpringBootTest 어노테이션을 제거하거나맨 위에 @Disabled를 추가해줘서 테스트를 생략하게 하면 될 것 같습니다!보통 테스트코드에서도 스프링 컨테이너 뜰 때 드라이버가 있다면 DataSource 빈을 만드려고 시도하다가 기본 ENV가 없다면 실패할 것 같은데..재성님은 아마 테스트코드를 지우신게 아닐까 생각되네요!
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
Ec2에 도커설치시
$ sudo apt-get update && \ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && \ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \ sudo apt-key fingerprint 0EBFCD88 && \ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \ sudo apt-get update && \ sudo apt-get install -y docker-ce && \ sudo usermod -aG docker ubuntu && \ newgrp docker && \ sudo curl -L "https://github.com/docker/compose/releases/download/2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \ sudo chmod +x /usr/local/bin/docker-compose && \ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose이걸 따라 치면된다고해서 하는건 이해했는데 추후 ubuntu에 실제로 도커를 깔아야할떄 저 명령어를 항상 복붙하기 힘들거같은데 도커공식사이트나 구글링했을떄 뭔가 방법들이 강의와 다르게 알려주는데 차이를 모르겠고 어떤걸 써야되고 뭐가 다른지도 좀 이해가 안가는데 정확하게 도커를 설치방법을 알수있는건 어떻게 알수있을까요
-
해결됨비전공자도 이해할 수 있는 쿠버네티스 입문/실전
Secret 질문
재성님! 강의 잘 보고 있습니다!k8s에서 Secret 관련해서 예전에 본 걸 기억하기로는 value값은 base64로 인코딩된 값이어야 한다고 봤는데, 영상에서는 잘 동작하네요!?제가 잘못 알고 있는지, 아니면 다른 방식이 있는지 등 궁금합니다!
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
실무에서 젠킨스를 파드 형태가 아닌 서버에 직접 설치 해서 사용 하나요?
안녕하세요 선생님 스프린트 1,2 강의를 모두 듣고 젠킨스 운영 관련 궁금한 점이 생겼습니다. 학습에선 젠킨스를 vm 에 직접 설치하셨는데요. Grafana, Prometheus, Argo CD 등은 모두 파드로 컨테이너환경으로 설치 하셨습니다.젠킨스만 vm에 직접 설치한 이유가 있는건가요? 젠킨스도 pod 형태로 운영 하는 것에 어떤 제약이 있는 걸까요?실무에선 젠킨스를 보통 어떻게 운영 하는지 궁금 합니다. (현재 강의처럼 별도 서버에 직접 설치 운영 하는건지?)
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
로드맵 강의 순서
https://inf.run/LdN8o여기 링크에 나온로드맵 상세보기총 12개 코스이거 위에서 부터 아래 순서로 들어야 되는게 맞나요? 아니면 딱히 상관없나요? 아니라면 순서 좀 정해주세요
-
해결됨쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
쿠버네티스 이해도에 대한 질문
안녕하세요! 현재 컴퓨터공학과 4학년에 재학 중인 대학생입니다.일프로님의 자세한 설명 덕분에, 현재 섹션 7까지 문제 없이 잘 따라가고 있습니다.감사합니다. 최근에 든 생각이 있습니다.일프로님이 강의에서 설계하신 인프라 구조나 Object들이 서로 어떻게 연결되고 어떤 역할을 하는 지는 강의를 들으면 이해가 됩니다. 물론, 복습도 꾸준히 하고 있습니다.하지만, 제가 그 구조를 어떠한 논리를 가지고 혼자서 설계를 하라면 못 할 것 같다는 것입니다. 아직 제가 강의 초반이라 그런 걸까요? 아니면, 제가 추가로 알아야 하거나 공부해야 될 지식이 있는 걸까요..?강의 자체는 이해가 되고 따라하며 잘 진행하고 있지만, 정확히 어떤 마음가짐(?)이나 방식으로 공부해야 할 지 잘 모르겠습니다.. ㅜㅜ 쿠버네티스는 이번이 처음이라 주저리 너무 길었네요.. 혹시나 답변 남겨주시면 참고하여 다시 공부해보겠습니다!감사합니다.