묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}
k get ipaddresspools.metallb.io -A No resources found
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의에서 다룬 내용과 관련된 질문인가요? [예 | 아니요]2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요]3. 질문 잘하기 법을 읽어보셨나요? [예 | 아니요](https://inf.run/DvsRD)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.[질문 하기안녕하세요. k get ipaddresspools.metallb.io -A 입력 시No resources found 가 뜹니다.Metallb CRD는 정상 설치된 듯 한데 따로 파일 생성이 안 된 듯 합니다. ipaddresspool.yaml , l2advertisement.yaml 을 따로 생성해야 하는 건가요? 생성한다면 생성 경로 안내도 부탁드립니다.도움 부탁드립니다.아래는 메탈LB 컨트롤러 로그 요약한 것 입니다.vagrant@cp-k8s:~$ kubectl logs -n metallb-system deploy/controller --tail=200{"branch":"dev","caller":"main.go:167","commit":"dev","goversion":"gc / go1.21.8 / amd64","level":"info","msg":"MetalLB controller starting version 0.14.4 (commit dev, branch dev)","ts":"2025-08-14T01:29:47Z"}{"action":"setting up cert rotation","caller":"webhook.go:31","level":"info","op":"startup","ts":"2025-08-14T01:29:47Z"}{"caller":"k8s.go:394","level":"info","msg":"secret successfully created","op":"CreateMlSecret","ts":"2025-08-14T01:29:47Z"}{"caller":"k8s.go:417","level":"info","msg":"Starting Manager","op":"Run","ts":"2025-08-14T01:29:47Z"}{"level":"info","ts":"2025-08-14T01:29:47Z","msg":"Starting Controller","controller":"cert-rotator"}{"level":"info","ts":"2025-08-14T01:29:47Z","logger":"cert-rotation","msg":"starting cert rotator controller"}{"level":"info","ts":"2025-08-14T01:29:47Z","msg":"Starting Controller","controller":"ipaddresspool","controllerGroup":"metallb.io"}{"level":"info","ts":"2025-08-14T01:29:47Z","msg":"Starting Controller","controller":"service"}{"level":"info","ts":"2025-08-14T01:29:47Z","logger":"cert-rotation","msg":"refreshing CA and server certs"}{"level":"info","ts":"2025-08-14T01:29:47Z","msg":"Starting workers","controller":"service","worker count":1}{"level":"info","ts":"2025-08-14T01:29:47Z","msg":"Starting workers","controller":"cert-rotator","worker count":1}{"level":"info","ts":"2025-08-14T01:29:47Z","msg":"Starting workers","controller":"ipaddresspool","controllerGroup":"metallb.io","controllerKind":"IPAddressPool","worker count":1}{"caller":"pool_controller.go:48","controller":"PoolReconciler","level":"info","start reconcile":"/kube-public"}{"caller":"pool_controller.go:99","controller":"PoolReconciler","event":"force service reload","level":"info"}{"caller":"service_controller_reload.go:108","controller":"ServiceReconciler - reprocessAll","event":"failed to handle service, no retry","level":"error","name":"ingress-nginx/ingress-nginx-controller"}{"level":"error","ts":"2025-08-14T01:29:48Z","logger":"cert-rotation","msg":"could not refresh CA and server certs","error":"Operation cannot be fulfilled on secrets \"metallb-webhook-cert\""}{"level":"error","ts":"2025-08-14T01:29:48Z","logger":"cert-rotation","msg":"secret is not well-formed, cannot update webhook configurations","error":"Cert secret is not well-formed, missing ca.crt"}{"level":"info","ts":"2025-08-14T01:29:49Z","logger":"cert-rotation","msg":"certs are ready in /tmp/k8s-webhook-server/serving-certs"}{"level":"info","ts":"2025-08-14T01:29:49Z","logger":"cert-rotation","msg":"CA certs are injected to webhooks"}{"action":"webhooks enabled","caller":"webhook.go:53","level":"info","op":"startup"}{"level":"info","ts":"2025-08-14T01:29:49Z","logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/validate-metallb-io-v1beta1-ipaddresspool"}{"level":"info","ts":"2025-08-14T01:29:49Z","logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/validate-metallb-io-v1beta2-bgppeer"}{"level":"info","ts":"2025-08-14T01:29:49Z","logger":"controller-runtime.webhook","msg":"Registering webhook","path":"/validate-metallb-io-v1beta1-bgpadvertisement"}{"level":"info","ts":"2025-08-14T01:29:49Z","logger":"controller-runtime.webhook","msg":"Starting webhook server"}{"level":"info","ts":"2025-08-14T01:29:49Z","logger":"controller-runtime.certwatcher","msg":"Updated current TLS certificate"}{"level":"info","ts":"2025-08-14T01:29:49Z","logger":"controller-runtime.certwatcher","msg":"Starting certificate watcher"}{"level":"info","ts":"2025-08-14T01:29:49Z","logger":"controller-runtime.webhook","msg":"Serving webhook server","port":9443}
-
미해결실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}
설치 과정 문의
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의에서 다룬 내용과 관련된 질문인가요? [예 | 아니요]2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요]3. 질문 잘하기 법을 읽어보셨나요? [예 | 아니요](https://inf.run/DvsRD)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.[질문 하기] 안녕하세요 설치 과정 문의드립니다.기존에 윈도우 컴퓨터에서 버츄얼박스로 쿠버네티스를 설치하여 마스터노드1개 워커노드3대로 다른 작업을 하고 있는 상태입니다. Cilium 설치가 되어있는 환경입니다.강사님이 올려주신 코드를 깃클론한 후에 어느 시점부터 진행하면 되는지 헷갈려서 문의드립니다. 파워셸에서 다른 과정은 생략하고 vagrant up만 진행했는데 vm은 뜨지만 kubectl이 먹지 않습니다ㅠkubeam 설치도 했는데 안 되네요. 도움 부탁드립니다~
-
미해결스프링 부트 - 핵심 원리와 활용
내장톰캣2 서블릿 톰켓 실행이 안됩니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.섹션 4 내장톰켓2 -서블릿 강의를 진행중인데요 강사님하고 똑같이 진행하는데 run이 실행되지 않습니다gpt에 물어봐도 내장 톰캣을 실행할 때, 웹 애플리케이션 리소스 경로(webapps 디렉토리)를 찾지 못해서 발생한 에러하는데 해결이안되는데 어떻게 하나요?이건 내장 톰캣을 실행할 때, 웹 애플리케이션 리소스 경로(webapps 디렉토리)를 찾지 못해서 발생한 에러예요.정확히 말하면 다음과 같은 톰캣 리소스 설정 오류입니다.❗ 요약해서 말하면톰캣이 시작되긴 했지만, 웹 애플리케이션 루트를 지정한 경로가 실제로 없어서 톰캣 내부에서 시작 실패 → 전체 애플리케이션 실패가 된 상황입니다.🔍 대표 에러 메시지Caused by: java.lang.IllegalArgumentException: The main resource set specified [C:\Users\c91sy\IdeaProjects\boot-source-20230228\start\embed\tomcat.8080\webapps\] is not a directory or war file, or is not readable 톰캣이 저 경로(webapps)를 "웹 루트"로 사용하려 했는데:디렉토리가 없거나,접근 권한이 없거나,읽을 수 없는 파일이거나 해서톰캣의 StandardRoot 객체 생성이 실패한 겁니다.🛠 이 에러 이름을 붙이자면:✅"Tomcat 리소스 경로 오류 (Missing or invalid docBase for embedded Tomcat)"또는✅"내장 톰캣 구동 실패 - 웹 리소스 경로 없음 오류"✅ 해결 방법 (정리)경로 확인 및 생성다음 경로 확인:C:\Users\c91sy\IdeaProjects\boot-source-20230228\start\embed\tomcat.8080\webapps 이 경로가 존재하지 않으면 만들어줘야 함.mkdir C:\Users\c91sy\IdeaProjects\boot-source-20230228\start\embed\tomcat.8080\webapps 또는 코드 수정EmbedTomcatServletMain.java 내에 톰캣에 docBase를 지정하는 부분이 있다면, 그 경로를:String webAppPath = "src/main/webapp"; context.setDocBase(new File(webAppPath).getAbsolutePath()); 처럼 실제 존재하는 디렉토리로 바꾸는 것도 방법입니다.✨ 참고로이건 빌드 에러나 문법 오류가 아니라, 실행 시 발생한 런타임 에러입니다.따라서 코드 컴파일은 잘 됐지만, 톰캣 구동 중 내부 리소스 설정 오류로 인해 실패한 것이죠.강사님 코드랑 달리 경로를 추가하라는것 같은데 ,,,에러 메시지는 너무 길어서 천자가 넘어서 어떻게 해야할지 모르겠습니다 ....
-
해결됨스프링 부트 - 핵심 원리와 활용
최대 Tomcat 스레드 수를 확인하는 지표
[질문 내용]여기에 질문 내용을 남겨주세요."최대 Tomcat 스레드 수를 확인하는 지표는 Spring Boot 3.x부터는 웹 서버의 종류(Tomcat, Jetty 등)에 상관없이 동일한 이름으로 모니터링할 수 있도록 메트릭 이름이 표준화되었습니다." 라고 하는데 맞나요?아무리 검색 후 설정을 바꿔봐도 prometheus 지표에 tomcat thread 관련 지표가 보이지 않습니다.
-
해결됨스프링 부트 - 핵심 원리와 활용
mac m2에서 startup.sh 실행후 아무 반응이 없습니다.
해당 명령어를 입력하면 그이후엔 어떠한 로그도 나타나지 않고 있습니다.구글링해도 저와같은 사례가 없는데, 도대체 왜이러는걸까요?권한 지정함자바 버전 변경하면서 테스트 해봄로그 파일에 어떠한 로그도 남지않음startup.sh이후에 아무 반응이 없음
-
미해결스프링 부트 - 핵심 원리와 활용
내장 톰캣 실행 오류 관련 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]오후 12:21:38: Executing ':hello.embed.EmbedTomcatServletMain.main()'…> Task :compileJava UP-TO-DATE> Task :processResources NO-SOURCE> Task :classes UP-TO-DATE> Task :hello.embed.EmbedTomcatServletMain.main()EmbedTomcatServletMain.main7월 13, 2025 12:21:39 오후 org.apache.coyote.AbstractProtocol initINFO: Initializing ProtocolHandler ["http-nio-8080"]7월 13, 2025 12:21:39 오후 org.apache.catalina.core.StandardService startInternalINFO: Starting service [Tomcat]7월 13, 2025 12:21:39 오후 org.apache.catalina.core.StandardEngine startInternalINFO: Starting Servlet engine: [Apache Tomcat/10.1.5]7월 13, 2025 12:21:39 오후 org.apache.coyote.AbstractProtocol startINFO: Starting ProtocolHandler ["http-nio-8080"]여기서 시간만 무제한으로 잡아먹고 더 진행이 안되는데 어떻게 해야할까요.. 내장 톰캣2-서블릿 강의를 보고 하는 중입니다. 8080 포트는 톰캣 외에 사용하는 것이 없고, 톰캣 폴더에 webapps도 만들어 두었고,혹시 몰라 java 17도 다시 깔고 환경변수 설정도 다 했는데, 다른 컴퓨터에서도 같은 문제가 발생합니다. 검색해서 java.security의 securerandom.source=file:/dev/randomtosecurerandom.source=file:/dev/./urandom바꿔봤는데도 그대로입니다.어떻게 해야할까요?
-
미해결실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}
Unable to connect to the server: dial tcp 192.168.1.10:6443: i/o timeout
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의에서 다룬 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 법을 읽어보셨나요? [예 | 아니요](https://inf.run/DvsRD)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.[질문 하기]vagrant up명령어를 통해 vm을 생성하면 한두개씩 생성이 안되어서 이미지를 다운받아 virtualbox에서 가져온 후 진행하였습니다. 그리고 새로 인터페이스르 추가하고 해당 명령어를 입력했는데 다음과 같은 문제가 발생합니다.어디서 잘못된걸까요?
-
미해결스프링 부트 - 핵심 원리와 활용
스프링 발전 과정들도 자세히 알아둬야하나요??
강의한번 들었다고 모든 내용이 기억나는게 당연한 것이 아닌 것은 압니다.그래서 토이프로젝트도 만들어보면서 학습 내용을 이해하려고 합니다.근데 문제는 기간이 어느정도 지나면, 실질적으로 쓰이는 기술 빼고는 그 원리가 어떻게 발전해서 내가 지금 편리하게 사용하는 기술로 발전되었는지 그 과정이 잘 기억이 나지 않습니다.예를들어서 aop라고 한다면, aop를 결국 어노테이션을 사용해서 하는 방법들은 기억에 남고 편리하게 사용가능하지만, 프록시를 만들고 프록시 팩토리를 만들고, 어떤식으로 스프링 빈에서 프록시로 대체되는건지 그러한 발전과정들이 잘 기억이 나지 않습니다.트랜잭션도 결국 트랜잭션 어노테이션을 이용하는것은 기억에 남는데, 그 트랜잭션 어노테이션을 사용할 수 있기까지의 과정이 자세하게는 기억이 안납니다. 지금도 기억나는건 트랜잭션을 aop형식으로 빼내는 이유가 서비스단에서 db기술을 이용하지 않기위함, 온전한 로직을 사용하기위함 그정도밖에 기억이 안나네요...토이프로젝트를 할 때에 결국 최종 발전방식만 사용하고 옛방식을 사용하지 않는 편이고 개념만 보고 이해하고 넘어만 가기에 기억에 오래남지 않아서 그런건지...이런 발전과정들도 완벽하게 알고있어야하는지 궁금합니다.다시보면 이해하는데까지 오래걸리진 않지만 하루만에 다시 다 볼수있는 정도는 아니기도 하고, 다른것들도 공부해야할 것이 남아있어서 고민이되네요.jpa 강의듣기 전에 토이프로젝트 만들고있는것도 우선 완성해두고 db sql도 공부한번 하고 jpa강의를 들어야하지 않나 생각중인데 생각보다 토이프로젝트도 오래걸리고...취업준비같은거 하면 공부에 집중이 안되어서 그동안에 또 까먹게 되고 참 어렵네요..
-
해결됨실리콘밸리 엔지니어와 함께하는 AWS EKS
kubectl autoscale deployment 명령어 관련 질문 드립니다.
안녕하세요. 수업 잘 듣고있습니다.kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10위 명령어를 통해서 eks 클러스터에 pod의 hpa를 설정한 것으로 이해했는데요.강사님께서 제공해주신 flexible.yaml 파일로 eks 클러스터를 구성했고 노드만 띄워져 있는 상황으로 인지했고, 그후에 부하분산기를 통해서 부하가 증가 됬을 때 pod의 숫자가 어떻게 증가되는건가요?!저희는 pod 관련된 정의를 하지 않았기 때문에,빈 깡통 node만 띄어져 있는 상황이 아닌가요??
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
마지막 해수편 강의 실습편 너무 어렵네요 ㅠㅠ
기능 얘기할때는 그래도 얼추 이해하면서 봤는데실습은...왜 저걸 하고 느닺없이 values파일에 에 뭔지도 모르는 presets이 왜나오고 logsCollections이 왜나오고..전혀 감을 못잡겠네요 ㅠㅠ 강사님은 필요시에따라 딱딱 찾아가서 뭔가를 작업하고 그 작업을 위해 가이드를 보고 이 가이드의 기능이나 방법 파악을 하시는데.......아~ 좌절입니다. ㅠㅠ 파일에 이 옵션을 보고 custom파일로 만들때 어떤 설정들을 옮기고...각 하나하나 어떤역할이며.........실습들어오고 정말 하나도 이해가 안되네요 ㅠㅠ우리가 쓰는 이미지는 쿠버네티스 버전이라서 다른 버전의 이미지에서 제공하는 기능은 쓰면 안된다고 하는데 이것도 대체...무슨말인가요? 쿠버네티스를 쓰는데 쿠버네티스가 아닌 다른버전이라뇨?? 아~~ 멘붕입니다.
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
fake폴더가 없어요 ㅠㅠ
똑같이 따라하고 있고 values.yaml 파일에auth_enabled: false 로 되어있으면 기본 fake폴더가 생긴다고 하셨는데 저는 안생겨있네요? ㅠㅠindex폴더안에도 prefix으로 준 부분으로 생성된 파일이 없고 index폴더안에 delete_requests폴더가 있네요. 강사님은 index랑 delete_requests가 같은위치에 있었는데 말이죵 ㅠㅠ
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
Loki 아키텍처 관련
강의를 듣다보니...프로메테우스 아키텍처랑도 비슷하다는 느낌이 많이 드네요?loki도 설치하면 grafana가 존재하나요? 아니면 prometheus설치했을때 존재하는 그라파나를 같이 사용하나요? 결론은 로깅 시스템 구성할때 loki는 어플리케이션 로그 수집용이고 프로메테우스는 노드 메트릭 수집용이라는 차이인거네요?
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
grafana 대시보드 datasource관련
기존에 mymonitoring이라고 해서 cpu//memory 대시보드 만든건 쿼리에 메트릭조회가 잘 됩니다.거기에서 보면 DataSource 부분에 mixed가 선택되어있고 밑에 A, B 쿼리에서 ${datasource}가 선택되어있는데 ...저 mixed선택부분에 밑에 여러개 리스트가 보이던데 원래 mixed그대로 두는게 맞는지..저기에 보이는거랑 밑에 A,B에서 선택하는거랑 무슨차이가 있는지요? 왜 여쭤보냐면 nginx-controller 강사님 하신대로 대시보드 복사해서 왔는데 거기에는 A,B,C에는 Datasource 이미 prometheus가 선택되어있고 A,B,C에는 선택이아니라 그냥 이름만 표시되어있어서요..어떻게 하는게 맞는건지 헷갈립니다.${datasource} 그리고 그랸 Prometheus 이거 차이는뭔지 헷갈립니다.
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
scrap_config확인후에 잡등록 여부확인 내용은
job이름이 조회가 되면 Operator까지의 기능은 동작을 잘 한거다. 라호 하신 부분은 즉, operator가 여기에 secret을 보고 prometheus에 nginx 메트릭 가져올 serviceMoinitor를 선택한 설정을등록했다고 보면되는것이다라고 보면될까요?아니면 저 잡등록된 의미는 무엇일가요?
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
Prometheus CRD serviceSMonitorSelector매핑확인시
prometheus리소스 야믈내용을 아래에서 보면 이 값과 매칭되는 레이블에 이 내용이 있는 ServiceMonitor 를 찾는것이다.release: monitoring 이라고 prometheus리소스 야믈내용에 있는데요. values.yaml의 serviceMonitorSelector 설정을 통해 수정 가능하다고 하셨는데serviceMonitor를 monitoring이라고 선택하는부분을 변경할강사님이 만드신 values-custom.yaml에도 없고values-yaml에도 해당 항목이 없던데release: monitoring은 설정이 없을때 디폴트값인가요???만약 추가할려면 values.yaml에 어떻게 넣어야 하나요? 항목이 안보여서요..그나마 values.yaml안에 serviceMonitor항목 하위 항목들중에 jobLabel: jobLabel selector: {} # matchLabels: # k8s-app: kube-dns이부분이 보이긴 하던데..여기에 release: monitoing 이라고 넣어야 하는건가요?
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
대시보드 cpu쿼리 관련
기존 대시보드에서 쿼리를 가져오는데cpu 패널 그리는데 쿼리가A Query :sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace="a-anotherclass-434",container!=""})by(pod, container)/sum(kube_pod_container_resource_requests{job="kube-state-metrics", namespace="a-anotherclass-434", resource="cpu"})by(pod, container) 이렇게 되어있던데...두번째 kube_pod_container_resource_requests 함수의 sum값으로 왜 갑자기 나누기를 했는지가 궁금합니다. 어떤 의도이신지요?그리고 앞 쿼리를 나누기 전에 대략 cpu값들이 20~30%라면 뒤에 request는 0.1%에 해당됩니다. 그러면 20/0.1로 나눠버리면 200이 나오는게 맞는데..강사님은...그렇게 안나오는게 좀 이해가 안가네요 ? 추가로 메모리할때는 requests는 메모리와 1:1 비율이니까 max값을 1로 했는데 request가 메모리와 1:1비율이라는게 무슨의미안가요?
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
대시보드에서 질문드립니다.
일단 따라하고 있는데 보이지 않던 value가 보입니다.총 쿼리가 A,B,C 세개인데..그리고 궁금한건...아니...직접 강사님은 node를 by옵션으로 추가하거나 이런건 어떻게 감감적으로 알수있는지 궁금하고 B같은경우에 Options값에는 legends에 그대로 안건들고 capacity라고 뒀는데 이유가있고 또 저건 뭔지도...궁금합니다.실제로 혼자 한다고 했을땐 legend값이나 by 부분 처가한거나..node를 추가한거나..이런걸 다 어떻게 알고 해야하나 갑갑하네요..감사합니다.
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
metrics 함수 변경여부
그라파나 지표 생성시기존꺼에서 가져오고 이전 함수들은 최신함수로 변경하셨는데 지표값이 안나오면...그런 특정 메트릭이 변경됐고 어떤걸로 해야할지는 구글링으로 확인하면될가요?
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
serviceMonitor관련문의드려요
이 단원 들어오면서 어렵네요.operator가 prometheus crd를 보고 statefulset prometheus 를 만들어준다고했는데그럼 serviceMonitor crd를 보고는 operator가 무얼 만들어줍니까? serviceMonitor crd도 있고 prometheus설치하면서 service 리소스 타입도 있던데....이건 servicemonitor리소스와는 또 어떤관계인건지...?servicemonitor라는 crdservicemonitor kind타입의 리소스아래 service들......[root@k8s-master kube-prometheus-stack]# k get service -n monitoringNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEalertmanager-operated ClusterIP None <none> 9093/TCP,9094/TCP,9094/UDP 18hmonitoring-grafana ClusterIP 10.109.212.0 <none> 80/TCP 18hmonitoring-kube-prometheus-alertmanager ClusterIP 10.106.151.30 <none> 9093/TCP,8080/TCP 18hmonitoring-kube-prometheus-operator ClusterIP 10.105.53.49 <none> 443/TCP 18hmonitoring-kube-prometheus-prometheus ClusterIP 10.105.22.75 <none> 9090/TCP,8080/TCP 18hmonitoring-kube-state-metrics ClusterIP 10.99.143.250 <none> 8080/TCP 18hmonitoring-prometheus-node-exporter ClusterIP 10.101.93.137 <none> 9100/TCP 18hprometheus-operated ClusterIP None <none> 9090/TCP 18h그리고 아래 설명에서 말한 service들은 대체 어떤 service들인가요? 실제 서비스할 앱들이 있는 pod를 select하고있는 service 리소스들을 말하나요? 아니면 아래 service라고 칭한건....promethues 설치하면서 만들어진 serivceMonitor crd를 통해 만들어진 servermonitor 리소스가 있고 또 monitoring 네임스페이스에 있는 service 리소스들이 있는데 무얼 말하는지~~서비스서비스 계속 나오니 누구 어떤 서비스를 의미하는건지 구분이 통~ 안됩니다. ㅠㅠ 그리고serviceMonitor crd안에 잇는selector:matchLabels:app.kubernetes.io/instance: monitoringapp.kubernetes.io/name: prometheus-node-exporter이 설정을 그대로 monitoring-prometheus-node-exporter 라는 service 리소스에서 사용하는건가요? 여기 아래 서비스들. 앱이 들어있는 파드 select하는 서비스를 말하는지..kube-prometheus-stack 설치시 생성되는 service리소스를 말하는지...도통 ㅠㅠ- endpoints : 매칭될 타겟 Service의 Port 이름- jobLabel : 타겟 Service의 Label에 key가 jobLabel을 찾아 value 값을 매트릭의 job 라벨로 사용- selector : 매칭될 타겟 Service의 Label 정보
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
kube-prometheus-stack설치시 설명중에
values-custom.yaml내용중에 storageSpec: volumeClaimTemplate: spec: #storageClassName: "storageClassName" accessModes: ["ReadWriteOnce"] resources: requests: storage: 1Gi selector: matchLabels: app.kubernetes.io/name: prometheus-volume근데 만약 파드를 늘리게 되면 이 스펙에 PVC가 또 만들어지는 거기 때문에 물론 PV를하나 더 수동으로 만들면 연결은 되겠지만 관리적으로 좋지가 않아서 테스트 환경에서 불가피할때만 이렇게 사용을 하시는 게 좋아요 라고 하신부분이 이전 설명에서 말한 prometheus 는 statefulset이라 데이타 공유를 하면 단일서버용으로 만들어진 시스템이라 데이터충돌이 난다고 말씀하셨던 그 부분을 말하는 내용입니까?