질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다! [질문 전 답변] 1. 강의에서 다룬 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 법을 읽어보셨나요? 예 (https://www.inflearn.com/blogs/1719) 4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 5. vagrant up 에서 발생하는 문제는 주로 호스트 시스템(Windows, MacOS)과 연관된 다양한 조건에 의해 발생합니다. 따라서 이를 모두 제가 파악할 수 없어서 해결이 어렵습니다. vagrant up 으로 진행이 어렵다면 제공해 드리는 가상 머신(VM) 이미지를 import해서 진행하시기 바랍니다. ( https://www.inflearn.com/questions/992407/comment/281901 ) [질문 하기] window환경에서 vagrant up은 정상적으로 실행되었고 tabby로 cp에 접속해서 실습을 진행하다가 보니 pod상태가 변경이 안되서 문의드립니다. apply 실행 후 pod상태가 ContainerCreating 에서 변경되지 않습니다. 해결 방법이 있을까요? root@cp-k8s:~/_Lecture_k8s_learning.kit/ch3/3.6# k get po NAME READY STATUS RESTARTS AGE nginx 0/1 ContainerCreating 0 78s root@cp-k8s:~/_Lecture_k8s_learning.kit/ch3/3.6# k describe pods Name: nginx Namespace: default Priority: 0 Service Account: default Node: w3-k8s/192.168.1.103 Start Time: Fri, 10 Jan 2025 22:02:30 +0900 Labels: run=nginx Annotations: Status: Pending IP: IPs: Containers: nginx: Container ID: Image: nginx Image ID: Port: Host Port: State: Waiting Reason: ContainerCreating Ready: False Restart Count: 0 Environment: Mounts: /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-44v7r (ro) Conditions: Type Status PodReadyToStartContainers False Initialized True Ready False ContainersReady False PodScheduled True Volumes: kube-api-access-44v7r: Type: Projected (a volume that contains injected data from multiple sources) TokenExpirationSeconds: 3607 ConfigMapName: kube-root-ca.crt ConfigMapOptional: DownwardAPI: true QoS Class: BestEffort Node-Selectors: Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 2m10s default-scheduler Successfully assigned default/nginx to w3-k8s Warning FailedCreatePodSandBox 2m11s kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "b57c40549808d64a9c6fd2406bca31e347e84b2374864bcf2ad408be2d761174": plugin type="calico" failed (add): error getting ClusterInformation: connection is unaut horized: Unauthorized Normal SandboxChanged 5s (x11 over 2m10s) kubelet Pod sandbox changed, it will be killed and re-created. root@cp-k8s:~/_Lecture_k8s_learning.kit/ch3/3.6# k get po NAME READY STATUS RESTARTS AGE nginx 0/1 ContainerCreating 0 4m16s root@cp-k8s:~/_Lecture_k8s_learning.kit/ch3/3.6# k describe pods Name: nginx Namespace: default Priority: 0 Service Account: default Node: w3-k8s/192.168.1.103 Start Time: Fri, 10 Jan 2025 22:02:30 +0900 Labels: run=nginx Annotations: Status: Pending IP: IPs: Containers: nginx: Container ID: Image: nginx Image ID: Port: Host Port: State: Waiting Reason: ContainerCreating Ready: False Restart Count: 0 Environment: Mounts: /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-44v7r (ro) Conditions: Type Status PodReadyToStartContainers False Initialized True Ready False ContainersReady False PodScheduled True Volumes: kube-api-access-44v7r: Type: Projected (a volume that contains injected data from multiple sources) TokenExpirationSeconds: 3607 ConfigMapName: kube-root-ca.crt ConfigMapOptional: DownwardAPI: true QoS Class: BestEffort Node-Selectors: Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 4m18s default-scheduler Successfully assigned default/nginx to w3-k8s Warning FailedCreatePodSandBox 4m18s kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "b57c40549808d64a9c6fd2406bca31e347e84b2374864bcf2ad408be2d761174": plugin type="calico" failed (add): error getting ClusterInformation: connection is unaut horized: Unauthorized Normal SandboxChanged 1s (x21 over 4m17s) kubelet Pod sandbox changed, it will be killed and re-created.
https://github.com/expressjs/cors?tab=readme-ov-file#enable-cors-for-a-single-route 참고하여 작성 해 보았습니다. * 제일 하단부에는 전체 코드 첨부 하였습니다. * 문제는 2가지 입니다. 1. 단일 경로에 CORS 활성화를 구현하고 싶었으며 corsOptions 에 methods 를 'POST, OPTIONS'만 추가하였음에도 get은 호출시 허용이 되었습니다. app.get('/users/', cors(corsOptions), function (req, res) { 제가 구현하고 싶었던 코드의 의도는 특정 IP만 사용 허용 이기 때문에 위와 같이 구현하고 싶었습니다. 하지만 아래와 같이 호출하여도 허용이 되었습니다. app.get('/users/', (req, res) => { 나머지 문제는 위와 반대로 POST의 경우에는 app.post('/token/phone', cors(corsOptions), (req, res) => { 위처럼 작성 옵션도 적용되었음에도 불구하고 CORS 가 계속 발생합니다. 아래는 작성한 node 코드입니다. import express from 'express' import { createTokenOfPhone } from '../../../section01/01-03-token-api-facade/index.js' import { swaggerUi, specs } from "./swagger/swagger.config.js"; import cors from 'cors' const app = express() app.use(express.json()) // Swagger API app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(specs, { explorer: true })); // 허용할 IP WhiteList const whitelist = [ 'http://127.0.0.1:5500' ]; const corsOptions = { origin: (origin, callback) => { if (whitelist.indexOf(origin) !== -1 || !origin) { // !origin은 로컬 요청을 허용 callback(null, true); } else { callback(new Error('Not allowed by CORS')); } }, origin: whitelist, methods: 'POST, OPTIONS', }; //CORS 설정 // app.use(cors()) // app.use(cors(corsOptions)) // 특정 IP 허용 app.get('/users/', cors(corsOptions), function (req, res) { // app.get('/users/', (req, res) => { res.json({msg: 'getdms 왜 됨?'}) }) // OPTIONS 요청에 대한 응답 처리 app.options('/users/', cors(corsOptions), (req, res) => { res.setHeader('Access-Control-Allow-Origin', req.headers.origin || '*'); res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS'); res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization'); res.setHeader('Access-Control-Allow-Credentials', 'true'); res.sendStatus(204); // No Content }); // app.post('/token/phone', (req, res) => { app.post('/token/phone', cors(corsOptions), (req, res) => { const {phoneNo} = req.body; console.log(`phoneNo ${phoneNo}`) const requestToken = createTokenOfPhone(phoneNo); const resultData = { data: requestToken }; res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization'); res.send(resultData); }); app.listen(3000); // 포트번호 아래는 get , options, post 를 호출하는데 사용한 코드입니다. 주석 되어있는 get 호출시에는 호출안되게 옵션 설정해도 호출되고 주석 안한 post 호출시에는 정상 호출되어야 할 것 같은데 안됩니다.... <script> let resultToken = ''; const certification = () => { let myPhoneNo = document.getElementById("phoneNo").value; // let api = axios.options("http://localhost:3000/users"); // let api = axios.get("http://localhost:3000/users"); let api = axios.post("http://localhost:3000/token/phone", {phoneNo: myPhoneNo}); }; </script> <body> <div>휴대폰번호: <input type="text" id="phoneNo"> <button onclick="certification()">인증하기</button> <br/> <div>인증상태</div> <button>회원가입하기</button> </div> </body>
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다! [질문 전 답변] 1. 강의에서 다룬 내용과 관련된 질문인가요? [예 | 아니요] 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요] 3. 질문 잘하기 법을 읽어보셨나요? [예 | 아니요] ( https://www.inflearn.com/blogs/1719 ) 4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 5. vagrant up 에서 발생하는 문제는 주로 호스트 시스템(Windows, MacOS)과 연관된 다양한 조건에 의해 발생합니다. 따라서 이를 모두 제가 파악할 수 없어서 해결이 어렵습니다. vagrant up 으로 진행이 어렵다면 제공해 드리는 가상 머신(VM) 이미지를 import해서 진행하시기 바랍니다. ( https://www.inflearn.com/questions/992407/comment/281901 ) [질문 하기] The box failed to unpackage properly. Please verify that the box file you're trying to add is not corrupted and that enough disk space is available and then try again. The output from attempting to unpackage (if any): bsdtar.EXE: Error opening archive: Unrecognized archive format 현재 용량 600기가 이상 남아있는 상태인데..해당 오류가 발생합니다..ㅠ
EC2에서 ECR이미지를 pull하여 실행중에 exec /usr/java/openjdk-17/bin/java: exec format error 해당 오류가 계속발생합니다. dockerimage가 ec2의 arm64와 달라서 그렇다는 글도 있어 docker buildx build --platform linux/arm64 -t kube-ecr . 해당 명령어로 build하여 ECR에 push도 해보고 했지만 여전히 같은 오류가 발생합니다. 어떻게 해결해야할까요??
로컬에서는 springboot서버가 잘 작동되고 github actions에서도 빌드가 잘 되는 것을 확인하였습니다. 근데 ec2 서버에만 올라가면 데이터소스 관련 문제가 발생하고 java -jar 명령어에 데이터관련 인자를 넣어서 실행시키면 그때는 디비관련 오류는 없어지고 다른 문제가 있어서 jar파일을 열어서 안에 파일들을 확인해볼려고 명령어를 작성해보았는데 아무 반응이 없어서 jar파일에 문제가 생겨서 실행이 안되는건지가 궁금합니다!!
안녕하세요 강의 재밌게 듣고 있습니다. 멀티 스테이지 빌드 강의 부분 7분42초 경에 대해 궁금한 점이 있습니다. 멀티 스테이지 빌드는 빌드 스테이지 따로, 빌드한 아티팩트 실행 스테이지 따로 이렇게 진행되는 것으로 알고 있는데요 여기서 첫 번째 스테이지에서 FROM maven AS build 이렇게 주고 --from 으로 가져올 때 빌드 컨텍스트에서 가져오지 않고 스테이지에서 가져온다고 하였는데 여기서 스테이지가 이해가 가지 않는데 첫 번째 빌드 스테이지가 실행되고 난 뒤 해당 이미지 디렉토리에서 파일을 가져온다는 뜻인가요.?
안녕하세요. apt-get update에서 에러가 발생해 위의 정보를 참고하여 7번까지 수행한 후 9번을 수행하는 데 /proc/sys/net/bridge/bridge-nf-call-iptables does not exist 에러가 발생하였습니다. 어떻게 해결해야 할 문제인지 궁금합니다.
강사님 안녕하세요:) 강의 잘 듣고 있으며 docker에 대해 쉽고 친절하게 알려주셔서 감사합니다. 질문을 한개 드립니다. '[실습] AWS ECR 사용해보기' 강의를 들으면서 aws ecr get-login-password로 시작하는 명령어를 사용해 로그인을 시도했습니다. 그런데 아래와 같은 에러가 표출되었습니다. Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'> BrokenPipeError: [Errno 32] Broken pipe [1] 69874 exit 120 aws ecr get-login-password --region ap-northeast-2 | 69875 killed docker login --username AWS --password-stdin 이것은 어떻게 해결할 수 있을까요~?
안녕하세요! 어제 질문남겼던 학생입니다! ec2에 mysql을 설치후 다음과 같이 연결을 하였습니다. 이후로 log파일을 열어보았는데 이와 같은 에러가 발생해서 검색을 해보니 initialization 관련 설정 오류라 해서 아래와 같이 추가해줬는데 이후로 github actions secret도 바꾸고 ec2로 jar 파일이 올바르게 간것도 확인됬는데 계속 같은 문제가 발생하네요ㅜㅠ 이유가 뭔지 궁금합니다!!
안녕하세요. 컨테이너 가상화에서 OS 관련하여 질문이 있습니다. 아래 설명에서 궁금한점이 있습니다. """ 하이퍼바이저 가상화는 게스트OS와 호스트OS가 따로 존재합니다. 컨테이너 가상화는 리눅스 커널 기술을 활용해서 프로세스 간 격리를 합니다. 컨테이너 가상화에서 컨테이너는 호스트OS를 사용합니다. 이미지 개발자는 소프트웨어, 의존성 파일, OS를 준비해 이미지로 만듭니다. """ 이미지에 OS가 있다면 호스트OS와 게스트OS 개념이 들어가는거 아닌가 싶어서요 그러면 하이퍼바이저 가상화가 아닌가 싶어서요... 사용자 환경이 windows or ubuntu고 이미지에 사용하고 있는 os는 linux or centos라고 가정할때 해당 이미지를 실행하면 다른 os를 가지는거 아닌가 싶습니다. 추가로 "이미지의 이름을 동료나 친구에게 전달해 주시면 어떤 환경에서든 도커만 설치되어 있으면 완벽하게 일치하는 서버를 구성할 수 있습니다." 해당 작동이 어떻게 될 수 있는지도 궁금합니다. 제 windows 환경에서 도커이미지를 만들어 배포를 합니다. linux를 사용하고 있는 동료가 해당 이미지를 사용하게 되었을때 어떻게 완벽하게 일치하는 서버를 구성할 수 있는지도 궁금하고요.
보안적으로 민감한 변수를 저장하기 위해 활용한다고 배웠습니다. 그러나 Secret의 작성 방법이 별다른 암복호화 로직없이 configMap과 99% 동일한 것 같아서요. 같은 repository에서 Secret과 ConfigMap가 함께 위치하는 경우 ConfigMap에 접근할 수 있는 사용자는 Secret에도 손쉽게 접근할 수 있을것 같다는 생각이 듭니다. Secret이 ConfigMap보다 어떠한 측면에서 보안상의 이점이 있는지 궁금합니다.
안녕하세요~! 다름이 아니라 강사님 처럼 yml 자동완성 ? 하고 기능 사용하고 싶은데, 어떻게 설정하면 되지 알 수 있을까요? 플로그인 Spring Ass ... 찾아봤는데 없더라고요. 그래서 어떻게 하면 되지 여쭤봅니다. 학생계정이라 유료버전 사용 중 입니다. 항상 좋은 강의 감사합니다. 좋은 하루되세요 ~ 감사합니다