2023년 1월 26일 목요일

쿠버네티스(Kubernetes) 및 도커 관련 용어 정리

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다. 쿠버네티스는 선언적 구성과 자동화를 모두 용이하게 해준다. 쿠버네티스는 크고, 빠르게 성장하는 생태계를 가지고 있다. 쿠버네티스 서비스, 기술 지원 및 도구는 어디서나 쉽게 이용할 수 있다.

쿠버네티스란 명칭은 키잡이(helmsman)나 파일럿을 뜻하는 그리스어에서 유래했다. K8s라는 표기는 "K"와 "s"와 그 사이에 있는 8글자를 나타내는 약식 표기이다. 구글이 2014년에 쿠버네티스 프로젝트를 오픈소스화했다. 쿠버네티스는 프로덕션 워크로드를 대규모로 운영하는 15년 이상의 구글 경험과 커뮤니티의 최고의 아이디어와 적용 사례가 결합되어 있다.




컨테이너 

앱이 구동되는 환경까지 감싸서 어디서든 쉽게 실행할 수 있도록 하는 격리 기술


컨테이터 런타임

컨테이터를 다루는 도구. 즉 컨테이너를 쉽게 내려받거나 공유하고 구동할 수 있도록 해주는 도구. 컨테이너 규격은 표준화되어 있기 때문에 도커가 아닌 CRI-O,  Buildah, Podman, Skopeo 등 다른 컨테이너 런타임들도 도커로 만든 컨테이너를 사용할 수 있다.


도커

컨테이너를 다루는 도구 중 가장 유명한 것. 즉 컨테이너를 다루는 도구(컨테이너 런타임) 중의 하나. 


쿠버네티스

컨테이너 런타임을 통해 컨테이너를 오케스트레이션 하는 도구. 컨테이너를 분산 배치, 상태 관리 및 컨테이너의 구동 환경까지 관리해주는 도구. 컨테이너를 다루기 위해 도커 이외에도 다양한 컨테이너 런타임 소프트웨어를 사용할 수 있다.  특정 프로그램이 독립된 환경에서 실행되는 것처럼 격리시켜주고, CPU, 메모리 및 저장 장치와 같은 자원도 실행한 프로그램이 독립적으로 쓸 수 있도록 해주는 namespace 및 cgroup이라는 기술이 있다. 


오케스트레이션

여러 서버에 걸친 컨테이너 및 사용하는 환경 설정을 관리하는 행위. 여러 서버(노드)에 컨테이너를 분산해서 배치하거나, 문제가 생긴 컨테이너를 교체하거나, 컨테이너가 사용할 비밀번호나 환경 설정을 관리하고 주입해두는 일 등.


가상머신은 완전한 컴퓨터이고 가상머신에 일일이 운영체제를 설치해야 하기 때문에 컨테이너 중심의 배포(Container Deployment)보다는 무거운 편이다. 컨테이너는 운영체제를 공유하는 방식이기 때문에, 어떤 프로그램의 문제가 다른 프로그램을 간섭할 수는 없으나 특정 프로그램의 문제가 운영체제에 문제를 일으킬 경우에는 운영체제에서 구동 중인 전체 컨테이너의 문제가 될 가능성이 있다.


참고자료 : https://kubernetes.io/ko

Reentrancy Attack: 블록체인 스마트 컨트랙트의 치명적인 취약점

블록체인 기술이 전 세계적으로 주목받으면서 스마트 컨트랙트(Smart Contract)의 사용이 급격히 증가하고 있습니다. 하지만 그만큼 보안 취약점도 함께 늘어나고 있는데, 그 중에서도 Reentrancy Attack(재진입 공격)은 매우 치명적이고...