묻고 답해요
139만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2
kube-system 에 속하는 비정상 pod 들에 대해 질문이 있습니다.
안녕하세요. pod 몇 개가 정상 실행이 되지 않는 문제가 있어서 로그를 확인했더니 아래와 같은 메세지들이 있었습니다. 혹시 해당 문제에 대해서 짚이는 부분이 있으실까요 ? *v1.ConfigMap을 볼 수 없다는 에러의 이유가 뭘까요? 감사합니다. W1125 00:20:42.253966 1 reflector.go:533] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:231: failed to list *v1.ReplicationController: Get "https://192.168.50.201:6443/api/v1/replicationcontrollers?limit=500&resourceVersion=0": dial tcp 192.168.50.201:6443: connect: connection refused E1125 00:20:42.254002 1 reflector.go:148] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:231: Failed to watch *v1.ReplicationController: failed to list *v1.ReplicationController: Get "https://192 .168.50.201:6443/api/v1/replicationcontrollers?limit=500&resourceVersion=0": dial tcp 192.168.50.201:6443: connect: connection refused W1125 00:20:44.225263 1 reflector.go:533] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:231: failed to list *v1.ConfigMap: Get "https://192.168.50.201:6443/api/v1/namespaces/kube-system/configma ps?fieldSelector=metadata.name%3Dextension-apiserver-authentication&limit=500&resourceVersion=0": dial tcp 192.168.50.201:6443: connect: connection refused E1125 00:20:44.225301 1 reflector.go:148] k8s.io/client-go@v0.0.0/tools/cache/reflector.go:231: Failed to watch *v1.ConfigMap: failed to list *v1.ConfigMap: Get "https://192.168.50.201:6443/api/v1/ namespaces/kube-system/configmaps?fieldSelector=metadata.name%3Dextension-apiserver-authentication&limit=500&resourceVersion=0": dial tcp 192.168.50.201:6443: connect: connection refused
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
Github Actions로 ECR 에 이미지 push 후, EC2 에 ssh 로 접속해 pull 받을 때 발생하는 문제
======CMD====== sudo docker stop github-action-prod || true sudo docker rm github-action-prod || true sudo docker pull [ECR URL]/github-action-prod:latest sudo docker run -d --name github-action-prod -p 8080:8080 [ECR URL]/github-action-prod:latest ======END====== err: Error response from daemon: No such container: github-action-prod err: Error response from daemon: No such container: github-action-prod err: Error response from daemon: Head "https://[ECR URL]/v2/github-action-prod/manifests/latest": no basic auth credentials 2024/10/03 02:07:08 Process exited with status 1위와 같이 컨테이너를 찾을 수 없다 그러고 'no basic auth credentials' 이런 문구가 출력됩니다로그인도 잘됐고, ECR에 push도 잘 됐는데 왜 이런 문제가 발생하는 걸까요ㅜㅜ실행한 스크립트는 아래와 같습니다 steps: - name: Github Repository 파일 불러오기 # uses 키워드로 Github Actions의 라이브러리를 사용할 수 있다 uses: actions/checkout@v4 - name: JDK 17 설치 uses: actions/setup-java@v4 with: distribution: corretto java-version: 17 - name: application.yml 파일 만들기 run: echo "${{ secrets.APPLICATION_PROPERTIES }}" > ./src/main/resources/application.yml - name: 테스트 & 빌드 run: ./gradlew clean build - name: AWS Resource에 접근할 수 있게 AWS credentials 설정 uses: aws-actions/configure-aws-credentials@v4 with: aws-region: ap-northeast-2 aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} # ECR 에 업로드 하기 위한 과정 - name: ECR에 로그인하기 id: login-ecr uses: aws-actions/amazon-ecr-login@v2 - name: Docker 이미지 생성 run: docker build -t github-action-prod . - name: Docker 이미지에 Tag 붙이기 run: docker tag github-action-prod ${{ steps.login-ecr.outputs.registry }}/github-action-prod:latest - name: ECR에 Docker 이미지 Push하기 run: docker push ${{ steps.login-ecr.outputs.registry }}/github-action-prod:latest # ECR 에 업로드한 Docker Image 를 EC2 로 가져와 실행시키기 - name: SSH로 EC2에 접속하기 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: | sudo docker stop github-action-prod || true sudo docker rm github-action-prod || true sudo docker pull ${{ steps.login-ecr.outputs.registry }}/github-action-prod:latest sudo docker run -d --name github-action-prod -p 8080:8080 ${{ steps.login-ecr.outputs.registry }}/github-action-prod:latest
-
미해결쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2
모니터링 설치 강의 따라하는 중에 이상한 현상이 있습니다 .
안녕하세요. 모니터링 설치 Loki-Stack 강의 실습을 하는 와중에 2번 확인하기를 해보니 캡쳐와 같이 pod가 엄청 많이 떠있는 걸 확인했습니다. 그래서 그런지 대시보스 화면에서는 여러가지 에러 상태가 나타납니다. 거의 메모리가 부족하다고 하는 데 현재 해당 vm 에는 메모리를 8gb 주고 free 로 확인해보면 여유가 2gb 이상 남아있는 걸로 확인이 되고요. 이유를 아실까요 ? 그리고 어떻게 해결할 수 있을까요 ? 감사합니다. cafe: https://cafe.naver.com/kubeops
-
미해결쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2
Dashboard-Metrics Pending 상태 지속
안녕하세요.설치 과정에서 문제가 해결이 안되서 질문 올립니다.kubectl get pod -A kubectl describe nodes metrics-server 와 dashboard 의 상태가 Pending에서 계속 멈춰 있는 데 이유를 혹시 아실까요 ?환경은 맥 m3 max고 설치는 아이피만 자동 생성되는 걸로 맞췄고 나머지는 다 동일하게 진행했습니다. Warning InvalidDiskCapacity 24m kubelet invalid capacity 0 on image filesystem 이 부분이 걸리긴 하는 데.. 디스크 용량은 64gb로 충분히 설정을 해논 상태고요. 감사합니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
Github Actions
안녕하세요 . ㅎㅎ 강의 잘 보고있습니다.Jenkins 와 Github Action 비교를 해주셨는데요.Github Actions 도 많이 사용하지만 Jenkins 도 많이 사용하더라고요 gpt 로 검색을 해보니까 Plugin 이 Jenkins 가 더 좋다고 하는데 강사님은 어떻게 생각하시나요 ?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
탄력적 IP
말씀하신것처럼 만약에 Frontend 를 Ec2 에 배포했을때 탄력적 IP 가 없다면 불편할것 같습니다. 하지만 강의 초반에 말씀하셨던것처럼 Frontend 배포할때 S3 로 배포할수있을것 같습니다. 이럴경우에 Backend 입장에서 S3 로 배포된 Frontend 만 인바운드 규칙으로 열어주려면 어떻게 해야할까요 ?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
tobe 디렉토리를 사용하는이유
안녕하세요 강사님!강의 너무 잘듣고 있습니다.강의를 보다가 궁금한 점이 생겨서 질문드립니다. - name: SCP로 EC2에 빌드된 파일 전송하기 uses: appleboy/scp-action@v0.1.7 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} source: project.jar target: /home/ubuntu/instagram-server/tobe - name: SSH로 EC2에 접속하기 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: | rm -rf /home/ubuntu/instagram-server/current mkdir /home/ubuntu/instagram-server/current mv /home/ubuntu/instagram-server/tobe/project.jar /home/ubuntu/instagram-server/current/project.jar cd /home/ubuntu/instagram-server/current sudo fuser -k -n tcp 8080 || true nohup java -jar project.jar > ./output.log 2>&1 & rm -rf /home/ubuntu/instagram-server/tobe해당 부분을 보면 tobe폴더로 빌드파일을 전송하고 current라는 별도의 디렉토리를 두어서 그 디렉토리로 빌드파일을 옮겨서 실행하고 있는데 혹시 이렇게 하는 이유가 있을까요?? 바로 current로 전송하지 않고 굳이 임시 디렉토리를 두는 이유가 궁금합니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
region
만약에 사용자가 한국에도 있고 다른나라 미국 프랑스 에도 있다고 한다면어떻게 해야할까요 ?
-
미해결쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2
프로메테우스 로그에 no data
실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다)영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다)긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!cafe: https://cafe.naver.com/kubeops설정다잘되었는데 이상하게 cpu쪽에서 데이터를 불러오지 못해서 까페에서 이벨님의 글을 보고 Prometheus와 Loki-stack 설치 후 grafana에서 loki-stack datasource 연결은 정상적으로 완료했는데,대시보드를 확인할 때 모든 대시보드에서 no data가 뜹니다.kubectl get pod -A로 확인했을 때 모든 파드가 Running 되고 있고 Restart도 모두 0입니다.한가지 의심되는 점은 쿠버네티스 대시보드에서 클러스터 이벤트 로그를 보니까loki-stack이랑 prometheus에서 사진과 같이 unhealthy가 무진장 뜹니다...해당 문제는 어떻게 해결할 수 있을까요?systemctl restart chronyd.service해봤지만 제경우에는 안되더라구요 그래서 저도 프로메테우스 대시보드 들어가볼려고 clusterip를 변경해서 접근해볼려고했지만 잘안되네요 ㅜ 혹시 어떤점이 문제일까요? 일단저같은경우는 가상머신으로 하지않고 rocky linux 홈서버에서 작업하고있습니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
docker stop instagram-server || true 명령어 질문
혹시 뒤에 || true라고 하였는데 이 문장의 의미는 어떤 것일까요??
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
Amazon CloudFront 오리진 액세스 제어(OAC)로 S3 오리진 보호하기
S3에 대한 접근차단(보안성 향상)과 CloudFront에 S3 연결 방법에 대해 공유 드립니다. (OAC 방식) 과거에 CloudFront를 S3와 연결함을 위해 ①S3와 직접 연결하거나 ②OAI라는 방식으로 연결했던 것으로 보여집니다.하지만 최근(2022년말)에는 AWS의 정책이 변경되고 점차 OAC 방식이 권장 및 확대되는 것 같습니다.OAC를 사용하면 간편하게 S3의(1)"정적 웹 사이트 호스팅-비활성" ,(2)"모든 퍼블릭 액세스 차단-활성화" ,(3)"버킷 정책-모든 사용자(*) Allow 방지"가가능합니다. (물론 (1)~(3)은 수동으로 바꾸셔야 합니다. 강사님 영상을 보시면 충분히 하실 수 있습니다 🙂) OAC 방식에 대한 링크를 아래와 같이 공유드립니다! 선생님 영상을 먼저 보고 이후에 OAC방식과 (1),(2),(3)에 대한 보안성 여부를 확인하시면, S3의 보안성이 향상된 것을 경험하실 수 있습니다. Amazon CloudFront 오리진 액세스 제어(OAC)로 S3 오리진 보호하기 에 대한 링크: https://aws.amazon.com/ko/blogs/korea/amazon-cloudfront-introduces-origin-access-control-oac/
-
미해결쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2
service 생성 과정에서 설명한 내용에 대해서 질문드립니다.
안녕하세요!먼저 좋은 강의 만들어주신 것에 감사드립니다. 궁금한 게 51강 각 리소스별 동작 에서 서비스 생성 원리에 관한 부분인데요, 제가 이해한 바로는 서비스는 노드에 종속되지 않고 자신에게 연결된 파드에 트래픽을 분산해주는 객체라고 이해했습니다.또한 kubelet은 자신의 노드에 떠 있는 컨테이너를 관리하고 모니터링 하는게 주요 역할인 것으로 생각했습니다.강의에서는 kubelet이 kube proxy에 네트워크 생성을 요청한다고 설명해주셨는데, 서비스는 노드에 종속되는 개념은 아닌 것으로 이해했어서, 의아해서 질문 드립니다.혹시 강의 예시에서는 서비스 타입이 NodePort라서 위와 같이 동작하는 것일까요?ClusterIP 타입인 경우에는 다른 절차를 거쳐서 iptables가 설정되는 걸까요?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
C# ASP.NET 백엔드 서버를 리눅스로 배포하려고 합니다 :)
박재성 선생님 안녕하세요!C# ASP.NET 백엔드 서버를 리눅스로 배포하려고 하는데요.이에 대하여 접근 방식(힌트)을 여쭤볼 수 있을까요~?Spring Boot와 Nest.js를 너무나 잘 설명해주셔서혹시 선생님께는 처음 접하는 프레임워크(C# ASP.NET)에 대하여어떻게 접근하실지 궁금하여 질문을 남겼습니다!좋은 강의에 다시 한번 감사드립니다!!
-
미해결쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2
ArgoCD와 docker hub 연동에 관해서 질문 있습니다.
실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다)영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다)긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!cafe: https://cafe.naver.com/kubeops ((해결했습니다)) 안녕하세요. 강의 열심히 듣고 있습니다. ArgoCD와 docker hub를 연동하는 부분이 잘 진행되지않아 질문드립니다. 현재 2232 실습을 따라하고 있는데요 argo cd와 docker hub 연동하는 부분이 잘 진행되지않는데 원인을 정확히 모르겠어서 질문드립니다. 우선 git repository를 api-tester 소스 부분을 제외하고 모두 제 git으로 fork해서 진행하였습니다. 현재 docker image가 push되는 것 까지는 확인했는데요, argoCD가 변경을 감지하고 받아오는 부분이 안되는 것 같습니다.제가 이해한바로는 argocd와 docker hub가 연동될 때 필요한 인증 정보는 아래 설정에서 주입되는 것으로 알고 있습니다.해당 부분은 아래 설정으로 인해 jenkins credential에서 주입받는 것으로 이해하였구요.. jenkins에서 파이프라인을 돌렸을 때, 이미지 push가 정상적으로 진행됐다는 의미니깐 jenkins의 credential에는 문제가 없다고 판단됩니다. 결론적으로 argocd가 감지를 못하는 것 같다는 생각이 듭니다. argocd와 dockerhub 연동 관련해서 제가 직접 설정한 부분은 annotation을 제 docker hub 이름으로 바꾼 것 밖에 없는데요.. 혹시 제가 놓친 것이 있을까요?
-
미해결쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2
안녕하세요 혹시 해당 에러에 대해 아시는 것 있을까요?
실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다)영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다)긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!cafe: https://cafe.naver.com/kubeops 안녕하세요. 강의 잘 듣고 있습니다. 제가 다음 프로젝트에서 쿠버네티스를 도입하려고 강의에서 알려준거랑 환경을 다르게 구성해서 연습중입니다.현재 맥북 + 페러럴즈 + 우분투 ARM 사용해서 환경을 구성했는데요.. 가상 머신을 껐다키면 쿠버네티스가 동작을 안하네요. 환경이 달라서 원인을 파악하기 힘드시겠지만.. 혹시 관련 로그에 대해 아시는 것 있을까 싶어 여쭤봅니다.컴퓨터를 껐다 켰을 때, 대쉬보드에 들어가면 기존에 쿠버네티스에서 동작중인 모든 오브젝트들은 살아있습니다. 다만 kubectl을 실행하면 아래와 같은 오류가 뜹니다.E0905 20:15:10.171672 276979 memcache.go:265] couldn't get current server API group list: Get "https://10.211.55.15:6443/api?timeout=32s": tls: failed to verify certificate: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes") 또 pod를 죽였다 살릴 때도 아래와 같은 오류가 뜨는데요..Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "dc4cf5655bccd6b273ffc61819e4bbded2684d83fd06b4868e0f9de836d7d9c0": plugin type="calico" failed (add): error getting ClusterInformation: connection is unauthorized: Unauthorized 둘 다 권한에 의해 생기는 문제인 것 같은데 혹시 짐작가시는 것 있을까요? 다시 설치하면 정상적으로 동작하긴 하는데.. 원인을 정확히 모르겠어서 질문드립니다. 감사합니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
CI/CD 구현시, 여러 개의 인스턴스는 어떻게 적용할 수 있을까요?
안녕하세요~!비전공자도 이해할 수 있는 CI/CD 입문·실전수업 너무 잘 보고 있습니다~!CodeDeploy까지 친절한 수업 잘 봤습니다. 감사합니다!혹시, 복수개의 인스턴스(EC2)를 배포하고 관리하는 방법도 알 수 있을까요~?생각 보다 운용중 AWS EC2에 장애가 발생할 수 있어 복수의 EC2를 준비해야 한다는 주변의 이야기를 들었습니다 ㅠㅠ감사합니다!
-
미해결쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2
Unable to locate package kubelet, kubeadm, kubectl
실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다)영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다)긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!cafe: https://cafe.naver.com/kubeops 사내에서 진행하고 있어 그냥 Azure VM을 만들어서 실습을 따라하고 있었습니다. 환경은 Ubuntu 24.04 버전 기존 22 버전을 사용하다 이 버전에 gpg key issue가 있다고 하여 24로 올렸습니다. 하지만 에러가 발생하여 문의 올립니다.https://kubernetes.io/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#kubeadm-kubelet-%EB%B0%8F-kubectl-%EC%84%A4%EC%B9%98기준으로 설치 진행중입니다.sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl마지막으로 진행하는 이 CLI에 대해서 진행하던 중이러한 문제가 발생했습니다. 어떻게 진행하면 될까요?
-
미해결쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2
Jenkins 서버에 Kubectl 설치 해야하나요?
실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다)영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다)긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!cafe: https://cafe.naver.com/kubeops 현재 구성하려고 하는 건, 서버 1에 Jenkins를 window운영체제로 실행해놓고, 나머지 서버 2에는 Kubernetes를 활용해서 구성하려고 합니다.1. 서버 1에도 Kubernetes 관련 파일들을 설치해야할까요?사용하려는 형상저장소를 Github가 아닌 bitbucket을 쓰려고 합니다. 사용하는데 문제는 없나요? 현재 소스코드가 jre1.8로 돌아가는데, jenkins에는 jdk 17 버전을 사용하고 추가로 jdk 8버전을 다운해서 사용하면 될까요?
-
미해결쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2
Vagrant SSL 인증 오류
실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다)영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다)긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!cafe: https://cafe.naver.com/kubeops 이렇게 발생하면서 Root certificate 오류가 발생하는데 이러한 오류는 어떻게 처리하면 될까요?
-
미해결쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2
서비스 (NodePort) 질문 드려요.
안녕하세요. 강의 잘 듣고 있습니다.다름이 아니라 쿠버네티스관련 책을 보니깐 NodePort에서 targetPort 와 nodePort 이외에 그냥 port도 있길래요.. 여기저기 찾아봐도 이해가 잘 안되어서요.. 혹시 그냥 port는 어떤 용도인지 질문 드려도 될까요? apiVersion: v1kind: Servicemetadata: name: nginx-svc labels: app: nginxspec: type: NodePort ports: - port: 8080 nodePort: 31472 targetPort: 80 selector: app: nginx 실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다)영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다)긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!cafe: https://cafe.naver.com/kubeops