안녕하세요. 일프로님 질문이 있습니다. 1. Blue Green 배포시 가장 대표적인 단점이 서버 리소스(CPU, Memory)를 2배로 사용하는 것으로 알려져 있습니다. 여기서 제가 이해한바로는 cpu는 그대로고 메모리는 교체하는 짧은 시점에만 2배가 되는것으로 이해했는데 맞을까요? 그리고 이 문제가 중요한 이슈인 점은 blue green 배포를 사용하면 항상 워커 노드들에는 여유분의 메모리를 상비해둬야해서일까요?? 2.혹시 애플리케이션 기동 중 문제(ex yaml 파일 오류)가 발생하면 어떻게하나요? 예를 들어서 Blue Green 배포시, 기존 blue에서 green으로 교체하려하는데 green에 속한 pod들이 기동에 실패해버리고 green 버전으로 트래픽이 옮겨지면 결국 서비스를 이용 못할거 같습니다. rolling도 마찬가지입니다. 감사합니다
안녕하세요 도커 volume 관련해서 질문드립니다. 저희가 수업에서는 db에 있는 data들을 volume에 연결하여 사용하였잖아요. 근데 예를들어 nodejs 백엔드 프레임워크와 mongodb를 사용한다고 했을 때 제가 백엔드 서버에서 db서버로 유저 데이터를 보낸다했을 때 그 보낸 데이터가 제 로컬 피시에 저장이안되고 db자체 서버에 저장되는거같은데 굳이 volume을 왜 사용하는건가요? 아 그리고 backend서버에도 volume이 필요할까요? 필요하다면 어떨때 보통 volume에 데이터를 저장하나요?
안녕하세요 강사님 해당 강의 내용을 따라가는데 제 터미널 환경에서는 volume에 관한 정보를 확인할 수가 없습니다 컨테이너는 정상적으로 실행되고 이제 mysql_data도 생성되는데 안이 비어있더라고요.. git bash, powershell, cmd 3개의 환경에서 해봣는데 문제를 해결할 수가 없었습니다...
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 2024-10-09T14:59:40.805Z WARN 1 --- [ main] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to query metadata org.hibernate.exception.JDBCConnectionException: unable to obtain isolated JDBC connection [Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.] [n/a] at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:100) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:94) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:116) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] 안녕하세요. 강사님. 늘 퀄리티 좋은 강의 감사드립니다. 섹션 6. Docker Compose를 활용해 2개 이상의 컨테이너 관리기 에서 스프링부트와 MySQL을 동시에 띄워보는데 위와 같은 예외가 나서 문의드립니다. application.yml 에서 url: jdbc:mysql://my-db:3306/mydb 로 바꿔도 같은 상황입니다. 이후 계속 시도를 하다가, build.gradle 에 있는 jpa관련 의존성을 빼고 도커를 올리니 성공하였습니다. 그리고 다시 도커를 내리고 jpa의존성을 다시 추가하고 도커를 올리니 이제는 redis까지 올려서 운용 중입니다. 하지만 원인이 궁금하여 이렇게 문의 남깁니다. 감사합니다.
안녕하세요. 강의를 듣다보니 문득 궁금한게 생겨서 질문올립니다. 저희가 image로 컨테이너를 만들고 container에서 변경사항을 만들고 그걸 commit한다면 기존에 있는 image layer위에 쌓는다고 얘기하셨는데 그렇다면 기존의 image에 있는 index.html파일 안에는 원래 nginx에서 갖고있던 index.html이 있고 그위에 저희가 변경한 index.html이 있는거잖아요 그럼 이걸 run 했을때는 어떻게 되는건가요? 밑에 layer부터 순차적으로 run하면서 기존의 index.html을 덮어 쓰는건가요?
안녕하세요! 매번 강의 잘 듣고있습니다. 다름이 아니라 매번 이미지를 push 할때마다 에러가 떠서 뭐가 문제지하고 며칠 고민하다가 글을 올립니다. 상황은 아래와 같습니다. postgreSQL 컨테이너 강의를 수강중이였고, 강의 12분35초 실습 내용입니다. 그전까지는 실습 진행하는데 문제 없었습니다. 로그인할때 패스워드는 token을 이용해서 하고 있고, 토큰은 다음과 같이 설정해두었습니다. M2 pro를 사용하고 있으며, 강의는 회사에서 듣고있는데요(사내망 사용) 사내망이여서 이런 문제가 발생했다고 생각해야할까요? 아니면 어느 부분을 확인해야할까요?
안녕하세요. 현재 아래 빨간색 부분 강의 실습을 진행중에 있습니다. root@873e7cd9bbae:/app# ls build/libs 이렇게 했을 때 아래 처럼 정상적으로 파일이 생성되었습니다. Leafy-0.0.1-SNAPSHOT.jar Leafy-0.0.1-SNAPSHOT-plain.jar 그 다음 아래와 같이 실행 했을 때 Error 가 발생했습니다. 주신 실습 파일 그대로 빌드했습니다. root@873e7cd9bbae:/app# java –jar build/libs/Leafy-0.0.1-SNAPSHOT.jar Error: Could not find or load main class –jar Caused by: java.lang.ClassNotFoundException: –jar 이경우 어디를 체크해 봐야 하는 건지요? 감사합니다.
강의를 듣다가 문득 이런 질문이 떠오르더라고요. 지금 저희가 만약 하이퍼 바이저 가상화를 사용한다고 하면 지금 제가 현재 쓰고 있는 windows가 host os가 되고 guest OS의 요청들을 hypervisor를 통해서 system call들을 받게 되는거잖아요. 그럼 컨테이너 가상화에서는 제가 쓰고 있는 Windows(OS)는 아예 배제되는건가요? HostOS가 Linux가 기본이라고 하셨는데 그럼 하이퍼바이저 가상화처럼 Linux라는 OS를 Windows가 host OS가 되어서 쓰는건가요? 조금 복잡하네요 ㅠ
안녕하세요. 데브위키입니다. 강의에 포함된 내용이 아니더라도 강의를 듣다가 궁금하신 점이 생기시면 부담없이 편하게 질문해주세요. 실습에 오류가 발생했거나 명령어가 예상한대로 실행되지 않으신 경우 사용하시는 OS 환경과 화면을 캡처해서 보내주시면 빠르고 자세하게 답변을 드릴 수 있습니다. 질문은 가능한 빠르게 답변 드리겠습니다. 😀 감사합니다.
devcontainer를 통해 vscode에서 개발환경용으로 컨테이너를 만들 수 있다고 이해를 했는데요, 예제의 leafy-frontend 패키지를 보면 leafy-frontend root에 Dockerfile이 있고, .devcontainer 안에도 Dockerfile이 있는데요, .devcontainer 내부의 Dockerfile은 dev container 전용 세팅 Dockerfile인가요 ??
안녕하세요. pod 몇 개가 정상 실행이 되지 않는 문제가 있어서 로그를 확인했더니 아래와 같은 메세지들이 있었습니다. 혹시 해당 문제에 대해서 짚이는 부분이 있으실까요 ? *v1.ConfigMap을 볼 수 없다는 에러의 이유가 뭘까요? 감사합니다. W1125 00:20:42.253966 1 reflector.go:533] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:231: failed to list *v1.ReplicationController: Get "https://192.168.50.201:6443/api/v1/replicationcontrollers?limit=500&resourceVersion=0": dial tcp 192.168.50.201:6443: connect: connection refused E1125 00:20:42.254002 1 reflector.go:148] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:231: Failed to watch *v1.ReplicationController: failed to list *v1.ReplicationController: Get "https://192 .168.50.201:6443/api/v1/replicationcontrollers?limit=500&resourceVersion=0": dial tcp 192.168.50.201:6443: connect: connection refused W1125 00:20:44.225263 1 reflector.go:533] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:231: failed to list *v1.ConfigMap: Get "https://192.168.50.201:6443/api/v1/namespaces/kube-system/configma ps?fieldSelector=metadata.name%3Dextension-apiserver-authentication&limit=500&resourceVersion=0": dial tcp 192.168.50.201:6443: connect: connection refused E1125 00:20:44.225301 1 reflector.go:148] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:231: Failed to watch *v1.ConfigMap: failed to list *v1.ConfigMap: Get "https://192.168.50.201:6443/api/v1/ namespaces/kube-system/configmaps?fieldSelector=metadata.name%3Dextension-apiserver-authentication&limit=500&resourceVersion=0": dial tcp 192.168.50.201:6443: connect: connection refused
안녕하세요, 강의에서 구현해주신 Primary-Standby Replication 구조가 어떤 명령어를 통해 구성되는지 궁금해서 여쭤봅니다. 실습시에 복붙만 해서 정확히 어떤 명령어가 데이터를 복제해주고 동기화할 수 있는지, standby 쪽에서는 어떻게 읽기만 가능한지 궁금합니다. REPMGR_PRIMARY_HOST 는 Primary로 세팅되고, REPMGR_PARTNER_NODES 는 primary를 제외한 나머지 name:port는 standby로 세팅이 되는게 맞을까요? 추가로, primary-standby 방식에서 primary는 "반드시" 한개여야만 하나요 ? 여러개 일수도 있는지 궁금합니다
COPY . . 와 같은 copy 레이어에서, 기존의 내용과 다른 경우 새로운 레이어를 생성한다고 했는데요, 기존의 내용과 다른지 같은지를 판별하려면 해당 명령어를 실행하여 결과를 가져와서 비교를 해봐야 같은지 다른지 알 수 있지 않나요?? 혹은 실행전에 특정 해시값이 존재하고, 그 해시값은 비교하는 형식으로 캐싱이 동작하나요 ? 궁금합니다!
안녕하세요, 강의를 열심히 수강 중인 학생입니다. (실습을 진행 중인 환경은 맥입니다.) docker push 중에 선생님과 다른 결과창이 떠서 궁금한게 생겨 질문남깁니다. 메세지 내용을 정확하게 이해할 수 없어 챗지피티한테 먼저 물어봤습니다. 지피티한테 답변을 받은 이후에 생긴 궁금증들 입니다. 레이어가 마운트되고 있다는게 정확하게 무슨 의민가요? 우선 레이어도 무엇을 지칭하는지 모르겠습니다만ㅠ 현재 실습상황에서는 docker images 명령어를 통해 image를 확인해보면, 이렇게 나와있습니다. 원본 이미지(devwikirepo/simple-web)가 이미 존재하고 그에 대한 사본(sjin980530/simple-web)이 존재하기에 이런 경우가 발생하는건가요? 그럼 지금 진행하고 있는 실습은 push를 docker hub에 하고있는건데, 로컬의 상황과는 관계없는게 아닌가요?ㅠㅠ 현재 푸시된 이미지가 단일 플랫폼 이미지라는 말은 그럼 제 실습환경(mac)이 아닌 다른 환경(윈도우 등)에서는 사용하지 못하는 이미지라는 뜻인가요? 1과 이어지는 질문입니다 원래 레이어와 푸시된 레이어의 다이제스트가 매핑되고있다라고 하는데, 이건 어떻게 이해하면 될까요? 레이어에 대한 지식이 없어 어떤 상황인지 감이 잘 안잡힙니다. 항상 감사드립니다.