본문 바로가기

Data

(184)
[k8s] Daemonsets에서 띄운 pod의 hostname을 nodename으로 변경하기 (feat. promtail) Daemonsets으로 로그 서비스(promtail)를 띄울때 어디에서 로그가 왔는지 추적하기 위해 hostname label을 사용했는데 해당 정보값이 pod의 이름으로 되어있어서 어디서 날라왔는지 확인하기가 어려웠다. 따라서, 위와같은 상황을 해결하고자 특정 노드에서 날라왔음을 표기해야하는데 아래와같은 방식으로 해결했다. promtail의 Daemonsets yaml파일에는 아래와같이 env를 설정진행 - env.valueFrom.fieldRef.fieldPath를 사용하여 k8s 환경변수를 가져오게끔 설정 ...(생략) spec: selector: matchLabels: app: promtail template: metadata: labels: app: promtail spec: containers..
[Kibana] Elasticsearch를 master, data node로 변경한 이후 kibana stack monitoring dashboard에 접근안될때 Elasticsearch에 대해서 master node, data node로 나눈이후 kibana에 접근시 위와같은 권한 이슈가 발생함. 추가로 내가 로그인한 계정의 role은 superuser로 모든 권한을 가지고 있는 계정임에도 불구하고 권한 이슈가 발생. 아래와같이 해결이 가능했음. 첫번째, Elasticsearch cluster에 대해서 master node, data node중 하나는 remote_cluster_client라는 role을 갖고 있어야함. 나같은 경우에는 master node에 해당 권한을 넘겼음 두번째, Kibana의 config값 세팅중 monitoring.ui.ccs.enabled 라는 값이 있는데 default로 true설정이 되어있음. 해당값을 false로 변경이 필요함...
[ELK] elasticsearch ECK 배포시 기본 사용자 추가 방법 해당 글을 작성하는 이유는? - elasticsearch를 ECK방식으로 배포를 했었는데, 매번 배포할때마다 elastic 유저의 패스워드가 바뀌어서 배포때마다 filebeat에 바뀐 패스워드를 반영해줘야하는 번거로움이 존재했다. - 따라서, 위와같은 귀찮은일을 안하기 위해 비밀번호가 고정적이며 + superuser권한을 갖는 계정을 생성해서 배포때 반영하도록 했다. 아래는 작업한 내용이다. 참고로 기존 클러스터 환경에는 elasticsearch 관련 CRD가 배포되어있다는 가정하에 작성한다. 먼저 생성하고 싶은 계정 정보를 Secret에 기입 및 생성을 한다. HTML 삽입 미리보기할 수 없는 소스 그다음에 elastic.yaml파일에 위에서 생성한 secret을 포함되게끔 반영한다. HTML 삽입 미..
CoreDNS 관련 정리 참고자료 https://h-susu.tistory.com/13 https://velog.io/@dhkim1522/kubernetes%EC%97%90%EC%84%9C%EC%9D%98-DNS-%EC%84%9C%EB%B9%84%EC%8A%A4-feat.-CoreDNS CoreDNS? CoreDNS는 CNCF재단에서 관리하는 프로젝트. CoreDNS는 클러스터를 지속적으로 모니터링하고, 새로운 Service, Pod이 추가되는경우 도메인 서버에 이를 업데이트를 함 kubelet은 새로운 Pod이 생성될때, Pod의 /etc/resolv.conf파일에 clusterDNS서버의 IP주소를 추가함. $ kubectl exec -it my-pod -- cat /etc/resolv.conf search default.s..
[FastAPI] 인증 정보 추가하기 FastAPI를 사용하면서 모르는 외부 인원이 접근하여 내가 만든 REST API를 마구잡이 실행하는걸 걱정할수가 있는데, FastAPI에서 제공하는 인증관련 요소를 활용하면 막을수있다. 아래는 정말 간단한 예시이고, 좀더 안전한 방식을 원한다면 문서를 정독을 해야할것같다. https://fastapi.tiangolo.com/advanced/security/http-basic-auth/ HTTP Basic Auth - FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production fastapi.tiangolo.com 양질의 블로그 글을 위해 바로 예시 코드를 공유하자면... import time f..
[ELK] k8s EK(Elasticsearch, Kibana) 설치중 만난 오류 elasticsearch에서 podTemplate적용시 container name, container image등록 warning문구 출력시 elasticsearch yaml FieldValueRequired Required value spec.containers[0].image 위와같은 에러가 발생하는 경우에는 nodeSets.podTemplate.spec.containers.name 또는 metadata.name이 quickstart인지 확인해보자. 모종의 이유로 quickstart인 경우에는 제대로 적용이 안된다. 이름을 바꿔서 적용하면 해결된다. kibana pod이 apply를 했음에도 불구하고 pod이 안뜨는 경우 제일 오래 삽질했던 케이스인데, kibana에 대한 정보를 describe를 해..
[ELK] k8s에 Elasticsearch(multinode) + Kibana 구축하기 원래는 k8s yaml파일을 전부 손으로 짜려고했는데, 생각보다 귀찮은게 많아서(ex. 보안이슈, 네트워크 이슈) Elastic에서 제공한 quickstart버전을 k8s에서 사용해보기로 했다. https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-quickstart.html Quickstart | Elastic Cloud on Kubernetes [2.10] | Elastic With Elastic Cloud on Kubernetes (ECK) you can extend the basic Kubernetes orchestration capabilities to easily deploy, secure, upgrade your Elasticsearch clu..
[filebeat] 로그 파일 새로운 라인만 수집되게 하는법 본 게시글은 제가 바보같이 실수를 한 부분에 대해서 설명합니다. 일단 고수분들이 혹시나 게시글을 보실까봐 미리 얘기하자면, filebeat으로 수집되는 로그파일을 vim으로 수정했더니 이전에 보냈던 로그도 다같이 보내져서 왜인지 살펴보았더니 vim으로 새로운 라인을 추가하면안되고, echo 방식으로 추가해야지 추가한 라인만 보내졌음. 일단 filebeat에서 테스트 삼아 로그 파일을 수집되게끔 설정함. filebeat.yaml은 다음과 같이 설정. - type은 특정 버전이후로는 logs가 지원되지않고 filestream으로 변경됨 - output은 elasticsearch로 설정 filebeat.inputs: - type: filestream id: test-jaeyung enabled: true pa..