묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨바로쓰는 CI/CD on K8S
명령어 파일이 있으면 좋을 것 같아요.
강의를 구매해서 수강하며 테스트하고 있는데, 명령어들을 실행하는 파일들이 있으면 좋을 것 같아요. 화면에 있는 명령어들을 보고 치지만, 오타가 있을 경우도 있어서요.
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
실무 개발 환경
안녕하세요. 재밌고 좋은 강의를 해주셔서 감사합니다. 아직 70%정도 보고 있지만 궁금하게 있습니다.현재 백엔드 개발자로 근무하고 있는데 저희 환경은 aws의 ec2에 직접 올려백엔드 서버(spring-boot)를 운영하고 있습니다. 점차 쿠버네티스 환경으로 변경하려고인프라담당자들과 백엔드 개발자들이 스터디 및 환경 구축하고 있는데요. 만약 실무에서쿠버네티스 환경으로 바뀐다면 개발자들의 로컬 개발 환경은 어떻게 하시는지 궁금합니다.대부분 자바, 스프링 환경이면 인텔리제이등으로 개발 후 테스트를 해볼텐데 컨테이너에서 다른 개발자들과 다 같은 환경에서 테스트를 해보고 빌드해보고 해야 하지 않는가 싶어서요. 실무에선어떤식으로 개발자들이 개발하는지 개발, 테스트 , 운영 배포 까지 플로우가 어떻게 되는지 궁금합니다.
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
교육자료 혹시 공유가 가능하실까요
안녕하세요. 교육 잘 받았습니다. 제가 받았던 교육자료 문서로 받아 볼 수 있을까요? 아니면 온라인으로 찾아볼 수 있는지 확인 부탁드립니다.
-
해결됨CloudNet@ - Amazon EKS 기본 강의
EKS Cluster 생성 시 노드 IAM 역할 입력
AWS 콘솔에서 eks 클러스터 생성 시 노드IAM역할을 입력해야하는데요강의에는 클러스터 생성 후 노드 생성 전에 노드 IAM 역할을 생성합니다.강의 내 eksNodeRole을 생성 먼저 하고 해당 값을 입력하면 되나요?
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ansible 원리
ansible copy 같은 모듈 명령어를 사용할 때요대상으로 하는 서버들에서 방화벽과 같은 그런것들을 미리 열어줘야 하고 그런 것들은 없을까요?물론 미리 ping 을 통해서 확인할 수는 있겠지만요!ansible 의 동작 원리가 궁금합니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ansible 존재여부
안녕하세요docker run --privileged -itd --name ansible-server -p 20022:22 -p 8082:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup edowon0623/ansible-server:m1 /usr/sbin/init위 명령어로 도커 이미지 설치 후 ssh 로 접속해서 패스워드 치고 들어가면, ansible --version 이 먹히지 않는 것으로 보면 ansible 이 설치가 되어있지 않은 것 같아요.참고로 저는 맥 m1 OS 입니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
젠킨스 빌드 성공후 shutdown
안녕하세요 우선 저는 gradle 로 진행을 했습니다.다른건 다 동일하게 했고젠킨스 도커 안에 들어가서 cd /var/jenkins_home/workspace/My-Third-Proejct nohup java -jar build/libs/jenkins_cicd_project-0.0.1-SNAPSHOT.jar --server.port=9000 --server.address=0.0.0.0 > app.log 2>&1 &로 실행을 하면 브라우저에서 localhost:9000 으로 접근이 잘 됩니다.그런데 젠킨스 스크립트로 실행을 하게 되면 젠킨스 도커 내의 로그를 확인해보면 계속 꺼져요. 이유가 있을까요?젠킨스 구성 설정의 shell script 는 아래와 같아요.# 기존 프로세스 종료 PID=$(ps -ef | grep "jenkins_cicd_project-0.0.1-SNAPSHOT.jar" | grep -v grep | awk '{print $2}') if [ ! -z "$PID" ]; then echo "종료 중인 애플리케이션 PID: $PID" kill -15 $PID sleep 5 fi # 새 프로세스 시작 (setsid 사용하여 별도 세션에서 실행) echo "애플리케이션 시작 중..." setsid nohup java -jar build/libs/jenkins_cicd_project-0.0.1-SNAPSHOT.jar --server.port=9000 --server.address=0.0.0.0 > app.log 2>&1 & APP_PID=$! echo "애플리케이션 PID: $APP_PID" # 시작 확인 sleep 10 ps -p $APP_PID > /dev/null if [ $? -eq 0 ]; then echo "애플리케이션이 PID $APP_PID로 실행 중입니다." curl -s http://localhost:9000 > /dev/null if [ $? -eq 0 ]; then echo "애플리케이션에 정상적으로 접근할 수 있습니다." else echo "애플리케이션 접근 테스트 실패!" fi else echo "애플리케이션 시작 실패!" exit 1 fi그리고 젠킨스 빌드 console out 도 아래와 같습니다.Started by user 허강준 Running as SYSTEM Building in workspace /var/jenkins_home/workspace/My-Third-Proejct The recommended git tool is: NONE No credentials specified > git rev-parse --resolve-git-dir /var/jenkins_home/workspace/My-Third-Proejct/.git # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url https://github.com/Highjune/jenkins_cicde_project.git # timeout=10 Fetching upstream changes from https://github.com/Highjune/jenkins_cicde_project.git > git --version # timeout=10 > git --version # 'git version 2.39.5' > git fetch --tags --force --progress -- https://github.com/Highjune/jenkins_cicde_project.git +refs/heads/*:refs/remotes/origin/* # timeout=10 > git rev-parse refs/remotes/origin/main^{commit} # timeout=10 Checking out Revision 6353899ff277302005bce6da4d498211ebeab06b (refs/remotes/origin/main) > git config core.sparsecheckout # timeout=10 > git checkout -f 6353899ff277302005bce6da4d498211ebeab06b # timeout=10 Commit message: "포트번호 수정" > git rev-list --no-walk 6353899ff277302005bce6da4d498211ebeab06b # timeout=10 [My-Third-Proejct] $ /bin/sh -xe /tmp/jenkins9188074144619929309.sh + ps -ef + grep jenkins_cicd_project-0.0.1-SNAPSHOT.jar + grep -v grep + awk {print $2} + PID=283 + [ ! -z 283 ] + echo 종료 중인 애플리케이션 PID: 283 종료 중인 애플리케이션 PID: 283 + kill -15 283 + sleep 5 + echo 애플리케이션 시작 중... 애플리케이션 시작 중... + APP_PID=420 + echo 애플리케이션 PID: 420 애플리케이션 PID: 420 + sleep 10 + setsid nohup java -jar build/libs/jenkins_cicd_project-0.0.1-SNAPSHOT.jar --server.port=9000 --server.address=0.0.0.0 + ps -p 420 + [ 0 -eq 0 ] + echo 애플리케이션이 PID 420로 실행 중입니다. 애플리케이션이 PID 420로 실행 중입니다. + curl -s http://localhost:9000 + [ 0 -eq 0 ] + echo 애플리케이션에 정상적으로 접근할 수 있습니다. 애플리케이션에 정상적으로 접근할 수 있습니다. Finished: SUCCESS그런데 계속 Graceful shutdown complete 가 뜹니다.참고로 다른 포트랑 충돌같은 것은 없습니다 원래 8081로 진행하다가 일부러 다른 포트로 시도해보려고 9000으로 했습니다.이렇게 젠킨스 내 컨테이너 내에서 수동 실행하면 되는데 왜 젠킨스 빌드로 하면 꺼지는 걸까요?참고로 젠킨스 도커 실행 명령어는 아래와 같습니다.docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 9000:9000 -p 50000:50000 --restart=on-failure --name jenkins-server jenkins/jenkins:lts-jdk21
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
maxUnavailable, maxSurge 25% 이해좀 부탁드려요
강의중 파드가 5개인데..처음에 2개가 생성되는건 maxSurge 25% 5개 파드의 25% 여서 2개인건가요?그런다음에 왜 maxUnavailable 25%에 대해서는 2개 삭제가 아닌 1개만 삭제되는지도 이해가 안되구요 같은 25%인데요...그럼 그상태에서는 4개만 서비스가 되는건가요? 아니면 추가로 생성된 2개도 서비스가 같이 되고있는건가요?그럼 총 6개가 서비스되고 있는상태에서 또 몇개가 생성되고 몇개가 죽나요?이게 일단 기동시간이 같다는 전제하에 블루그린방식과 같다는게 좀 이해가 안갑니다.새로 올라온 서버는 서비스가 안되는건가요?
-
미해결대세는 쿠버네티스 (초급~중급편)
컴퓨터 사양은 어느정도로 해야하나요
컴퓨터 사양은 어느정도로 해야 안정적으로 하고 vm 렉 없이 돌릴 수 있나요vagrant up 명령어를 치니깐 렉이 엄청 걸리더군요 이더넷으로 하고 있는데 그런대도 렉이 걸리고 컴퓨터가 힘들어 합니다
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
configmap, secret실시간 반영
secret은 수정하고 파일 열어보면 반영되어잇던데...5초간격으로 조회하는 로직이 있다고 하셨는데 이로직은 원래 파드에 있는 기능인가요? 별도로 만드신건가요? 아니면 파일로 시크릿을 만들었을때 5초간격으로 조회하는게 기본 메카니즘인가요?
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
Probe에 대한 이해
중요하다고 생각해서 여러번 보는데도 api입장에서는 이해가 잘 안되네요..제가 생각한 결론은 liveniessProbe는 pod재기동을 위한 api 상태체크같고 readinessProbe는 service에 pod를 연결시킬거냐 말거냐를 결정하는거 같은데...이걸 호출하는 api 를 봤을땐 liveness와 readiness의 api를 실무에서 어떻게 각각 구별해서 만들수가 있을까 싶은거에요...또한 app초기화 user초기화로 구분했던것도 실은 서버가 올라옴과 동시에 거의 강사님이 말씀하신 app초기화와 user초기화는 거의 순식간에 끝나는거 아닌지요? 막말로 톰캣서버올라오는 순간 모든 api들은 정상호출되는거 아닌지요..그리고 그렇게 user초기화를 위한 과정이 서버 기동시 그렇게 오래 올라올까 싶기도 하고..만약 실제로 그렇다면 굳이 startupProbe가 왜 필요할까 싶기도 해요...어차피 startupProbe가 성공하던 말던 중요한건 readiness에서 서비스연결할지 여부를 결정할거고 liveness에서 재기동까지 결정할텐데..굳이 startupProbe까지 넣을필요있는지.....설명은 이해가 되지만 실제로 의미가 있을까 하는 생각뿐이에요..
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
그라파나에서 볼려는데
주신 app 설치후부터 그라파다 대시보드에서 메트릭정보 보는게 너무 늦고 그러다보니 fetch에러납니다. cpu, memory 노드 상태를 보면최대 70~80%까지는 가도..ㅇ그이상은 안가는데 너무 버벅대고...그라파나 매트릭정보를 볼수가 없는데요....?app 설치 후부터 그라파나가 맛이가네요 ㅠㅠ컨테이너도 떨어지구요 ㅠㅠ 0/1 로 바뀌고 나서는 컨테이너는 안올라오네요상태를 볼수잇는게 있을가요? 노드 리소스사용량은 full은아닌데
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
이론 강의 pdf 자료 다운로드 문의
안녕하세요.쿠버네티스 이론수업때 사용한 pdf 이론 강의 자료를 다운로드 받고 싶은데혹시 이론 노트는 공유가 안되는 건가요?자료다운로드에 이미지 파일만 있어서 문의드립니다.
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
대시보드 loki 연결
그라파나 접속은 성공했습니다.대시보드에서 데이타소스 생성시http://loki-stack.loki-stack:3100하면 에러가납니다.그런데 어떻게 저 dns로 찾을수있게 되는지 궁금합니다.그라파나 파드안의 resolv.conf도 dns정보가 없어요grafana-6d965864db-w6d76:/usr/share/grafana$ cat /etc/resolv.confsearch monitoring.svc.cluster.local svc.cluster.local cluster.localnameserver 10.96.0.10options ndots:5logger=tsdb.loki endpoint=checkHealth pluginId=loki dsName=loki dsUID=cegalnku8hgxsd uname=admin fromAlert=false t=2025-03-19T09:00:57.17355809Z level=error msg="Error received from Loki" error="Get \"http://loki-stack.loki-stack:3100/loki/api/v1/query?direction=backward&query=vector%281%29%2Bvector%281%29&time=4000000000\": dial tcp: lookup loki-stack.loki-stack on 10.96.0.10:53: no such host" status=error duration=305.216958ms stage=databaseRequest start=1970-01-01T00:00:01Z end=1970-01-01T00:00:04Z step=1s query=vector(1)+vector(1) queryType=instant direction=backward maxLines=0 supportingQueryType=none lokiHost=loki-stack.loki-stack:3100 lokiPath=/loki/api/v1/querylogger=tsdb.loki endpoint=checkHealth t=2025-03-19T09:00:57.17573486Z level=error msg="Loki health check failed" error="error from loki: Get \"http://loki-stack.loki-stack:3100/loki/api/v1/query?direction=backward&query=vector%281%29%2Bvector%281%29&time=4000000000\": dial tcp: lookup loki-stack.loki-stack on 10.96.0.10:53: no such host" 게다가 loki-stack service 의 ip를 이용해서http://10.~:3100으로 하면 다음 에러가 보이구요왜 syntax error가 나오는지...404 not found라서 그럴까요? 혹시 loki git yaml에서 특별히 수정하신부분이 있을까요? on=12.351705ms queriesLength=1 stage=prepareRequest runInParallel=falselogger=tsdb.loki endpoint=checkHealth pluginId=loki dsName=loki dsUID=cegalnku8hgxsd uname=admin fromAlert=false t=2025-03-19T09:10:30.171955345Z level=error msg="Error received from Loki" duration=169.402576ms stage=databaseRequest statusCode=400 contentLength=65 start=1970-01-01T00:00:01Z end=1970-01-01T00:00:04Z step=1s query=vector(1)+vector(1) queryType=instant direction=backward maxLines=0 supportingQueryType=none lokiHost=10.110.135.91:3100 lokiPath=/loki/api/v1/query status=error error="parse error at line 1, col 1: syntax error: unexpected IDENTIFIER" statusSource=downstreamlogger=tsdb.loki endpoint=checkHealth t=2025-03-19T09:10:30.172189572Z level=error msg="Loki health check failed" error="error from loki: parse error at line 1, col 1: syntax error: unexpected IDENTIFIER"마지막으로 그라파나 서버 들어가서 curl날린결과입니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
Docker Hub에 Push 무한 로딩
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. Ansible을 이용한 Docker 이미지 관리 강의에서 create-cicd-devops-image.yml에 작성한 스크립트로 playbook 실행 시 Docker Hub에 Push하는 과정에서 무한로딩이 걸리는데 원인을 찾을 수 없어서 질문드립니다..Docker Hub 로그인도 성공하였고 스크립트에 저의 계정 이름/cicd-project-ansible로도 잘 작성하였고 수동으로 push 명령어를 내려주면 Docker Hub에 이미지가 잘 띄어지긴 합니다.수동으로 명령어를 내려주면 잘 작동하지만 왜 playbook으로는 push과정에서 무한로딩이 걸리는지 모르겠습니다[root@0c03fe2051d5 ~]# ansible-playbook -i hosts create-cicd-devops-image.yml --limit 172.17.0.4PLAY [all] *************************************************************************************************************TASK [Gathering Facts] *************************************************************************************************ok: [172.17.0.4]TASK [Login to Docker Hub] *********************************************************************************************changed: [172.17.0.4]TASK [create a docker image with deployed waf file] ********************************************************************changed: [172.17.0.4]TASK [push the image on Docker Hub] ************************************************************************************.... 무한로딩
-
미해결대세는 쿠버네티스 (초급~중급편)
dash보드 질문
[root@k8s-master ~]# kubectl get svc -n longhorn-system longhorn-frontend -o yamlapiVersion: v1kind: Servicemetadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app":"longhorn-ui","app.kubernetes.io/instance":"longhorn","app.kubernetes.io/name":"longhorn","app.kubernetes.io/version":"v1.5.0"},"name":"longhorn-frontend","namespace":"longhorn-system"},"spec":{"ports":[{"name":"http","nodePort":null,"port":80,"targetPort":"http"}],"selector":{"app":"longhorn-ui"},"type":"ClusterIP"}} creationTimestamp: "2025-03-15T12:51:11Z" labels: app: longhorn-ui app.kubernetes.io/instance: longhorn app.kubernetes.io/name: longhorn app.kubernetes.io/version: v1.5.0 name: longhorn-frontend namespace: longhorn-system resourceVersion: "651284" uid: 4d4f3f21-0afc-4f79-98d4-9054145143easpec: clusterIP: 10.103.92.225 clusterIPs: - 10.103.92.225 externalTrafficPolicy: Cluster internalTrafficPolicy: Cluster ipFamilies: - IPv4 ipFamilyPolicy: SingleStack ports: - name: http nodePort: 30705 port: 80 protocol: TCP targetPort: http selector: app: longhorn-ui sessionAffinity: None type: NodePortstatus: loadBalancer: {}뭐가 잘못됐을까요?dash보드가 안들어가집니다. 쿠버네티스 데시보드도 안들어가져요..
-
미해결실습으로 배우는 그라파나 - {{ x86-64, arm64 }}
프로메테우스에 데이터가 없어도 annotation 지정한 상태를 확인 할 수 있나요?
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의에서 다룬 내용과 관련된 질문인가요? [예 | 아니요]2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요]3. 질문 잘하기 법을 읽어보셨나요? [예 | 아니요](https://www.inflearn.com/blogs/1719)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.[질문 하기]프로메테우스에 데이터 보관주기가 있는걸로 아는데 해당 보관주기가 지나서 프로메테우스에 데이터가 없어도 annotation 지정한 상태로 이동하면 데이터가 있을때 처럼 화면을 볼 수 있는것인가요?
-
미해결실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}
vagrant up 실행 시 에러
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의에서 다룬 내용과 관련된 질문인가요? [예 | 아니요]2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요]3. 질문 잘하기 법을 읽어보셨나요? [예 | 아니요](https://www.inflearn.com/blogs/1719)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.[질문 하기]PS C:\Users\dltkd\k8s-edu\_Lecture_prom_learning.kit\ch2\2.3> vagrant up>>Bringing machine 'cp-k8s-1.30.3' up with 'virtualbox' provider...Bringing machine 'w1-k8s-1.30.3' up with 'virtualbox' provider...Bringing machine 'w2-k8s-1.30.3' up with 'virtualbox' provider...Bringing machine 'w3-k8s-1.30.3' up with 'virtualbox' provider...==> cp-k8s-1.30.3: Checking if box 'sysnet4admin/Ubuntu-k8s' version '0.8.6' is up to date...==> cp-k8s-1.30.3: Clearing any previously set network interfaces...There was an error while executing VBoxManage, a CLI used by Vagrantfor controlling VirtualBox. The command and stderr is shown below.Command: ["hostonlyif", "create"]Stderr: 0%...E_FAILVBoxManage.exe: error: Failed to create the host-only adapterVBoxManage.exe: error: Querying NetCfgInstanceId failed (ERROR_FILE_NOT_FOUND)VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component HostNetworkInterfaceWrap, interface IHostNetworkInterfaceVBoxManage.exe: error: Context: "enum RTEXITCODE __cdecl handleCreate(struct HandlerArg *)" at line 105 of file VBoxManageHostonly.cpp이런 에러가 발생합니다
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
그라파나 접속이 안되네요 ㅠㅠ
아무리 grafana접속해봐도 안뜨네요 ㅠㅠgrafana삭제하고 재성성해봐도 똑같아요.아래는 pod로그입니다. info 레벨만 제외하고 로그 추출해봤어요 로컬로 실행해도 아래처럼 나와요강의대로 하다보면 kubernetes-dashboard는 30000 노드포트가 열려있고,grafana는 30001 저는 30010으로 했는데 여튼, 로컬에서 telnet 으로 해보면 30000포트는 열리는데 30010 은 안열립니다. 겉에서 봤을때는 서비스가 떠있지만 제대로 외부에서 날려보면 응답이 없는상태입니다. 그런데 마스터서버 들어가서 curl날려보면 302가 나옵니다. 검색해보고 찾다찾다 안되서 다시 글남겨봅니다 ㅠㅠ
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
preStop sleep 5초의 기준이 궁금합니다.
안녕하세요 일프로님. 수업을 듣다 궁금한 점이 생겨 질문드립니다.1.preStop sleep time을 5초로 잡은 기준이 무엇인지 궁금합니다. 구체적으로는 1)경험적으로 얻은 것인지 여부2)하드웨어나 클라우드 서비스의 경우 EKS 같은 매니지드 서비스 마다 적절한 sleep time이 크게 달라질 수도 있을지 궁금합니다.2. 기존 서비스의 sleep time을 40초에서 5초로 단축해도 괜찮을지제가 인수인계 받은 사이드 프로젝트가 있는데 AWS EKS에 Spring 서버가 구현되어 있습니다. 현재 sleep time이 40초로 되어있는데 단축해도 큰 문제는 없을까요? *장애가 나도 괜찮은 서비스라 학습 목적으로 편하게 테스트 할 예정입니다.