묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
java 환경변수 주입 질문
안녕하세요 실습하다보니 질문이 생겨서 질문드립니다. 저같은 경우에는 .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 파일입니다!
-
미해결그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
etcd restore시 etcd static pod pending status
안녕하세요. etcd 백업/리스 투어 진행하고 있는데 정상적으로 etcd snapshot 생성 후 resore 시 etcd pod가 pending 상태를 유지합니다. 혹시 이류를 알 수 있을까요?스냅샷 생성 명령어$ ETCDCTL_API=3 etcdctl --endpoints https://127.0.0.1:2379 --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt snapshot save /home/k8sadm/20240610.db 스냅샷 정상 확인$ ETCDCTL_API=3 etcdctl --write-out=table snapshot status 20240610.dbDeprecated: Use etcdutl snapshot status instead.+----------+----------+------------+------------+| HASH | REVISION | TOTAL KEYS | TOTAL SIZE |+----------+----------+------------+------------+| 1c359138 | 2024399 | 888 | 3.8 MB |+----------+----------+------------+------------+ 스냅샷 리스토어 명령어ETCDCTL_API=3 etcdctl --data-dir /var/lib/etcd-backup snapshot restore 20240610.db4. descirbe etcd podkubectl describe pod etcd-k8s-jyhyun -n kube-systemName: etcd-k8s-jyhyunNamespace: kube-systemPriority: 2000001000Priority Class Name: system-node-criticalNode: k8s-jyhyun/Labels: component=etcd tier=control-planeAnnotations: kubeadm.kubernetes.io/etcd.advertise-client-urls: https://10.6.20.130:2379 kubernetes.io/config.hash: fa7fbc532f6755b3221eb69e85a2d135 kubernetes.io/config.mirror: fa7fbc532f6755b3221eb69e85a2d135 kubernetes.io/config.seen: 2024-06-10T11:30:54.682732539+09:00 kubernetes.io/config.source: fileStatus: PendingSeccompProfile: RuntimeDefaultIP:IPs: <none>Controlled By: Node/k8s-jyhyunContainers: etcd: Image: registry.k8s.io/etcd:3.5.12-0 Port: <none> Host Port: <none> Command: etcd --advertise-client-urls=https://10.6.20.130:2379 --cert-file=/etc/kubernetes/pki/etcd/server.crt --client-cert-auth=true --data-dir=/var/lib/etcd --experimental-initial-corrupt-check=true --experimental-watch-progress-notify-interval=5s --initial-advertise-peer-urls=https://10.6.20.130:2380 --initial-cluster=k8s-jyhyun=https://10.6.20.130:2380 --key-file=/etc/kubernetes/pki/etcd/server.key --listen-client-urls=https://127.0.0.1:2379,https://10.6.20.130:2379 --listen-metrics-urls=http://127.0.0.1:2381 --listen-peer-urls=https://10.6.20.130:2380 --name=k8s-jyhyun --peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt --peer-client-cert-auth=true --peer-key-file=/etc/kubernetes/pki/etcd/peer.key --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt --snapshot-count=10000 --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt Requests: cpu: 100m memory: 100Mi Liveness: http-get http://127.0.0.1:2381/health%3Fexclude=NOSPACE&serializable=true delay=10s timeout=15s period=10s #success=1 #failure=8 Startup: http-get http://127.0.0.1:2381/health%3Fserializable=false delay=10s timeout=15s period=10s #success=1 #failure=24 Environment: <none> Mounts: /etc/kubernetes/pki/etcd from etcd-certs (rw) /var/lib/etcd from etcd-data (rw)Volumes: etcd-certs: Type: HostPath (bare host directory volume) Path: /etc/kubernetes/pki/etcd HostPathType: DirectoryOrCreate etcd-data: Type: HostPath (bare host directory volume) Path: /var/lib/etcd-backup HostPathType: DirectoryOrCreateQoS Class: BurstableNode-Selectors: <none>Tolerations: :NoExecute op=ExistsEvents: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Pulled 11m kubelet Container image "registry.k8s.io/etcd:3.5.12-0" already present on machine Normal Created 11m kubelet Created container etcd Normal Started 11m kubelet Started container etcd Normal Killing 9m46s kubelet Stopping container etcd
-
해결됨대세는 쿠버네티스 [초급~중급]
Xshell
안녕하세요! 쿠버네티스 수강생입니다.쿠버네티스 설치 할 때 Xshell 말고 putty로 사용 가능한가요?감사합니다.
-
미해결대세는 쿠버네티스 [초급~중급]
pc 사양 문제로 cpu core 수 낮춰도 될까요??
현재 학습에 사용하고 있는 PC의 CPU 수가 4개 입니다. (11세대 i7) 3개 vm을 돌리니 cpu 사용량 100%찍어 종종 뻗곤 합니다. vagrant 파일 수정해서 cpu core수 낮춰도 나중에 강의 진행하는 데 문제 없을까요??
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
`err: Error response from daemon: Head "https://~~~/v2/issue-tracker/manifests/latest": no basic auth credentials` 에러 문제입니다.
안녕하세요, 재성님!다름이 아니라 강의를 보며 공부하고 있다가 에러를 마주했는데 해결이 잘 되지 않아 질문드립니다. 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-slimdocker run -it python:3.8.3-slimkubectl create deployment python-app --image=python:3.8.3 하여deployment.apps/python-app created 까지 확인했습니다. 하지만와 같은 CrashLoopBackOff가 뜨며 파드가 올라가지 않습니다.혹시 디플로이먼트 파일을 따로 작성해야하나요 아니면 다른 해결 방법이 있을까요??
-
해결됨실전도커: 도커로 나만의 딥러닝 클라우드 컴퓨터 만들기
섹션 7-3, dev container 관련 질문
선생님 안녕하세요좋은 강의 감사합니다. 섹션 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가 없다고 나오는데, 혹시 이 이유를 아실까요..ㅠ
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
EC2에 배포하기 전에 기존 이미지를 삭제하고 배포해도 되나요?
안녕하세요! 알려주신 방법으로 도커와 EC2를 이용해서 CI/CD를 잘 하고 있습니다. ㅎㅎ 그런데 방금 전에 Actions 가 실패해서 봤더니 용량이 부족해서 그런거더라구요. 그래서 좀 찾아봤더니 도커 이미지들을 삭제를 해줘야 하는 것 같네요! 혹시 EC2에 배포하기 전에 도커 이미지를 삭제해주려면 이렇게 하면 될까요?docker stop {컨테이너 이름} || truedocker rm {컨테이너 이름} || truedocker rmi $(docker images -q) || truedocker pull ${{ steps.login-ecr.outputs.registry }}/{이미지 이름}:latestdocker run -d --name {컨테이너이름} -p 8080:8080 ${{ steps.login-ecr.outputs.registry }}/{이미지 이름}:latest
-
해결됨실전도커: 도커로 나만의 딥러닝 클라우드 컴퓨터 만들기
섹션 7 dev container 오류
선생님 안녕하세요좋은 강의 감사합니다. 섹션 7에서 dev container 를 사용하는 부분을 보고 있는데, 계속 에러가 납니다. 일단 화면 왼쪽 아래를 클릭하고 add dev container configuration file 클릭하고, 나머지 부분을 말씀하신 것 처럼 해도 오른쪽 아래 reopen in container 팝업이 뜨질 않고요 다시 왼쪽 아래를 클릭하고 중간 위에 뜨는 옵션 중 reopen in container를 클릭하면, 돌아가다가 아래와 같은 에러가 뜹니다. 혹시 뭐가 문제인지 확인이 가능하실까요
-
해결됨실전도커: 도커로 나만의 딥러닝 클라우드 컴퓨터 만들기
강의 음량 설정 문제
섹션 6의 강의들이 서로 음량이 다르게 녹화된 것 같습니다. 혹시 확인이 가능하실까요?
-
해결됨개발자를 위한 쉬운 도커
파워쉘 사용하시는 분들은 commit 메세지를 다음과 같이 입력하시면 됩니다
docker commit -m "edited index.html by devwiki" -c "CMD [\""nginx\"", \""-g\"", \""daemon off;\""]" officialNginx <레지스트리계정명>/commitnginx 이렇게 작성해서 해결했습니다.. 혹시 인텔리제이로 파워셀에서 실습하시는 분들은 이렇게 사용해보세요!
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, 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 상태입니다. 문제가 무엇일까요..? 답변 주시면 감사하겠습니다.