묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
reverse proxy 할 때, nginx.conf와 dockerfile에 관하여 질문이 있습니다.
색션 11 reverse proxy 관련 문의 드릴 것이 있습니다.reverse proxy 위하여 nginx.conf 파일에서 어떤 port로 요청이 오면 어떤 container 로 연결할지 설정해주고 있습니다. 가령 아래 코드는 8080 포트로 연결이 오면 docker-nginx로 포워딩하여 nginx라는 container의 80 포트로 연결을 합니다.upstream docker-nginx {server nginx:80}listen 8080 location /{proxy_pass http://docker-nginx} 즉 위와 같이 nginx.confd에는 외부 포트와 container간의 연결이 정의되어 있는데요.. docker-compose 파일을 보면 port라는 key로 proxy 서버의 포트 연결을 또 정의 합니다. ports: -"8080:8080" -"8081:8081" 즉 nginx.conf에서 외부 포트와 container간의 연결을 설정하면 docker-compose 파일에서 port 연결 명령은 필요 없을까요?
-
미해결그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
API Timeout 발생하면서 연결 오류 발생
안녕하세요. 강사님.어느날 서버에 접속해보니 api timeout이 발생하면서 node / pod 등 조회가 안되고 있습니다. E0605 17:20:35.425038 3424 memcache.go:265] couldn't get current server API group list: Get "https://192.168.37.169:6443/api?timeout=32s": dial tcp 192.168.37.169:6443: connect: connection refusedE0605 17:20:35.425350 3424 memcache.go:265] couldn't get current server API group list: Get "https://192.168.37.169:6443/api?timeout=32s": dial tcp 192.168.37.169:6443: connect: connection refusedE0605 17:20:35.426888 3424 memcache.go:265] couldn't get current server API group list: Get "https://192.168.37.169:6443/api?timeout=32s": dial tcp 192.168.37.169:6443: connect: connection refusedE0605 17:20:35.428316 3424 memcache.go:265] couldn't get current server API group list: Get "https://192.168.37.169:6443/api?timeout=32s": dial tcp 192.168.37.169:6443: connect: connection refusedE0605 17:20:35.429744 3424 memcache.go:265] couldn't get current server API group list: Get "https://192.168.37.169:6443/api?timeout=32s": dial tcp 192.168.37.169:6443: connect: connection refused 위와 같이 api timeout이 발생하면서 연결 거부가 발생하여서구글링하여보니 /etc/kubernetes/admin.conf를 $HOME/.kube/config에 복사하여 해결한 사례를 보고 똑같이 하였으나 증상이 동일합니다.혹시 이런 상황에서 어떤쪽을 확인해보면 좋을까요?(kubelet쪽도 확인하여보았지만 정상 running 상태였습니다.)
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
EC2 스프링부트 배포하기에서 빌드가 안됩니다.
ec2-spring-boot-sample를 clone 받아 빌드를 실행했는데 78%에서 진행이 안되네요. 말씀주신 다른 명령어로 실행해보니 디펜던시에 문제가 있는 것 같기도 합니다 ㅜㅜ
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
EC2에 nodejs 설치하기
[실습] 7. Express 서버를 EC2에 배포하기강의에서 nodejs 설치할 때 복사해서 가져와 주셨는데 코드가 길어서 어디서 긁어올 수 있는지 알 수 있으면 좋을 것 같아요. 늘 좋은 강의 감사합니다.
-
미해결대세는 쿠버네티스 [초급~중급]
cronjob을 생성 후 대시보드를 통한 접근시 404오류가 발생합니다.
xshell을 통해서 yaml 파일 작성 후 cronjob을 생성해보기도 하였고 대시보드를 통해 cronjob을 생성해보기도 하였습니다. 생성까지는 다음과 같이 무사히 되는데 클릭하고 들어갈 경우 다음과 같은 에러가 발생합니다. 다음과 같이 별 이상은 없는데 대시보드로 접근만 불가한 상황이네요... stackOverFlow에도 관련 오류가 있길래 좀 찾아봤는데 별다른 해결법을 찾지 못했습니다 ㅜ
-
해결됨개발자를 위한 쉬운 도커
섹션8-캐싱을 활용한 빌드
안녕하세요 수강 중 궁금한 점이 생겨 질문 드립니다.App.vue파일에서 내용을 바꾼 후 빌드 했을 때 copy 지시어부터 캐싱이 사용되지 않는다고 하셨는데 왜 오른쪽의 나온 시간이 0.0초인지 궁금합니다!
-
미해결따라하며 배우는 MySQL on Docker
Proxy SQL에 대한 질문입니다.
안녕하세요, 특정 테이블의 데이터를 Master에서 업데이트를 하고 바로 조회를 한다면, 아직 복제되지 않은 Slave 테이블에서 데이터가 조회가 된다면, 업데이트 되지 않는 것처럼 보일 수 있을 것 같아서, 이런 경우에는 어떻게 진행이 되야하는지 궁금합니다.바로바로 결과를 확인해야하는 경우는 Master에서만 Read되도록 설정이 가능한가요?
-
해결됨대세는 쿠버네티스 [초급~중급]
안녕하세요.
안녕하세요, 관련강의를 통하여 쿠버네티스를 많이 이해하는데 도움이 되었습니다.그림과 실습으로 친절하게 알려주셔서 감사합니다. 궁금한 사항으로 (굉장히 기본적인 내용인 것 같은데요 ㅎ) 대쉬보드 에서 클러스터 롤바인딩(ex. kubernetes-dashboard2)을 수정할때는 버튼으로 수정이 편한데요. OS 상에서는 어떻게 수정하는지 궁금합니다. 감사합니다.
-
미해결대세는 쿠버네티스 [초급~중급]
대시보드 접속 오류 질문입니다.
안녕하세요 강사님.현재 k8s master 노드와 node1,2를 모두 정상적으로 생성한 상태인데, 대시보드 접근이 안되어 문의글 남깁니다. 대시보드 url을 입력해 접속하면 다음과 같은 화면이 출력됩니다.kubectl get pods -A 했을 때 모든 pods가 정상적으로 running 상태입니다. 문제가 무엇일까요..? 답변 주시면 감사하겠습니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
aws ecr이 아닌 docker hub를 이용한 CI/CD
aws ecr이 아닌 docker hub를 이용한 CI/CD 이용한 방법하고 ECR하고 차이가 많나요.있다면 어떤 부분 따로 학습이 필요할 까요?
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
jupyter notebook 설치 중 no space left on device가 발생합니다 ㅠ
안녕하세요, section 8 / docer 활용하기에서 jupyter notebook 페키지를 설치중 no space error가 발생합니다. 제가 EC2 인스턴스 생성 시 용량을 8G만 했었거든요. 그래서 일단 EC2 서버에 가서 용량을 16G로 늘리고, 블로그 보고 파티션 설정까지 해줬습니다. 현재 lsblk 치면 아래와 같이 나옵니다. 다시 jupyter notebook을 설치해도, 여전히 no space left 라고 나오네요 ㅠㅠ 뭔가 파티션 설정이 잘못 된 것 같은데, 방법을 알려주시면 감사드리겠습니다!!!!
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
aws 요금 청구 관련
이렇게 나와있는데 실제로 결제된건 아니고예상청구금액 같은 것 같아요혹시 왜 이렇게 나오는지 짐작가시는 거 있을까요?가입한지 한달 안되었고.. 똑같이 따라한 것 같거든요...짐작가시는 부분 있으시면 알려주세용...강의 쉬었다가 보려고 2주정도 인스턴스 정지해놓긴 했거든요.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
echo로 깃허브 액션내 서버에서 yml 파일 생성시 질문
spring: jpa: open-in-view: false hibernate: ddl-auto: none properties: hibernate.default_batch_fetch_size: 100 --- spring.config.activate.on-profile: local spring: jpa: hibernate: ddl-auto: create properties: hibernate: format_sql: true show_sql: true h2: console: enabled: true storage: datasource: core: driver-class-name: org.h2.Driver jdbc-url: jdbc:h2:mem:core;MODE=MySQL;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE username: sa pool-name: core-db-pool data-source-properties: rewriteBatchedStatements: true --- spring.config.activate.on-profile: local-dev spring: jpa: properties: hibernate: show_log: true format_sql: true show-sql: true storage: datasource: core: driver-class-name: com.mysql.cj.jdbc.Driver jdbc-url: jdbc:mysql://${storage.database.core-db.url} username: ${storage.database.core-db.username} password: ${storage.database.core-db.password} maximum-pool-size: 5 connection-timeout: 1100 keepalive-time: 30000 validation-timeout: 1000 max-lifetime: 600000 pool-name: core-db-pool data-source-properties: socketTimeout: 3000 cachePrepStmts: true prepStmtCacheSize: 250 prepStmtCacheSqlLimit: 2048 useServerPrepStmts: true useLocalSessionState: true rewriteBatchedStatements: true cacheResultSetMetadata: true cacheServerConfiguration: true elideSetAutoCommits: true maintainTimeStats: false위의 yml 파일을 깃허브 액션내 서버에서 생성하려구 합니다. - name: db-core.yml 파일 만들기 run: echo "${{ secrets.APPLICATION_PROPERTIES }}" > ./storage/db-core/src/main/resources/db-core.yml액션 스크립트에서 강의와 같이 설정하면 아래와 같은 에러가 뜹니다 ㅠㅠecho 명령어가 특수문자(---)에 대해서 처리를 못하는 걸까요?Run echo "*** /home/runner/work/_temp/63b7a555-4d5d-42d4-971d-fe62ef3e0580.sh: line 70: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** : bad substitution Error: Process completed with exit code 1.
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
OVA이미지 실습시, kubectl run nginx 안됨
도저히 실습에 진도가 나가지않아서 삽질하다가 질문드립니다. 사내에서 실습하는데, 사내 Proxy로 인해 Vagrant로 동작이 안되서 만들어놓으신 Vagrantfile, sh 스크립트 파일까지 고쳐가면서 하나씩 뚫고 가다가 결국은 포기했습니다. 그래서 강의대로 OVA이미지 파일 4개를 Windows의 VirtualBox에 import하고 실행했는데요.강의처럼 테스트로 nginx pod 하나 뛰워보면, 계속 상태가 아래와 같이 ContainerCreating에서 변하지 않습니다. [root@m-k8s ~]# kubectl run nginx --image=nginx pod/nginx created [root@m-k8s ~]# kubectl get po -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx 0/1 ContainerCreating 0 14s <none> w3-k8s <none> <none> 그래서 인터넷 뒤져서 descibe 명령을 해보면 아래와 같고요[root@m-k8s ~]# k describe pods Name: nginx .... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 3m11s default-scheduler Successfully assigned default/nginx to w3-k8s Warning FailedCreatePodSandBox 3m10s kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "98c8cd593834608f6b964442a4253da3b4d5c8936ee5ba0b01d2b37dd58f7f07": plugin type="calico" failed (add): stat /var/lib/calico/nodename: no such file or directory: check that the calico/node container is running and has mounted /var/lib/calico/ kubelet.service 로그를 보면 아래와 같이 rpc error가 발생합니다.[root@m-k8s ~]# journalctl -f -u kubelet.service -- Logs begin at Fri 2024-05-31 13:58:40 KST. -- May 31 13:59:30 m-k8s kubelet[1170]: E0531 13:59:30.245464 1170 kuberuntime_gc.go:176] "Failed to stop sandbox before removing" err="rpc error: code = Unknown desc = failed to destroy network for sandbox \"684257523f2fa5084b4176cb38db77da2b32eaede58d0e565eafa9cd0a606167\": plugin type=\"calico\" failed (delete): error getting ClusterInformation: Get \"https://[10.96.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default\": dial tcp 10.96.0.1:443: i/o timeout" sandboxID="684257523f2fa5084b4176cb38db77da2b32eaede58d0e565eafa9cd0a606167" May 31 13:59:40 m-k8s kubelet[1170]: E0531 13:59:40.856695 1170 remote_runtime.go:269] "StopPodSandbox from runtime service failed" err="rpc error: code = Unknown desc = failed to destroy network for sandbox \"e2e9812b51ac2134f3a12109f08b56c4475de7206dde4b4a127ca8ed418653b0\": plugin type=\"calico\" failed (delete): error getting ClusterInformation: Get \"https://[10.96.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default\": dial tcp 10.96.0.1:443: i/o timeout" podSandboxID="e2e9812b51ac2134f3a12109f08b56c4475de7206dde4b4a127ca8ed418653b0" May 31 13:59:40 m-k8s kubelet[1170]: E0531 13:59:40.856857 1170 kuberuntime_manager.go:954] "Failed to stop sandbox" podSandboxID={Type:containerd ID:e2e9812b51ac2134f3a12109f08b56c4475de7206dde4b4a127ca8ed418653b0}무엇이 문제일까요? ㅠ위 로그에 "https://[10.96.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default"이 10.96.0.1 IP는 처음보는 IP인데 정상적인 IP는 맞을까요?OVA이미지 import할때 VirtualBox에 설정이 문제일까요?kubectl run nginx --image=nginx 할때 외부사이트에서 이미지를 받아오나요? 외부 사이트라면 ID/패스워드 인증없이 받아오는걸까요? 외부 registry면.. 또 Proxy 설정이나, SSL 인증이 문제가 될거 같기도 한데요...
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
8080 포트에서 실행 중인 프로그램이 없습니다.
ubuntu@ip-172-31-86-200:~$ cd memberCertification ubuntu@ip-172-31-86-200:~/memberCertification$ ./gradlew clean build BUILD SUCCESSFUL in 7s 6 actionable tasks: 6 executed ubuntu@ip-172-31-86-200:~/memberCertification$ ls build build.gradle gradle gradlew gradlew.bat settings.gradle src ubuntu@ip-172-31-86-200:~/memberCertification$ cd build ubuntu@ip-172-31-86-200:~/memberCertification/build$ ls classes generated libs resolvedMainClassName resources tmp ubuntu@ip-172-31-86-200:~/memberCertification/build$ cd libs ubuntu@ip-172-31-86-200:~/memberCertification/build/libs$ ls memberCertification-0.0.1-SNAPSHOT-plain.jar memberCertification-0.0.1-SNAPSHOT.jar ubuntu@ip-172-31-86-200:~/memberCertification/build/libs$ nohup java -jar memberCertification-0.0.1-SNAPSHOT.jar & [1] 1678 ubuntu@ip-172-31-86-200:~/memberCertification/build/libs$ nohup: ignoring input and appending output to 'nohup.out' ubuntu@ip-172-31-86-200:~/memberCertification/build/libs$ sudo lsof -i:8080 ubuntu@ip-172-31-86-200:~/memberCertification/build/libs$ build를 했는데 publicIPs에 8080 포트를 주소에 입력하면 "연결을 거부했습니다." 라는 문구가 뜹니다.8080 포트가 쓰이지 않는 거 같아 cat nohup.out을 입력해보면 org.postgresql.util.PSQLException: FATAL: password authentication failed for user "jjeong" at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:693) ~[postgresql-42.6.0.jar!/:42.6.0] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.exception.GenericJDBCException: Unable to open JDBC Connection for DDL execution [FATAL: password authentication failed for user "jjeong"] [n/a] application.properties#datasource spring.datasource.driver-class-name=org.postgresql.Driver spring.datasource.url=jdbc:postgresql://localhost:5432/membercertification spring.datasource.username=jjeong spring.datasource.password=0525url, username, password가 다 들어맞는 것도 확인했습니다. build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.modelmapper:modelmapper:3.1.0' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.2.RELEASE' // implementation 'org.hibernate.orm:hibernate-core:6.2.6.Final' compileOnly 'org.projectlombok:lombok' runtimeOnly 'org.postgresql:postgresql' annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.0' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.0' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' developmentOnly 'org.springframework.boot:spring-boot-devtools' } 어디가 문제인지 모르겠습니다 ㅠㅠ
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
InteliiJ IDEA에서 빌드 시 에러가 발생하지 않는데, EC2에서 빌드 시 에러가 발생합니다.
혹시 코드를 수정하고 계속 commit 해서, 맨 처음에 clone 했을 때의 코드와 현재 코드가 다른데 추가로 어떤 명령어를 더 입력해야 하나요 ?깃허브 주소입니다 ! https://github.com/jjeong1015/memberCertification/tree/main
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
./gradlew clean build --warning-mode=all --stacktrace 빌드 에러
https://www.inflearn.com/questions/1277467/%EB%B9%8C%EB%93%9C-%EC%8B%9C-%EC%97%90%EB%9F%AC%EA%B0%80-%EB%B0%9C%EC%83%9D%ED%95%A9%EB%8B%88%EB%8B%A4 말씀하신 명령어로 입력해보았으나 해당 에러들이 발생하였습니다 !깃허브 주소 : https://github.com/jjeong1015/memberCertification
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
웹서버 띄우는 docker run -d -p 9999:80 ~~ 명령에서 --it 옵션은 필요 없나요?
section 6 / 17분 50초 웹서버 띄우는 명령 docker run -d -p 9999:80 --name apacheweb2 httpd 에서 "-it" 옵션은 필요 없나요?
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
section 6 질문(-v 사용)
선생님 안녕하세요좋은 강의 감사드립니다. section 6, docker 주요 명령 익히기7 (컨테이너를 다루는 다양한 옵션) 강의 3:40초 부분에서 질문이 있습니다.해당 부분은 -v 옵션을 사용해서 docker의 특정 폴더를 로컬(여기서는 aws ec2 서버)의 폴더와 연결한 모습을 보여주고 있는데요. 문제는. 저는 이 도커에 -v를 사용해서 로컬의 폴더와 연결한 적이 없다는 것입니다. 제가 "section 6, docker 주요 명령 익히기5" 에서 한 것은 httpd 이미지를 사용해서 만든 도커를 연결한 것이었고, "section 6, docker 주요 명령 익히기7"에서는 httpd:alpine 이미지를 사용해서 도커를 새로 만들었거든요. 도커를 새로 만들었음에도 불구하고, 이전에 연결해놓은 -v가 그대로 작동하는 것은 왜 그런것이죠?
-
미해결따라하며 배우는 MySQL on Docker
docker-compose 후 shell 정상작동 후 mysql dashboard 정상작동안함 ㅁ누의
다음과 같은 현상이 일어나며, 정상적으로 설치는 완료하였습니다. 다만 연결하는 디렉토리를 /db/~~ 로 시작하는 것을 제 개인 폴더 /mnt/db/~~ 로 설정해주었는데 이러한 이유가 무엇떄문에 일어날까요?