섹션4의 5번째 강의 5분 17초에 보면 ECR에 저장된 이미지를 가져오기 위해 ECR의 주소가 적혀있는데요. 이 코드들이 깃헙에 올라가게 되면 저의 프라이빗 ECR 주소가 외부로 공개가 되는 것 같은데 실제 현업에서도 이렇게 ECR 주소가 외부로 공개하는 방식으로 사용하나요? 현재 여럿이서 진행하는 프로젝트의 CI/CD 구축을 해당 강의를 참고하여 진행하려고 하는데 스크립트 작성을 하면서 의문점이 생겨 글 남깁니다! 강의 항상 잘 듣고 있습니다 감사합니다~
안녕하세요 실습하다보니 질문이 생겨서 질문드립니다. 저같은 경우에는 .yml 파일을 올리돼, 중요한 값은 ${변수명} 이런식으로 작성해서 올리는 편입니다. 따라서 이를 EC2 서버의 .bashrc 파일에 export로 설정한 뒤, source ~.bashrc로 값을 초기화해놓았습니다. echo로 확인해보니 문제없이 출력되구요... 그 후 CICD를 적용시켯더니 계속 해당 환경변수를 찾지 못한다는 에러가 발생합니다.. 어떤 부분이 잘못되었는지 모르겠어서 질문드립니다. name: deploy chatGPT server to AWS EC2 on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - name: ssh로 서버 접근 & git pull 후 재배포 진행 uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} script_stop: true script: | source ~/.bashrc cd /home/ubuntu/spring-chatgpt-communication git pull origin main ./gradlew clean build sudo fuser -k -n tcp 8081 || true nohup java -jar build/libs/*SNAPSHOT.jar > ./output.log 2>&1 & 아래는 저의 CICD yml 파일입니다!
안녕하세요, 재성님! 다름이 아니라 강의를 보며 공부하고 있다가 에러를 마주했는데 해결이 잘 되지 않아 질문드립니다. SSH 로 EC2 에 접속하기 란 스크립트 실행 중 다음과 같이 에러가 발생합니다. ec2의 ~ 폴더 .docker 에 `config.json` 도 추가했습니다. IAM 사용자에 AmazonEC2ContainerRegistryFullAccess 정책을 추가하고, 보안 자격 증명에서 액세스 키와 비밀 키를 발급 받아 github 의 Settings 탭에 Secret Key 에 환경변수로 추가해주었습니다. AmazonEC2ContainerRegistryFullAccess 정책을 추가한 역할을 만들어서 이 역할을 EC2 의 IAM 역할 수정으로 등록해주었습니다. 다음은 제 CI/CD .yml 파일 입니다. https://sky-feast-c76.notion.site/yml-5d542fb264d24e58a3f1342fc076343c?pvs=4 좋은 강의 만들어 주셔서 감사합니다!!
안녕하세요 도커파일을 쿠버네티스에 올려보고싶습니다. docker pull python:3.8.3-slim docker run -it python:3.8.3-slim kubectl create deployment python-app --image=python:3.8.3 하여 deployment.apps/python-app created 까지 확인했습니다. 하지만 와 같은 CrashLoopBackOff 가 뜨며 파드가 올라가지 않습니다. 혹시 디플로이먼트 파일을 따로 작성해야하나요 아니면 다른 해결 방법이 있을까요??
선생님 안녕하세요 좋은 강의 감사합니다. 섹션 7의 세번째 강의, python의 위한 도커 의 13:25 에서 바로 torch를 pip으로 설치하지 않고도 바로 import torch를 할 수 있는 이유는 azure vm을 만들때 선택한 size인 nc4as_t4_v3 4 vcpus 에 기본적으로 torch가 깔려있기 때문인가요 (즉, 만약 gpu를 사용하지 않는 다른 환경을 고르면, torch가 안깔려 있어서 pip 으로 깔아야 하는 것인가요) cpu만 사용하는 size인 Standard D2s v3 (2 vcpus, 8 GiB memory) 로 가상환경을 만들었는데, 여기서는 ipynb 파일에 !pip install torch를 해도, import torch를 하면 torch가 없다고 나오는데, 혹시 이 이유를 아실까요..ㅠ
안녕하세요! 알려주신 방법으로 도커와 EC2를 이용해서 CI/CD를 잘 하고 있습니다. ㅎㅎ 그런데 방금 전에 Actions 가 실패해서 봤더니 용량이 부족해서 그런거더라구요. 그래서 좀 찾아봤더니 도커 이미지들을 삭제를 해줘야 하는 것 같네요! 혹시 EC2에 배포하기 전에 도커 이미지를 삭제해주려면 이렇게 하면 될까요? docker stop {컨테이너 이름} || true docker rm {컨테이너 이름} || true docker rmi $(docker images -q) || true docker pull ${{ steps.login-ecr.outputs.registry }}/{이미지 이름}:latest docker run -d --name {컨테이너이름} -p 8080:8080 ${{ steps.login-ecr.outputs.registry }}/{이미지 이름}:latest
선생님 안녕하세요 좋은 강의 감사합니다. 섹션 7에서 dev container 를 사용하는 부분을 보고 있는데, 계속 에러가 납니다. 일단 화면 왼쪽 아래를 클릭하고 add dev container configuration file 클릭하고, 나머지 부분을 말씀하신 것 처럼 해도 오른쪽 아래 reopen in container 팝업이 뜨질 않고요 다시 왼쪽 아래를 클릭하고 중간 위에 뜨는 옵션 중 reopen in container를 클릭하면, 돌아가다가 아래와 같은 에러가 뜹니다. 혹시 뭐가 문제인지 확인이 가능하실까요
풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
색션 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 연결 명령은 필요 없을까요?
안녕하세요. 강사님. 어느날 서버에 접속해보니 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 refused E0605 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 refused E0605 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 refused E0605 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 refused E0605 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 상태였습니다.)
xshell을 통해서 yaml 파일 작성 후 cronjob을 생성해보기도 하였고 대시보드를 통해 cronjob을 생성해보기도 하였습니다. 생성까지는 다음과 같이 무사히 되는데 클릭하고 들어갈 경우 다음과 같은 에러가 발생합니다. 다음과 같이 별 이상은 없는데 대시보드로 접근만 불가한 상황이네요... stackOverFlow에도 관련 오류가 있길래 좀 찾아봤는데 별다른 해결법을 찾지 못했습니다 ㅜ