Kubernetes의 DNS, CoreDNS를 알아보자

쿠버네티스의 DNS 서버인 CoreDNS에 대해 살펴보고 POD에서 보내는 도메인 요청이 어떤 원리로 목적지 IP를 찾게 되는지 살펴본다.
Read more →

도커 이미지 잘 만드는 방법

도커 이미지가 빌드될 때 어떤 방식으로 저장 되는지 알아보고, 이미지를 만들 때 주의해야 할 점과 더 작은 사이즈로 만들 수 있는 방법을 소개한다.
Read more →

Varnish 캐시 히트 효율을 높이는 방법

이 글은 웹 서버 또는 API 서버의 응답 결과를 캐시하기 위한 Reverse Proxy로서 활용되는 Varnish 캐시 서버에 대해서 다룬다. 하지만 설치와 실행 방법은 다루지 않으며 Varnish 캐시 서버가 어떤 방식으로 요청에 대한 캐시 데이터 생성하는 지 원리를 이해하고, 캐시 효율을 높일 수 있는 방법에 대해 이야기 한다. 실습을 통해 캐시가 히트되는 원리를 이해하는 과정이 조금 길게 느껴질 수 있다. “캐시 히트 효율을 높이는 방법”을 먼저 확인하려면 마지막 “결론” 부분을 참고하면 된다.
Read more →

AWS EC2에서 kubeadm으로 쿠버네티스 클러스터 만들기 - (2) 쿠버네티스 클러스터 구성

쿠버네티스 클러스터를 직접 구축 해보면서 쿠버네티스 컴포넌트가 어떻게 구성되는지 살펴본다. 쿠버네티스를 이해하는데 클러스터 구축 능력이 반드시 필요한 것은 아니지만, 쿠버네티스의 다양한 오브젝트들을 활용하는 과정에서 좀 더 깊게 이해하는데 도움이 될 수 있다.
Read more →

AWS EC2에서 kubeadm으로 쿠버네티스 클러스터 만들기 - (1) AWS 인프라 구축

쿠버네티스 클러스터를 직접 구축 해보면서 쿠버네티스 컴포넌트가 어떻게 구성되는지 살펴본다. 쿠버네티스를 이해하는데 클러스터 구축 능력이 반드시 필요한 것은 아니지만, 쿠버네티스의 다양한 오브젝트들을 활용하는 과정에서 좀 더 깊게 이해하는데 도움이 될 수 있다.
Read more →

쿠버네티스 파드 네트워크 정리 (Kubernetes Pod Networking)

Pod 안에 있는 모든 컨테이너들은 localhost로 서로 통신할 수 있고, 쿠버네티스 클러스터내 모든 Pod는 CNI 네트워크 플러그인을 이용해 서로 통신할 수 있다. Flannel을 이용한 오버레이 네트워크를 통해 Pod가 서로 통신하는 방식을 알아본다.
Read more →

도커 네트워크 요약 (Docker Networking)

도커를 설치하게 되면 생기는 일 Docker를 설치한 후 Host의 네트워크 인터페이스를 살펴보면 docker0라는 가상 인터페이스가 생긴다. docker0는 일반적인 가상 인터페이스가 아니며 도커가 자체적으로 제공하는 네트워크 드라이버 중 브리지(Bridge)에 해당한다. 도커에서 사용할 수 있는 네트워크 종류는 브리지(bridge), 호스트(host), 논(none) 등이 있다.
Read more →

Github Action 빠르게 시작하기

Github Action이란? Github Action은 Github 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화 할 수 있는 도구이다. 간단하게 말하자면 Github에서 직접 제공하는 CI/CD 도구라고 할 수 있다. Workflow는 Github 저장소에서 발생하는 build, test, package, release, deploy 등 다양한 이벤트를 기반으로 직접 원하는 Workflow를 만들 수 있다. Workflow는 Runners라고 불리는 Github에서 호스팅 하는 머신의 Linux, macOS, Windows 환경 그리고 컨테이너에서 실행할 수 있다. 물론 Runners를 사용자 호스팅 환경에서 직접 구동시킬 수도 있다.
Read more →

[독후감] 하룻밤에 읽는 Go언어 이야기

2016년 후반쯤 Go언어를 처음 접하고, 토이 프로젝트도 하면서 열심히 공부했던 기억이 난다. 오프라인 그룹 스터디도 만들어서 간단한 채팅 프로그램을 만들며 새로운 언어를 익혀갔는데… 그 뒤로 열심히 파이썬만 파느라 그만뒀다. 그러다가 이제 다시 Go언어를 시작 해보려고 한다. 그동안 대부분 파이썬으로 개발했었는데 좀 더 빠른 언어를 배워두면 적절히 활용할 수 있을 것 같다. 어쨌든 새로운 것을 시작하려면 뚜렷한 목표와 충분한 명분이 필요하다. ‘요즘 핫하다’, ‘어느 회사에서 쓴다더라’ 같은 말을 앞세우기 보다 스스로 직접 선택의 이유와 기준을 만드는 과정이 필요하다.
Read more →

Jetbrains Upsource - 뜻밖에 고퀄리티 코드 협업 도구 (Reverse proxy와 함께 Docker로 설치하기)

Upsource 소개 Upsource는 Jetbrains에서 만든 코드 리뷰 도구이다. Upsource는 웹 브라우저를 통해 코드 변경사항과 커밋 메시지, 커밋한 사람, Diff 보기, 코드 리뷰 생성과 의견을 주고받을 수 있는 기능을 제공한다. Github이나 Gitlab 등이 제공하는 저장소 히스토리 그래프와 커밋 내용, 브랜치도 모두 볼 수 있다. 하지만 Git 저장소를 직접 호스팅하는 기능은 갖고 있지 않다. Upsource의 근본적인 컨셉은 코드 리뷰 협업에 있기 때문이다. 이미 모든 회사에서 Github, Gitlab, Bitbucket 같은 Git 호스팅 서비스를 사용하고 있고, 이미 이 시장을 선점하고 있는 3대장(서로간 격차는 무시하고)과 굳이 비벼볼 필요는 없지 않을까 생각한다.
Read more →