본문 바로가기

분류 전체보기

(339)
[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..
[Ubuntu] Memory & Disk I/O 속도 측정 방법 Memory I/O 속도 측정 방법 mbw라는 툴을 이용해서 속도 측정을 진행 https://github.com/raas/mbw GitHub - raas/mbw: Memory Bandwidth Benchmark Memory Bandwidth Benchmark. Contribute to raas/mbw development by creating an account on GitHub. github.com # mbw 설치 진행 sudo apt update sudo apt install mbw # 성능 측정 진행 mbw 1000 : ' Long uses 8 bytes. Allocating 2*131072000 elements = 2097152000 bytes of memory. Using 262144 bytes..
[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를 해..
[containerd] 사용명령어 정리 kubernetes가 일정 버전 이상부터는 docker runtime을 사용하지않고 containerd runtime을 사용하기 때문에 crictl 명령어 또는 ctr명령어가 익숙하지않았다. 자주 사용했던 명령어를 간단하게 정리해본다. # private registry login nerdctl login PRIVATE_REGISTRY_URL --username=USERNAME --password=PASSWORD # ctr images push ctr images push --user USERNAME:PASSWORD --plain-http IMAGE_NAME # ctr images 이름 변경 ctr images tag AS-IS-IMAGE-NAME TO-BE-IMAGE-NAME # ctr image lis..