안녕하세요. 모니터링 설치 Loki-Stack 강의 실습을 하는 와중에 2번 확인하기를 해보니 캡쳐와 같이 pod가 엄청 많이 떠있는 걸 확인했습니다. 그래서 그런지 대시보스 화면에서는 여러가지 에러 상태가 나타납니다. 거의 메모리가 부족하다고 하는 데 현재 해당 vm 에는 메모리를 8gb 주고 free 로 확인해보면 여유가 2gb 이상 남아있는 걸로 확인이 되고요. 이유를 아실까요 ? 그리고 어떻게 해결할 수 있을까요 ? 감사합니다. cafe: https://cafe.naver.com/kubeops
안녕하세요. 설치 과정에서 문제가 해결이 안되서 질문 올립니다. kubectl get pod -A kubectl describe nodes metrics-server 와 dashboard 의 상태가 Pending에서 계속 멈춰 있는 데 이유를 혹시 아실까요 ? 환경은 맥 m3 max고 설치는 아이피만 자동 생성되는 걸로 맞췄고 나머지는 다 동일하게 진행했습니다. Warning InvalidDiskCapacity 24m kubelet invalid capacity 0 on image filesystem 이 부분이 걸리긴 하는 데.. 디스크 용량은 64gb로 충분히 설정을 해논 상태고요. 감사합니다.
안녕하세요. 항상 감사합니다. 다름아니라 프론트엔드 개발자(ionic+react+typescript)님과 처음 협업을 하는데요!(레포지토리가 fe, be 따로 존재합니다.) api를 개발해서 전달해드려야 하는데 프론트엔드 개발자님께서 springboot를 로컬에서 실행하시기 어려우실것 같아 제가 일단 배포를 하여 전달드리려고 합니다. ( EC2에서 Docker를 활용한 배포 방법을 사용하려합니다.) 질문: 1. 이때 ec2 인바운드 보안 그룹 규칙은 ssh, http(80)만 해주면 될까요? tcp(프론트엔드 개발자님의 포트(아마도 8100번))또한 추가해야 하는 부분일까요? 2. Nginx, Certbot를 활용해 리버스 프록시를 설정한다면 해당 포트번호도 ec2 인바운드 보안 그룹에 tcp로 추가해야 할까요? 3. 백엔드 개발자는 프론트엔드 개발자에게 api를 제공할때 위에 말씀드린 방식으로 진행하는지 여쭙고 싶습니다. 경험이 부족하여 질문이 이상할 수 있는점 양해바랍니다. 감사합니다. +추가) 일단 docker compose로 ec2에서 빌드까지 했는데요. 보안그룹을 모든tcp 0.0.0.0에서 하니깐 잘 돌아갑니다. 하지만 모든tcp를 제거하고 http 80과 https 433을 추가하면 "ERR_CONNECTION_REFUSED"라고 하고 접근이 안되네요. 여기서 http 8080을 추가하면 또 잘되네요. 프로젝트를 할때 모든 tcp로 하면 안된다고 하셨는데 안전하게 프로젝트를 할 수 있는 방법을 여쭙고 싶습니다.
위는 현재 설정상태이고, 컨테이너도 잘 실행되는 상태에서 아래처럼 조회가 장바구니 서비스만 실패하는 상황입니다 (장바구니 서비스 배포 시 사용한 명령어 docker run --rm -d -p 8000:8000 --network goopang-network -e "msa.product-service.url=product-service-container:8001" -e "msa.user-service.url=user-service-container:8002" --name cart-service-container -t 009160049723.dkr.ecr.ap-northeast-2.amazonaws.com/goopang-cart-servic e) 메시지는 거부되었다는 메시지이긴 한데.. 8000번은 정상적으로 설정한 것 같거든요, 컨테이너도 잘 실행되고있구요 (API 요청했을 때 컨테이너에 로그가 실시간으로 찍히는지도 봤는데 별다른 로그가 찍히지는 않는것 같아보입니다) 혹시 살펴볼 것이 있을까요?
안녕하세요 '[실습] 백엔드 프로젝트(Spring Boot) 프로젝트를 Docker로 실행시키기'에서 그대로 따라 했는데 이렇게 RestController가 인식이 안 됩니다 build.gradle이고 이걸 다시 run했는데 동일합니다 아래는 run 후 콘솔에 찍히는 내용입니다 확인 후 답변 부탁드립니다! 오후 4:51:31: Executing... > Task :help Welcome to Gradle 8.10.1. To run a build, run gradle <task> ... To see a list of available tasks, run gradle tasks To see more detail about a task, run gradle help --task <task> To see a list of command-line options, run gradle --help For more detail on using Gradle, see https://docs.gradle.org/8.10.1/userguide/command_line_interface.html For troubleshooting, visit https://help.gradle.org Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.10.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD SUCCESSFUL in 451ms 1 actionable task: 1 executed 오후 4:51:32: Execution finished. 시키기
실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다) 영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다) 긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com) 카페 [강의 자료실]에도 많은 질문과 답변들이 있어요! cafe: https://cafe.naver.com/kubeops 설정다잘되었는데 이상하게 cpu쪽에서 데이터를 불러오지 못해서 까페에서 이벨님의 글을 보고 Prometheus와 Loki-stack 설치 후 grafana에서 loki-stack datasource 연결은 정상적으로 완료했는데, 대시보드를 확인할 때 모든 대시보드에서 no data가 뜹니다. kubectl get pod -A로 확인했을 때 모든 파드가 Running 되고 있고 Restart도 모두 0입니다. 한가지 의심되는 점은 쿠버네티스 대시보드에서 클러스터 이벤트 로그를 보니까 loki-stack이랑 prometheus에서 사진과 같이 unhealthy가 무진장 뜹니다... 해당 문제는 어떻게 해결할 수 있을까요? systemctl restart chronyd.service 해봤지만 제경우에는 안되더라구요 그래서 저도 프로메테우스 대시보드 들어가볼려고 clusterip를 변경해서 접근해볼려고했지만 잘안되네요 ㅜ 혹시 어떤점이 문제일까요? 일단저같은경우는 가상머신으로 하지않고 rocky linux 홈서버에서 작업하고있습니다.
[실습] Docker로 MySQL 실행시켜보기 - 3 에서 마지막쯤에 비밀번호 바꾸기 위해서 기존의 비밀번호로 mysql 접속 후 비밀번호 바꾸기 호스트 저장 공간에서 파일들 삭제하기 둘 중 하나를 선택하여 비밀번호 바꿀 수 있다고 하셨습니다! 근데 고민되는 부분이 호스트 저장 공간에서 파일들 삭제해서 새로운 비밀번호로 덮어씌우게 된다면 이건 볼륨의 역할을 활용하지 못한 경우가 아닌가 하는 생각이 들어서요.. 결국 볼륨이란건 호스트 저장 공간의 파일 = 컨테이너 내부의 저장 공간 파일이 동기화되어야 하는 건데 호스트 저장 공간 파일 지우고 새롭게 만드는 거면 결국 컨테이너 삭제 생성하는 것과 다를 게 없지 않나요?? 그럼 결국 볼륨의 특성을 살리면서 mysql의 비밀번호를 변경하려면 1번 방법으로 실행할 수 밖에 없는건지 궁금합니다.. ㅠㅠ
강의내용 가상화 기술 사용 이전에는 하나의 OS에서 여러 프로그램을 동작시키는 경우 하나의 프로그램에서 오류가 발생하거나, 주어진 리소스보다 많은 리소스를 사용하면 다른 프로그램에 영향을 미친다. 이에 대한 해결책으로 가상화 기술을 사용하면서 각 프로그램이 독립적으로 동작하며 할당된 자원만을 사용하므로 근본적인 문제를 해결할 수 있다. 라고 이해했습니다. 질문 하지만 결국 호스트 OS가 뻗어버리면 가상화된 방식으로 동작하는 것들도 모두 뻗어버린다고 생각이 들어 근본적인 해결책이 되지는 않는다는 생각이 들었습니다. 얕은 지식으로 생각해본 결과 결국 하나의 컴퓨터에 하나의 프로그램만 돌아가도록 해야할 것 같은데, 이러면 많은 리소스가 사용될 뿐만 아니라 관리의 어려움도 있을 것 같다는 생각이 들었습니다. 제가 너무 극단적인 상황을 생각을 생각하는 걸까요? 실무 레벨에서는 실제로 어떻게 관리하는지, 정말 가상화가 근본적인 해결책이 되는지 등에 대해서 궁금증이 생겨 질문 드립니다. 강의 잘 보고 있습니다. 감사합니다! --- 추가적으로 프론트앤드 개발 환경에서 다양한 환경을 구성해보면서 도커를 공부해보고 싶은데요. 실무에서는 이런 식으로 도커를 활용하니 이런걸 중점적으로 공부하고 구성해보세요. 하는 환경이 있다면 몇개 추천해주시면 감사드리겠습니다!
첫주 환경 구축 중에 Git Bash Winpty 설정하는 부분에서 alsias가 적용되지 않았습니다. 아마 이전에 사용하던 git 설정으로 인해 해당 alias가 적용되지 않은 것 같은데, 위 부분을 넘어가도 괜찮을까요? 제가 사용하고 있는 os는 window 10을 사용하고 있고, git bash의 버전은 2.46.0입니다.
안녕하세요! 먼저 좋은 강의 만들어주신 것에 감사드립니다. 궁금한 게 51강 각 리소스별 동작 에서 서비스 생성 원리에 관한 부분인데요, 제가 이해한 바로는 서비스는 노드에 종속되지 않고 자신에게 연결된 파드에 트래픽을 분산해주는 객체라고 이해했습니다. 또한 kubelet은 자신의 노드에 떠 있는 컨테이너를 관리하고 모니터링 하는게 주요 역할인 것으로 생각했습니다. 강의에서는 kubelet이 kube proxy에 네트워크 생성을 요청한다고 설명해주셨는데, 서비스는 노드에 종속되는 개념은 아닌 것으로 이해했어서, 의아해서 질문 드립니다. 혹시 강의 예시에서는 서비스 타입이 NodePort라서 위와 같이 동작하는 것일까요? ClusterIP 타입인 경우에는 다른 절차를 거쳐서 iptables가 설정되는 걸까요?
1. 무엇을 하고 싶으신가요? 강좌 bind mount에서 로컬과 도커 컨테이너간의 파일 또는 경로를 공유 (/usr/local/apache2/htdocs/) 를 하고자 하는데 계속 연결이 되지 않습니다. 2. 언제, 어떤 오류가 발생하시나요? [doyoung@dockers-m:/test]$ sudo docker run --rm --name httpd -p 8080:80 \ > -v "$(pwd)"/index.html:/usr/local/apache2/htdocs/index.html:rw \ > -d httpd:2.4 a6223fce61285c77f71be99f448e28b4cdba768662030e240db12c6c3d827b55 docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/test/index.html" to rootfs at "/usr/local/apache2/htdocs/index.html": mount /test/index.html:/usr/local/apache2/htdocs/index.html (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type. [doyoung@dockers-m:/test]$ 3. 어떤 시도를 해보셨나요? 로컬 index.html의 권한 변경 chmod 777 index.html 파일 경로 변경 /home/doyoung/~~~/~ --> /test/ 4. 작성한 코드를 공유해주세요. sudo docker run --rm --name httpd -p 8080:80 \ -v "$(pwd)"/index.html:/usr/local/apache2/htdocs/index.html:rw \ -d httpd:2.4
실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다) 영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다) 긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com) 카페 [강의 자료실]에도 많은 질문과 답변들이 있어요! cafe: https://cafe.naver.com/kubeops ((해결했습니다)) 안녕하세요. 강의 열심히 듣고 있습니다. ArgoCD와 docker hub를 연동하는 부분이 잘 진행되지않아 질문드립니다. 현재 2232 실습을 따라하고 있는데요 argo cd와 docker hub 연동하는 부분이 잘 진행되지않는데 원인을 정확히 모르겠어서 질문드립니다. 우선 git repository를 api-tester 소스 부분을 제외하고 모두 제 git으로 fork해서 진행하였습니다. 현재 docker image가 push되는 것 까지는 확인했는데요, argoCD가 변경을 감지하고 받아오는 부분이 안되는 것 같습니다. 제가 이해한바로는 argocd와 docker hub가 연동될 때 필요한 인증 정보는 아래 설정에서 주입되는 것으로 알고 있습니다. 해당 부분은 아래 설정으로 인해 jenkins credential에서 주입받는 것으로 이해하였구요.. jenkins에서 파이프라인을 돌렸을 때, 이미지 push가 정상적으로 진행됐다는 의미니깐 jenkins의 credential에는 문제가 없다고 판단됩니다. 결론적으로 argocd가 감지를 못하는 것 같다는 생각이 듭니다. argocd와 dockerhub 연동 관련해서 제가 직접 설정한 부분은 annotation을 제 docker hub 이름으로 바꾼 것 밖에 없는데요.. 혹시 제가 놓친 것이 있을까요?