묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨대세는 쿠버네티스 [초급~중급]
StatefulSet 내용이 잘 이해가 되지 않습니다.
강사님 안녕하세요StatefulSet 강의 중 궁금한 부분이 있어서 질문 드립니다. 먼저 ReplicaSet 부하 분산용으로 kubetm/app 가 3개 실행된다replicas:3spec: containers: - name: container image: kubetm/app부하 분산용으로 kubetm/app 가 3개 실행된다는 내용은 이해를 하겠는데 StatefulSet 예제도replicas:3spec: containers: - name: container image: kubetm/app이렇게 되어있더라구요강의 내용처럼 containers에 예를 들어image: kubetm/primaryimage: kubetm/secondaryimage: kubetm/albiter각각 다른 역할을 하는 container가 실행되어야 하는거 아닌가요?만약 그렇다고 하면 replicas 부분과 container 부분의 yaml 파일 작성이 실제로 어떻게 되는지 궁금합니다.
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
docker run -d -p 9999:80 명령어에 대해
docker run -d -p 9999:80 -v /home/ubuntu/2021_DEV_HTML:/usr/local/apache2/htdocs --name my_apache httpd란 명령어에서1) httpd 의 컨테이너를 실행하는데, 아파치가 9999포트로 해당 경로에 있는 index.html 을 기본 경로로 연결한다 라는 뜻으로 이해를 했는데, 80 이란 포트는 어떤 건지 정확히 이해가 되지 않았습니다 ㅠHost OS 80번 포트 : Apache Container 9999 포트로 서로 연결된다..? 이런 뜻인가요? OS가 80번 포트에 있을리는 없는 것 같아서 문의를 올립니다. 2) /usr/local/apache2/htdocs 가 어떤 경로인지 잘 이해가 안되는데, 아파치에서 바라보는 경로? 가 정확이 어떤 뜻인지 조금만더 설명해주시면 감사할 것 같습니다. 3) 위 명렁어와 별개의 질문인데, Container 란 한 프로그램을 감싸고 프로그램을 띄우는? 공간이라고 설명해주신 것 같습니다. 한 프로그램만 돌아가는건가요? 아니면 별다른 서버 터미널과 동일하게 수많은 프로그램이 돌아갈 수는 있는 건데 목적에 맞는 프로그램들만 돌리는걸까요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
Windows Volume 내용 변경안됨
안녕하세요 Windows 환경에서 Volume 적용 후 내용을 변경하였는데 반영이 안되는데 이유가 어떻게 될까요 docker build -t smileajw1004/nodejs ./docker run -d -p 5000:8080 -v /usr/src/app/node_modules -v ${pwd}:/usr/src/app smileajw1004/nodejs 실행은 정상적으로 이루어지나 소스 수정 후 반영이 안됩니다. 아래 글에 댓글에는 볼륨에 이상이있다 라고만 써주셔서 해결책이 없는데 혹시 방법이 없는건가요
-
미해결대세는 쿠버네티스 [초급~중급]
Authorizattion Secrets 이슈
안녕하세요 강사님,Secrets에 아무것도 보이지 않습니다. authentication 에서도 exec 명령후 etc 안에 Kubernetes 디렉토리가 없어서 인증 키 실습을 못하고 건너 뛰었는데.. 같은 문제로 안되는 건지 설명 부탁 드립니다. 같은 문제면 어떻게 해결해야 할지 도 알려 주시면 감사하겠습니다.
-
해결됨대세는 쿠버네티스 [초급~중급]
Authorization 실습
안녕하세요 강의 잘 보고 있습니다.Authorization 실습예제에서 궁금한 부분이 있는데nm-02 네임스페이스를 생성하면default serviceaccount가 같이 생성되자나요?근데 clusterRole을 default serviceaccount와 연결하지 않고sa-02라는 serviceaccount를 새로 만들어서 연결하는 이유가 있을까요?
-
미해결Nuxt.js 시작하기
리눅스 도커 환경 배포 시 스택 문의
안녕하세요. 게시판 형태의 nuxt 앱 배포환경을 고민하고 있습니다.백엔드 API 서버들은 온프레미스 서버(사무실 서버)와 클라우드에 분산되어 있고, SSR에 따른 SEO와 로딩 속도와 같은 장점을 기대하고 Nuxt로 개발 중입니다.선택지는 다음과 같지만, 2번이 우세한 상황입니다.vercel과 같은 SSR을 지원하는 PaaS를 사용하여 배포리눅스 서버 위 도커 컨테이너로 배포2번을 고려하고 있는 이유는 비용상의 문제보다는 성능과 기능 구현 때문에 고려하고 있습니다(Nginx에서 특정 ip 차단, pm2 프로세스 관리, 동일 서버에 올라간 백엔드 API 컨테이너와 유닉스 소켓으로 연결 등). 또한, 아마 다른 서비스에서 조만간 쿠버네티스를 도입할 것 같아 미래를 고려하는 점도 있습니다. 리눅스 도커 환경에 직접 배포할 때, 도커를 사용하는 부분은 문제가 없으나 스택을 어떻게 구성해야 할지 문의드립니다.간단하게 찾아본 결과 Nginx + pm2 + node(nuxt) 구조에서 각 서비스가 빠지거나 포함되는 것 같은데, 서로 충돌하는 의견이 많은 것 같아 혹시 추천해주실 수 있는 스택이 있는지 문의드립니다. Nginx : 정적 컨텐츠와 빠르고 편리한 https(TLS), 리버스 프록시를 통한 보안과 속도 때문에 필요함. node로도 해당 기능들이 모두 가능하니 필요 없다는 주장도 있으나, 웹서버 점유율에서 node.js가 1~2%라는 자료들에 의하면 의구심이 듦.pm2 : 로그와 프로세스를 편리하게 관리하기 위해서 필요하다는 의견이 많으나, 도커 기반 환경에서는 오히려 도커나 k8s가 프로세스나 로그를 관리하는 것을 방해한다는 의견(https://www.docker.com/blog/keep-nodejs-rockin-in-docker/ )도 있음. 일단 현재는 docker-compose로 Nginx-pm2-node(nuxt) 형태로 개발하고 있습니다. 아마 네카라쿠배에서는 이런 부분이 인프라나 DevOps 쪽으로 분업되어 있어 강사님께서 이런 고민은 생소하실 수도 있겠다는 생각이 들지만, 저 말고도 타의로 프론트엔드를 시작한 분들이 있을 수 있겠다는 생각이 들어 올려봅니다 : )
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False. 오류가 뜹니다.
강의내용대로 쭉 따라가면서askcomapny경로에서 settings 폴더를생성cd askcompany로 경로 이동후 git add .를 한뒤 git mv settings.py settings/common.py 로 파일이동그 상태로 runserver를 해봤더니 CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False. 오류가 뜸원래 경로에 settings.py파일을 다시 만들어 보고 runserver를 해봤더니 오류가 사라짐옮기는 과정에서 문제가 있는건지는 모르겠네요 DEBUG = True 이고 ALLOWED_HOSTS = ['*'] 설정까지도 해봤는데 왜 저런 오류가 뜨는걸까요?
-
해결됨대세는 쿠버네티스 [초급~중급]
loki-stack 설치시 에러가 발생합니다.
[root@k8s-master ~]# helm repo add loki https://grafana.github.io/loki/charts"loki" has been added to your repositories[root@k8s-master ~]# helm fetch loki/loki-stack --version 0.41.2[root@k8s-master ~]# tar -xf loki-stack-0.41.2.tgz[root@k8s-master ~]# lsanaconda-ks.cfg client.crt client.key client.p12 join.sh loki-stack loki-stack-0.41.2.tgz original-ks.cfg ssl[root@k8s-master ~]# cd loki-stack/[root@k8s-master loki-stack]# lscharts Chart.yaml README.md requirements.lock requirements.yaml templates values.yaml[root@k8s-master loki-stack]# vi values.yaml[root@k8s-master loki-stack]# kubectl create ns loki-stacknamespace/loki-stack created[root@k8s-master loki-stack]# helm install loki-stack -f values.yaml . -n loki-stackcoalesce.go:160: warning: skipped value for filters: Not a table.Error: unable to build kubernetes objects from release manifest: [unable to recognize "": no matches for kind "Role" in version "rbac.authorization.k8s.io/v1beta1", unable to recognize "": no matches for kind "RoleBinding" in version "rbac.authorization.k8s.io/v1beta1"][root@k8s-master loki-stack]# 위와 같이 설치시 에러가 발생하는데 어떤 부분을 확인해보면 될까요?
-
해결됨대세는 쿠버네티스 [초급~중급]
longhorn 설치 시 longhorn 삭제가 안됩니다.
[root@k8s-master ssl]# kubectl get storageclasses.storage.k8s.io -n longhorn-system longhornNAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGElonghorn (default) driver.longhorn.io Delete Immediate true 119s[root@k8s-master ssl]# kubectl delete storageclasses.storage.k8s.io -n longhorn-system longhornwarning: deleting cluster-scoped resources, not scoped to the provided namespacestorageclass.storage.k8s.io "longhorn" deleted[root@k8s-master ssl]# cat <<EOF | kubectl create -f -> kind: StorageClass> apiVersion: storage.k8s.io/v1> metadata:> name: longhorn> provisioner: driver.longhorn.io> allowVolumeExpansion: true> parameters:> numberOfReplicas: "2"> staleReplicaTimeout: "2880"> fromBackup: ""> EOFError from server (AlreadyExists): error when creating "STDIN": storageclasses.storage.k8s.io "longhorn" already exists[root@k8s-master ssl]# 어떤 부분을 확인해봐야 할까요?
-
해결됨대세는 쿠버네티스 [초급~중급]
Statefulset PersistentVolumeClaim 생성
안녕하세요 또 여쭤볼 게 있어서 문의 드립니다.퍼시스턴트볼륨클레임을 예제와 같이 동일하게 생성하였는데생성된 퍼시스턴트볼륨클레임에는 용량도 없고퍼시스턴트 볼륨도 생성되지 않았습니다.혹시 어떤 부분을 확인해봐야 할까요?
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
실습 이미지 (docker,ansible) 에 대한 의견(요청)드립니다
안녕하세요.실습환경에 사용되는 이미지로 인해 저도 불편을 겪고 있고, 다른 수강자분들도 불편을 겪는 것 같습니다.DinD 방식이었다가 지금은 DooD 로 이미지가 제공되고 있습니다.도커 강좌가 아닙니다만 실습환경을 만들려고하니 도커 명령어들을 익혀야하고, 현업에서도 도커를 사용하지 않을 수 없으므로 도커에 대해 좀 더 익숙해 질 수 있는 시간이 될 수도 있겠다는 생각입니다. 다만, 강사님께서 문제가 발생되는 상황에 대해 도커 명령어를 기존과 다른 명령어를 제공해주시는데, 그 명령에 대한 충분한 설명이 없습니다.그 부분을 찾아서 이해하는 게 수강자의 몫이기도 한 것은 알겠지만, 강사님께서 사용하신 그 명령어가 어떤 기능을 하는 지, 어떤 경우에 사용하는 것인지 설명이 되면 좋겠습니다. #1docker run --privileged -itd --name ansible-server -p 20022:22 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup edowon0623/ansible:latest /usr/sbin/init#2docker run -itd --name ansible-server -p 20022:22 -e container=docker --tmpfs /run --tmpfs /tmp -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /var/run/docker.sock:/var/run/docker.sock edowon0623/ansible:latest /usr/sbin/init예를들면, #1, #2 두 명령어 모두 강의에서 제공받은 명령어인데, 수강자인 저도 따라서 입력을 하기만 하듯이 하고 있습니다. --privileged--tmpfs/sys/fs/cgroup 볼륨을 공유한 것/var/run/docker.sock 볼륨공유한것(host docker socket 공유 DooD 설정용)등의 옵션들에 대해서 설명을 해주는 챕처가 부록으로라도 있으면 좋겠습니다. 추가로, ansible:latest , docker:latest 만 제공되는데(현재는 DooD 이미지로 보입니다), DindD 로 구성되었던 이전 이미지도 태그를 추가하여 올려주셔서 받을 수 있게 해주시면 좋겠습니다.그리고, 수강생들이 base 리눅스 이미지로 DinD 환경을 만들수 있도록 가이드도 한 번 해주시면 좋겠습니다.a) 리눅스base이미지에 ssh 설치 + 도커설치b) 리눅스base이미지에 ssh설치 + ansible 설치감사합니다.
-
해결됨대세는 쿠버네티스 [초급~중급]
dashboard 2.0 설치 시 토큰값 생성이 안됩니다.
dashboard 2.0 설치중인데요kubernetes-dashboard-token--뒤에서 tab을 눌러도 자동완성이 안되고동영상 학습과 같은 값을 임의로 넣어봐도 안됩니다.어떻게 해야 할까요?tab은 수십번 눌러봤습니다.맨 앞에 kubectl 부분에서 ctl 지우고 kube에서 tab을 누르면 자동완성이 나오는데kubernetes-dashboard-token- 여기에서는 아무리 눌러도 자동완성이 안되네요
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ansible-server docker 시작시 iptables 오류문의
host : window#dockerd -D아래에 iptables 부분에서 오류가 발생합니다.DEBU[2022-09-30T02:15:43.416028911Z] Cleaning up old mountid : start.INFO[2022-09-30T02:15:43.416212616Z] stopping event stream following graceful shutdown error="<nil>" module=libcontainerd namespace=mobyDEBU[2022-09-30T02:15:43.416278772Z] Cleaning up old mountid : done.failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables --wait -t nat -N DOCKER: iptables v1.8.4 (nf_tables): CHAIN_ADD failed (No such file or directory): chain PREROUTING(exit status 4) 해결 방법이 있을까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
cookie-parser Invalid or unexpected token error
영상에 따라서 단순하게 cookie-parser 설치하고 import cookie-parser 한다음에 app.use(cookieParser()) 진행하면 상단에 이미지처럼 에러가 발생하더라구요. cookie-parser을 제거하면 cookie가 정상적으로 저장되는 것을 볼 수 있었습니다. 어떤 부분을 놓친 것일까요server.tsimport express from "express"; import morgan from "morgan"; import { AppDataSource } from "./data-source" import authRoutes from "./routes/auth"; import subRoutes from "./routes/subs"; import cors from 'cors'; import dotenv from 'dotenv'; import cookieParser from "cookie-parser"; const app = express(); dotenv.config(); app.use(cors({ origin: process.env.ORIGIN, credentials: true })) app.use(express.json()); app.use(morgan('dev')); app.use(cookieParser()) app.get("/", (_, res) => res.send("running")); app.use('/api/auth', authRoutes); app.use("/api/subs", subRoutes); const PORT = process.env.PORT; console.log('PORT', PORT) app.listen(PORT, async () => { console.log(`server running at http://localhost:${PORT}`); AppDataSource.initialize().then(async () => { console.log("data initialize...") }).catch(error => console.log(error)) })
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
nginx 오늘 기준 nginx=1.18.0-0ubuntu1.3 입니다..
버전 호환에 문제가 없는진 모르겠지만요...
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
data 폴더 생성되지 않음
안녕하세요, data 폴더 안에 파일들이 생기지 않아 질문 드립니다.강의와 같이 docker-compose.yml 파일에 코드 postgressql 오타난거 postgresql로 제대로 수정하고, 에디터 껐다 킨 다음에 docker-compose up 명령어 실행해봤는데도 data에 폴더들이 생성이 안됩니다. 생성이 안되서 빈 data 폴더를 아예 지우고 docker-compose.yml 파일도 다시 지웠다가 재작성 했는데도 생기질 않습니다. 제가 백엔드가 처음이라 어떻게 해야 할 지 모르겠습니다.. 제가 놓치고 있는 부분이 있는걸까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
ec2 에 배포시 500 (Internal Server Error) 에러가 뜹니다.
안녕하세요?강의를 무사히 다듣고 따라 했는데 로컬에서는 문제가 없다가.env파일과 next.config, 하드코딩된 url 주소를 다 바꿔주었는데도 ec2 환경에서 에러가 뜹니다.
-
해결됨따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
7강 aws관련 질문입니다.
안녕하세요! 질문이 묻힌 것 같아 다시 작성하는 점 죄송합니다ㅠㅠㅠ 강사님의 답변을 보고 다시 docker-compose.yml파일과 .travis.yml파일을 살펴보았습니다. 8,9강에서 Docker-full-stack-app에서는 강사님 말씀처럼 도커허브의 Dockerfile을 이용해 만든 이미지를 사용하지만 6,7강에서는 Dockerfile.dev만 사용하고 Dockerfile을 사용하는 부분은 못찾겠더라구요ㅠㅠㅠ 조금은 지엽적인 질문일 수 있겠지만 너무 궁금합니다ㅠㅠ생소한 개념이 여러개 나와서 어렵지만 강사님 강의 여러번 돌려보면서 이해해보려 노력하고 있습니다! 오늘도 감사합니다!version: "3" services: react: build: context: . dockerfile: Dockerfile.dev ports: - "3000:3000" volumes: - /usr/src/app/node_modules - ./:/usr/src/app stdin_open: true tests: build: context: . dockerfile: Dockerfile.dev volumes: - /usr/src/app/node_modules - ./:/usr/src/app command: ["npm", "run", "test"]sudo: required language: generic services: - docker before_install: - echo "start creating an image with dockerfile" - docker build -t smileajw1004/docker-react-app -f Dockerfile.dev . script: - docker run -e CI=true smileajw1004/docker-react-app npm run test -- --coverage deploy: edge: true provider: elasticbeanstalk region: ap-northeast-2 app: docker-react-app env: DockerReactApp-env bucket_name: elasticbeanstalk-ap-northeast-2-972153559337 bucket_path: docker-react-app on: branch: master access_key_id: $AWS_ACCESS_KEY secret_access_key: $AWS_SECRET_ACCESS_KEY
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
AWS Deploy -> Gate Error ( code : 502 ) | Elastic Beanstalk 에 Linux 2 만 존재하는 경우
React App 을 AWS EB 에 배포하는 과정에서 502 Error 가 발생합니다.아마 강의에서 말씀하신 것 처럼 Linux 버전 차이 말고는 다른점이 없기 때문에 Linux2 로 EB 를 설정해서 발생하는 Error 인 것 같습니다.하지만 현재 AWS EB 에서 제공하는 Docker platform 중에 강의에서 선택하신 Linux( version 1 ) 이존재하지 않는데 이 경우 어떻게 하면 문제를 해결할 수 있을까요?
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
flask 서버관련 문의 드립니다
강의 내용 3분 14초 입니다강의 내용을 듣다가, 제가 이해하고있는게 맞는지 궁금하여 문의 드립니다 현재 강의에서는nginx 프록시 서버가 존재하고 nginx 서버 (myweb) 용 서버가 존재고 있습니다. 선생님 설명중에서flask서버는 nginx 프록시 서버가 포워딩을 해줘서 , flask서버의 gunicorn과 직접 통신 한다고 말씀해 주셨습니다 그렇다면nginx서버(myweb) 가 필요없다면, nginx(myweb) 서버(컨테이너)는 안만들어도 되는것인지 궁금합니다. 선생님께 배워서 간단한 웹페이지를 제작중인데flask에서, index.html 파일도 리턴해주도록 되어있어서,굳이 nginx(myweb) 서버는 안만들어도 될거 같은데,제 생각이 맞는건지 틀린건지 모르겠습니다