분류 전체보기 70

DC 새글 알리미

디시인사이드 특정 갤러리에 새로운 글이 올라오면 윈도우10 팝업 메시지로 알려주는 프로그램입니다. 새 글 알림을 받고 싶은 갤러리의 메인 페이지 주소를 적은 뒤, 시작 버튼을 누르면 됩니다. 반드시 사용 전 설정사항과 주의사항을 읽으신 뒤에 사용해주세요! 아래 링크에서 받으실 수 있습니다. https://drive.google.com/file/d/1X0-OBHHe3yGTKRxjnuIiJiA2k4MTPA6q/view?usp=sharing (비밀번호 : 11037) ​ 사용법 1. 알림을 받고 싶은 갤러리의 메인 페이지 주소를 '갤러리 주소'칸에 적습니다. 2. 시작 버튼을 누르면 알림이 시작 됩니다. 3. 알림 메시지 클릭시 해당 글이 브라우저로 열립니다. 키워드 알리미 사용법 1. 키워드 옆에 ON 버튼..

일상/취미 2021.04.01

Kubernetes Secret은 정말 Secret일까?

개발을 하다 보면 아이디, 비밀번호 등 민감 정보가 필요할 때가 필연적으로 생긴다. 쿠버네티스에서는 이러한 경우를 위해 시크릿을 사용한다. 공식문서에는 다음과 같이 쓰여있다. 쿠버네티스 시크릿을 사용하면 비밀번호, OAuth 토큰, ssh 키와 같은 민감한 정보를 저장하고 관리할 수 ​​있다. 기밀 정보를 시크릿에 저장하는 것이 파드(Pod) 정의나 컨테이너 이미지 내에 그대로 두는 것보다 안전하고 유연하다. 시크릿을 만들 때는 아래처럼 base64로 인코딩 된 값을 넘겨준다. apiVersion: v1 kind: Secret metadata: name: sample-secret data: sample_key: c2FtcGxlX3ZhbHVl 나는 여기서 의문이 들었다. 아니, 쿠버네티스를 모르는 사람이 ..

공부/Kubernetes 2021.03.25

컨테이너와 파드의 리눅스 네임스페이스

책을 읽다가 문득 궁금증이 생겼다. 컨테이너는 linux namespace와 cgroups를 이용해 다른 프로세스들과 격리되어 실행 된다. 그렇다면 쿠버네티스 파드는 어떻게 되는 걸까? 파드 안에는 여러 개의 컨테이너가 들어갈 수 있는데, 그 컨테이너들끼리 격리 돼있다면 사실상 파드의 의미가 없을 것이고, 격리가 돼있지 않다면 컨테이너의 의미가 없지 않나? 이런 생각이 들었다. 구글링을 해서 답을 알아낸 결과를 정리하고자 한다. 먼저, 컨테이너에서의 리눅스 네임스페이스는 아래 그림과 같은 구조이다. 리눅스 네임스페이스에는 총 6가지 종류가 있다. (그림에는 5가지만 표시) 1. IPC namespace (InterProcess Communication) - 말 그대로 프로세스간 통신을 가능케 해주는 네임..

공부/Kubernetes 2021.03.21

DC새글알리미 제작기

1. 동기 작년 중순쯤 디시인사이드 새글 알림 프로그램이 있었으면 하는 생각이 들었다. 아니나 다를까, 이미 다양한 알림 프로그램들이 있었다. 하지만 내가 원하는 알림 프로그램은 없었다. 어떤 것은 프로그램 자체 UI에서, 어떤 것은 텔레그램을 통해서 알려주는 등 컴퓨터로 다른 짓을 하면서 보기에는 불편하다는 생각이 들었다. 그래서 내가 만들기로 했다. 2. 기획 내가 원하는 건 컴퓨터로 다른 짓을 하면서도, 그 화면에서 알림을 받을 수 있는 프로그램이었다. 그리고 심플하면서도 만들기 쉬운 UI를 원했다. 그것이 파이썬을 선택한 계기였다. PyQT5라는 라이브러리로 UI를 간단하게 그릴 수 있었고, win10toast라는 라이브러리로 윈도우10 팝업메시지를 이용할 수 있는 라이브러리도 있었다. 크롤링, ..

일상/취미 2021.03.14

Kubernetes namespace가 terminating에 멈춰서 안 지워질 때

쿠버네티스를 사용하다보면 네임스페이스를 날려야할 때가 많다. 그러면 꼭 terminating 상태에서 멈춰서 안 지워지는 현상이 발생하곤 한다. 이 현상을 구글링 하면 finalizer 제거를 통해 네임스페이스를 강제 삭제하는 방법이 나오지만 바람직한 방법은 아니다. 애초에 네임스페이스가 terminating에서 멈춰 있는 이유는, 잔존하는 리소스들이 해당 네임스페이스에 남아있기 때문이다. 그 잔존 리소스들 또한 terminating에 멈춰 있을 가능성이 높은데, 보통의 경우에 이는 삭제 순서가 꼬였을 때 발생한다. 따라서, 그 잔존 리소스들을 다 지워주기만 한다면 정상적으로 지워질 것이다. 파악하는 방법은 아래 커맨드를 이용하면 된다. $ kubectl get namespace {네임스페이스 이름} -..

공부/Kubernetes 2021.03.13

컨테이너의 이미지 개념 한 장 정리

컨테이너1은 OS+JAVA8+CODE2 조합의 이미지를, 컨테이너2는 OS+JAVA7+CODE1 조합의 이미지를 사용한다. 컨테이너는 이미지를 계층적으로 관리하기 때문에, 중복되는 이미지 레이어는 1개만 보관하고 있으면 된다. 이는 VM 이미지와의 큰 차이점이다. 이 이미지 레이어들도 결국엔 하나의 파일 시스템이다. 이 계층적 이미지들을 하나의 경로에 쌓아올리는 기술이 union mount이다. 컨테이너를 실행하게 되면, union mount를 통해 하나의 경로에 계층적으로 쌓인다. 그렇게 이미지 레이어가 다 쌓인 후에는, 그 위에 read/write 레이어가 씌워진다. 이 레이어는 이미지에 영향은 안주면서, 컨테이너가 write할 수 있도록 해준다. 하지만, 컨테이너 입장에서는 모든 레이어가 겹쳐 보이..

공부/Kubernetes 2021.03.12

Kibana [index_not_found_exception] no such index [.kibana] 에러 해결

Kibana를 다루던 도중, 아래와 같은 에러가 났다. {"type":"error","@timestamp":"2021-03-11T01:24:23Z","tags":["warning","stats-collection"], "pid":1,"level":"error","error":{"message":"[index_not_found_exception] no such index [.kibana], with { resource.type=\"index_or_alias\" & resource.id=\".kibana\" & index_uuid=\"_na_\" & index=\".kibana\" }","name":"Error","stack":"[index_not_found_exception] no such index [...

공부/EFK 2021.03.11

curl을 이용한 Kibana index 패턴 생성

Kibana UI에 접속하지 않고 인덱스를 만들 수 있다. curl로 API 콜을 날리는 것이다. 기본 형식은 아래와 같다. curl -f -XPOST -H 'Content-Type: application/json' -H 'kbn-xsrf: anything' 'http://localhost:5601/api/saved_objects/index-pattern/{인덱스패턴} '-d{"attributes":{"title":"인덱스패턴","timeFieldName":"타임필드네임"}}' 예시로, 가장 흔하게 사용하는 logstash 인덱스 패턴을 만들어보자. kibana 컨테이너에 직접 들어가서 아래의 해당 curl 커맨드를 입력한다. $ curl -f -XPOST -H 'Content-Type: applicat..

공부/EFK 2021.03.11

Kibana basePath 설정 (Configuration 설정)

kibana는 최초 실행 시 /usr/share/kibana/config 경로에 있는 kibana.yml 파일을 읽어서 초기 설정을 수행한다. kibana.yml에 들어갈 수 있는 설정 값들은 아래 링크의 공식문서에서 확인할 수 있다. www.elastic.co/guide/en/kibana/current/settings.html Configure Kibana | Kibana Guide [7.11] | Elastic To reload the logging settings, send a SIGHUP signal to Kibana. www.elastic.co 사용자가 따로 만들지 않아도 kibana가 자동적으로 아래와 같이 kibana.yml 파일을 만든다. (7.2.0 버전 기준) server.name: k..

공부/EFK 2021.03.11