Posts by Tag

kubernetes

Kubernetes 커맨드 라인 툴

3 분 소요

소개글 쿠버네티스 클러스터를 자주 사용하는 사람이라면, 반복적으로 명령을 입력하는데 불편함을 느낄것입니다. 이러한 불편함을 줄이기 위한 방법은 kubectl에 CLI 도구들을 사용하는것입니다. 이 문서에서는 kubectl의 사용을 도와줄 몇가지 도구들을 소개하겠습니다.

Ingress status에 값이 없을 경우

최대 1 분 소요

Ingress status에 값이 없다. argocd를 이용해서, 리소스들을 동기화 했는데, ingress 부분 계속 Processing이라고 나오이고 끝날 생각을 안한다. ingress 의 상태를 보니 다음과 같았다. $ kubectl get ingresses dobby -o y...

Prometheus Operator로 kube-proxy 모니터링 하기

최대 1 분 소요

kube-proxy 모니터링 하기 kube-proxy도 /metrics라는 매트릭 엔드 포인트를 제공한다. 하지만 기본 설정값이 127.0.0.1:10249이기 때문에, 외부에서 접근이 안된다.

Prometheus Operator로 etcd 모니터링 하기

1 분 소요

etcd 모니터링 하기 etcd는 /metrics 라는, 프로메테우스가 수집할 수 있는 매트릭 엔드 포인트를 제공한다. 하지만, Secure Etcd 클러스터인 경우에는 해당 엔드 포인트에 접근하기 위해서는 인증서가 필요하다.

Helm v2

7 분 소요

Helm Helm은 쿠버네티스 패키지 관리 툴이다. chart라고 부르는, 이미 만들어 놓은 패키지 명세서를 이용해서 손쉽게 애플리케이션을 배포하고 관리할 수 있다.

Prometheus를 사용해서 NVIDIA GPU 모니터링 하기

2 분 소요

Node의 GPU 모니터링 하기 prometheus를 사용해서 노드들의 매트틱을 수집하고 있다면, 아마 node-exporter를 사용하고 있을 것이다. NVIDIA에서는 dcgm-exporter라는 GPU 매트릭 출력용 이미지를 제공하고 있다. 이 dcgm-exporter과 no...

Istio client go

3 분 소요

시작하기전에.. 애플리케이션에서 Istio CR(Custom Resources)을 생성해야 하는데, 공식적으로 제공하는 라이브러리가 없다.

kubernetes 인증서 만료

4 분 소요

넋두리 한동안 버려두었던 쿠버네티스 클러스터를 사용할이 생겨, kubectl를 이용해서 명령어를 날렸다. 그런데 작동하지 않는다. 그동안 소외받았던 서러움을 이해하지 못하는것은 아니지만, 왜 갑자기 안되는 것일까? -v=8 파라메터를 추가해서 명령어를 실행해 보았지만, 결과는 난...

쿠버네티스 메트릭 서버 인증 실패

1 분 소요

쿠버네티스 v1.11.x에서 metrics-server를 설치하였으나, 한개의 마스터 서버에서만 정상적으로 작동하는 문제가 발생하였습니다. (3개의 마스터 서버로 HA 구성 상태)

flannel : failed to find IPv4 address

최대 1 분 소요

flannel을 설치하였으나, 아이피를 찾을 수 없다는 에러가 발생하고 작동하지 않는 문제가 발생하였습니다.

쿠버네티스에 메트릭 서버(metrics-server) 설치하기

1 분 소요

쿠버네티스 v1.11부터 heapster가 deprecated 되었습니다 (자세한 내용은 문서를 참고 바랍니다.) 그래서 HPA(horizontal pod autoscaler)나 kubectl top 명령어를 사용하라면 metrics-server를 사용해야 합니다.

Unable to get metrics for resource cpu

최대 1 분 소요

상황 쿠버네티스 v1.11.x에서 HPA를 사용하려고 했으나, 에러가 발생하였습니다. 에러 메시지 Warning FailedGetResourceMetric 3m (x21 over 13m) horizontal-pod-autoscaler unable to get met...

kubeadm : unable to select an IP from default routes

2 분 소요

상황 쿠버네티스 1.13 버전을 kubeadm을 이용해서 설치하려고 했으나, IP를 찾을 수 없어서 에러가 발생하였습니다. $ kubeadm init --config=kubeadm-config.yaml unable to select an IP from default routes. ...

Kubernetes 참고 문서

최대 1 분 소요

References A reason for unexplained connection timeouts on Kubernetes/Docker kubecost How to monitor Golden signals in Kubernetes Kiali: Observabili...

Ceph rbd 이미지 삭제하기

최대 1 분 소요

상황 ceph의 물리적 저장 용량이 부족해서, 쿠버네티스의 PV를 삭제하였습니다. PV 를 삭제하면 용량을 확보할 수 있을 줄 알았는데, 그렇지 않았습니다. (PV의 설정을 잘못한건가???)

Ingress nginx 파일 업로드 크기 제한 늘리기

최대 1 분 소요

Ingress NginX : Custom max body size ingress-nginx를 사용하는 중, 파일 업로드 중 413 에러가 발생하였습니다. 이 경우는 nginx가 허용하는 것보다, 큰 파일이 업로드 되어 에러가 발생한 것이었습니다.

Back to Top ↑

linux

Linux buffer/cache 비우기

최대 1 분 소요

리눅스(linux)에서 top이나 free 명령어로 메모리 상태를 확인할 수 있다. 버퍼와 캐시는 자주 사용하는 파일등의 정보를 저장하여 성능을 빠르게 유지할 수 있는 장점이 있지만, 너무 많아지면 가용 메모리의 부족으로 다른 문제를 야기시킬 수 있다. 그래서 버퍼/캐시의 사용량이...

Spring Boot 시작시 /dev/./urandom을 사용하는 이유

최대 1 분 소요

SpringBoot 실행 예제를 보면 -Djava.security.egd=file:/dev/./urandom 플래그를 간혹 볼 수 있습니다. 이 플래그가 왜 필요한지에 대해서 간단히 설명해 보겠습니다. 스프링 부트를 이용해서 웹 애플리케이션을 만들 때, 기본적으로 톰캣을 이용하게...

systemd

4 분 소요

주요 명령어 systemd를 위한 주요 명령어는 다음과 같습니다. systemctl systemd-analyze systemd-cgls systemd-cgtop systemd-loginctl

디스크 사용량

최대 1 분 소요

df : 디스크의 용량 확인 디스크의 용량을 보기 좋게 출력해 준다. $ df -h Filesystem Size Used Avail Use% Mounted on /dev/vda2 100G 6.6G 94G 7% / devtmpfs 16G ...

Back to Top ↑

machine learning

Keras GPU 사용하기

2 분 소요

쿠버네티스(kubernetes) 위에서 GPU 4개를 할당한 Jupyter를 사용하고 있다. Jupyter Notebook 에서 텐서플로-케라스를 사용하고 있는데, 노트북을 1개 더 생성해서 작업 할 경우 OOM 에러가 발생하였다. ResourceExhaustedError (see...

Machine Learning

최대 1 분 소요

Supervised Learning(지도 학습) 지도 학습은 학습할 때 데이터에 대한 정답을 알려줘서, 정답값을 구하기 위한 모델을 구하는 학습 방법이다. 데이터를 훈련을 위한 트레이닝 데이터셋(training data-set)과 검증을 위한 테스트 데이터셋(test data-se...

Back to Top ↑

etcd

Prometheus Operator로 etcd 모니터링 하기

1 분 소요

etcd 모니터링 하기 etcd는 /metrics 라는, 프로메테우스가 수집할 수 있는 매트릭 엔드 포인트를 제공한다. 하지만, Secure Etcd 클러스터인 경우에는 해당 엔드 포인트에 접근하기 위해서는 인증서가 필요하다.

etcd 명령어

최대 1 분 소요

etcd 명령어 인증서 기반 TLS 인증서 기반으로 etcd를 설치한 경우, etcdctl을 사용하려면 인증서 정보를 플래그로 넘겨줘야합니다. 그리고 3 버전의 API를 사용하려면 ETCDCTL_API=3를 선언해줘야 합니다. ETCDCTL_API=3 etcdctl --endpo...

Back to Top ↑

tensorflow

Keras GPU 사용하기

2 분 소요

쿠버네티스(kubernetes) 위에서 GPU 4개를 할당한 Jupyter를 사용하고 있다. Jupyter Notebook 에서 텐서플로-케라스를 사용하고 있는데, 노트북을 1개 더 생성해서 작업 할 경우 OOM 에러가 발생하였다. ResourceExhaustedError (see...

Back to Top ↑

python

파이썬 requirements.txt

최대 1 분 소요

파이썬 환경에서 자신이 사용하고자 하는 파이썬 패키지를 일일히 설치해주는것은 불편한 일이다. requirements.txt을 사용하면 손쉽게 패키지를 설치할 수 있다.

Back to Top ↑

docker

docker 명령어

최대 1 분 소요

도커 이미지 관련 명령어 docker login [repository] : 저장소(repository)에 로그인한다. 저장소 주소를 적지 않으면 Docker Hub repository 로 로그인한다. docker create [image] : 해당 이미지로부터 새로운 컨테...

Docker 로그 관리

최대 1 분 소요

도커(docker)는 로깅 드라이버(logging driver) 통해, 로그를 남기게 되어 있습니다. 로깅 드라이버의 기본 값을 json-file입니다. 즉, 로그를 json 형식으로 파일로 저장하게 됩니다.

Back to Top ↑

data science

Machine Learning

최대 1 분 소요

Supervised Learning(지도 학습) 지도 학습은 학습할 때 데이터에 대한 정답을 알려줘서, 정답값을 구하기 위한 모델을 구하는 학습 방법이다. 데이터를 훈련을 위한 트레이닝 데이터셋(training data-set)과 검증을 위한 테스트 데이터셋(test data-se...

Back to Top ↑

nvidia

Prometheus를 사용해서 NVIDIA GPU 모니터링 하기

2 분 소요

Node의 GPU 모니터링 하기 prometheus를 사용해서 노드들의 매트틱을 수집하고 있다면, 아마 node-exporter를 사용하고 있을 것이다. NVIDIA에서는 dcgm-exporter라는 GPU 매트릭 출력용 이미지를 제공하고 있다. 이 dcgm-exporter과 no...

Back to Top ↑

gpu

Prometheus를 사용해서 NVIDIA GPU 모니터링 하기

2 분 소요

Node의 GPU 모니터링 하기 prometheus를 사용해서 노드들의 매트틱을 수집하고 있다면, 아마 node-exporter를 사용하고 있을 것이다. NVIDIA에서는 dcgm-exporter라는 GPU 매트릭 출력용 이미지를 제공하고 있다. 이 dcgm-exporter과 no...

Back to Top ↑

prometheus

Prometheus를 사용해서 NVIDIA GPU 모니터링 하기

2 분 소요

Node의 GPU 모니터링 하기 prometheus를 사용해서 노드들의 매트틱을 수집하고 있다면, 아마 node-exporter를 사용하고 있을 것이다. NVIDIA에서는 dcgm-exporter라는 GPU 매트릭 출력용 이미지를 제공하고 있다. 이 dcgm-exporter과 no...

Back to Top ↑

metrics-server

쿠버네티스 메트릭 서버 인증 실패

1 분 소요

쿠버네티스 v1.11.x에서 metrics-server를 설치하였으나, 한개의 마스터 서버에서만 정상적으로 작동하는 문제가 발생하였습니다. (3개의 마스터 서버로 HA 구성 상태)

쿠버네티스에 메트릭 서버(metrics-server) 설치하기

1 분 소요

쿠버네티스 v1.11부터 heapster가 deprecated 되었습니다 (자세한 내용은 문서를 참고 바랍니다.) 그래서 HPA(horizontal pod autoscaler)나 kubectl top 명령어를 사용하라면 metrics-server를 사용해야 합니다.

Back to Top ↑

keras

Keras GPU 사용하기

2 분 소요

쿠버네티스(kubernetes) 위에서 GPU 4개를 할당한 Jupyter를 사용하고 있다. Jupyter Notebook 에서 텐서플로-케라스를 사용하고 있는데, 노트북을 1개 더 생성해서 작업 할 경우 OOM 에러가 발생하였다. ResourceExhaustedError (see...

Back to Top ↑

helm

Helm v2

7 분 소요

Helm Helm은 쿠버네티스 패키지 관리 툴이다. chart라고 부르는, 이미 만들어 놓은 패키지 명세서를 이용해서 손쉽게 애플리케이션을 배포하고 관리할 수 있다.

Back to Top ↑

kubeapps

Helm v2

7 분 소요

Helm Helm은 쿠버네티스 패키지 관리 툴이다. chart라고 부르는, 이미 만들어 놓은 패키지 명세서를 이용해서 손쉽게 애플리케이션을 배포하고 관리할 수 있다.

Back to Top ↑

argocd

Ingress status에 값이 없을 경우

최대 1 분 소요

Ingress status에 값이 없다. argocd를 이용해서, 리소스들을 동기화 했는데, ingress 부분 계속 Processing이라고 나오이고 끝날 생각을 안한다. ingress 의 상태를 보니 다음과 같았다. $ kubectl get ingresses dobby -o y...

Back to Top ↑

disk

디스크 사용량

최대 1 분 소요

df : 디스크의 용량 확인 디스크의 용량을 보기 좋게 출력해 준다. $ df -h Filesystem Size Used Avail Use% Mounted on /dev/vda2 100G 6.6G 94G 7% / devtmpfs 16G ...

Back to Top ↑

systemd

systemd

4 분 소요

주요 명령어 systemd를 위한 주요 명령어는 다음과 같습니다. systemctl systemd-analyze systemd-cgls systemd-cgtop systemd-loginctl

Back to Top ↑

sysmctl

systemd

4 분 소요

주요 명령어 systemd를 위한 주요 명령어는 다음과 같습니다. systemctl systemd-analyze systemd-cgls systemd-cgtop systemd-loginctl

Back to Top ↑

spring boot

Spring Boot 시작시 /dev/./urandom을 사용하는 이유

최대 1 분 소요

SpringBoot 실행 예제를 보면 -Djava.security.egd=file:/dev/./urandom 플래그를 간혹 볼 수 있습니다. 이 플래그가 왜 필요한지에 대해서 간단히 설명해 보겠습니다. 스프링 부트를 이용해서 웹 애플리케이션을 만들 때, 기본적으로 톰캣을 이용하게...

Back to Top ↑

java

Spring Boot 시작시 /dev/./urandom을 사용하는 이유

최대 1 분 소요

SpringBoot 실행 예제를 보면 -Djava.security.egd=file:/dev/./urandom 플래그를 간혹 볼 수 있습니다. 이 플래그가 왜 필요한지에 대해서 간단히 설명해 보겠습니다. 스프링 부트를 이용해서 웹 애플리케이션을 만들 때, 기본적으로 톰캣을 이용하게...

Back to Top ↑

logrotate

Docker 로그 관리

최대 1 분 소요

도커(docker)는 로깅 드라이버(logging driver) 통해, 로그를 남기게 되어 있습니다. 로깅 드라이버의 기본 값을 json-file입니다. 즉, 로그를 json 형식으로 파일로 저장하게 됩니다.

Back to Top ↑

container

docker 명령어

최대 1 분 소요

도커 이미지 관련 명령어 docker login [repository] : 저장소(repository)에 로그인한다. 저장소 주소를 적지 않으면 Docker Hub repository 로 로그인한다. docker create [image] : 해당 이미지로부터 새로운 컨테...

Back to Top ↑

ingress-nginx

Ingress nginx 파일 업로드 크기 제한 늘리기

최대 1 분 소요

Ingress NginX : Custom max body size ingress-nginx를 사용하는 중, 파일 업로드 중 413 에러가 발생하였습니다. 이 경우는 nginx가 허용하는 것보다, 큰 파일이 업로드 되어 에러가 발생한 것이었습니다.

Back to Top ↑

ceph

Ceph rbd 이미지 삭제하기

최대 1 분 소요

상황 ceph의 물리적 저장 용량이 부족해서, 쿠버네티스의 PV를 삭제하였습니다. PV 를 삭제하면 용량을 확보할 수 있을 줄 알았는데, 그렇지 않았습니다. (PV의 설정을 잘못한건가???)

Back to Top ↑

rbd

Ceph rbd 이미지 삭제하기

최대 1 분 소요

상황 ceph의 물리적 저장 용량이 부족해서, 쿠버네티스의 PV를 삭제하였습니다. PV 를 삭제하면 용량을 확보할 수 있을 줄 알았는데, 그렇지 않았습니다. (PV의 설정을 잘못한건가???)

Back to Top ↑

go

Go Modules

최대 1 분 소요

Go 언어의 초창기에는 의존성 관리를 위한 마땅한 도구가 없었습니다. 하지만 프로젝트를 진행함에 있어 의존성 관리는 꼭 필요한 기능입니다. 그래서, 시간이 지남에 따라 다양한 써드파트 도구가 등장하기 시작했습니다. 대표적으로 vgo, dep, glide 등이 있습니다. 이렇게 표...

Back to Top ↑

kubeadm

kubeadm : unable to select an IP from default routes

2 분 소요

상황 쿠버네티스 1.13 버전을 kubeadm을 이용해서 설치하려고 했으나, IP를 찾을 수 없어서 에러가 발생하였습니다. $ kubeadm init --config=kubeadm-config.yaml unable to select an IP from default routes. ...

Back to Top ↑

mathjax

MathJax로 수학식 표현하기

1 분 소요

MathJax를 사용하면, 수학식을 표현할 수 있습니다. 물론 Jekyll에서 에서도 사용이 가능합니다.

Back to Top ↑

jekyll

MathJax로 수학식 표현하기

1 분 소요

MathJax를 사용하면, 수학식을 표현할 수 있습니다. 물론 Jekyll에서 에서도 사용이 가능합니다.

Back to Top ↑

hpa

Unable to get metrics for resource cpu

최대 1 분 소요

상황 쿠버네티스 v1.11.x에서 HPA를 사용하려고 했으나, 에러가 발생하였습니다. 에러 메시지 Warning FailedGetResourceMetric 3m (x21 over 13m) horizontal-pod-autoscaler unable to get met...

Back to Top ↑

flannel

flannel : failed to find IPv4 address

최대 1 분 소요

flannel을 설치하였으나, 아이피를 찾을 수 없다는 에러가 발생하고 작동하지 않는 문제가 발생하였습니다.

Back to Top ↑

operator sdk

Back to Top ↑

istio

Istio client go

3 분 소요

시작하기전에.. 애플리케이션에서 Istio CR(Custom Resources)을 생성해야 하는데, 공식적으로 제공하는 라이브러리가 없다.

Back to Top ↑

kubebuilder

Back to Top ↑

kube-proxy

Prometheus Operator로 kube-proxy 모니터링 하기

최대 1 분 소요

kube-proxy 모니터링 하기 kube-proxy도 /metrics라는 매트릭 엔드 포인트를 제공한다. 하지만 기본 설정값이 127.0.0.1:10249이기 때문에, 외부에서 접근이 안된다.

Back to Top ↑

ingress

Ingress status에 값이 없을 경우

최대 1 분 소요

Ingress status에 값이 없다. argocd를 이용해서, 리소스들을 동기화 했는데, ingress 부분 계속 Processing이라고 나오이고 끝날 생각을 안한다. ingress 의 상태를 보니 다음과 같았다. $ kubectl get ingresses dobby -o y...

Back to Top ↑

tools

Kubernetes 커맨드 라인 툴

3 분 소요

소개글 쿠버네티스 클러스터를 자주 사용하는 사람이라면, 반복적으로 명령을 입력하는데 불편함을 느낄것입니다. 이러한 불편함을 줄이기 위한 방법은 kubectl에 CLI 도구들을 사용하는것입니다. 이 문서에서는 kubectl의 사용을 도와줄 몇가지 도구들을 소개하겠습니다.

Back to Top ↑

gitops

Back to Top ↑