InfoGrab
InfoGrab

Kubernetes 새로운 패러다임, Talos Linux 이야기

Kubernetes 새로운 패러다임, Talos Linux 이야기

··15 min read
Kubernetes 새로운 패러다임, Talos Linux 이야기

전통적인 방식으로 Kubernetes를 설치하는 건 복잡한 레고 장난감을 조립하는 것과 비슷합니다. 수많은 단계를 빈틈없이 따라야 하고, 입력해야 할 명령어도 많죠. 하나라도 실수하면 지우고 다시 설치해야 하는 상황도 빈번합니다. 이제 Kubernetes만을 위한 쉽고 빠른 운영 체제가 나와 이러한 번거로움을 덜 수 있는데요. 오늘 소개할 Talos Linux가 그 주인공입니다.

Talos Linux란?

출처=Talos Linux 출처=Talos Linux

Talos Linux는 경량화된 운영 체제로, Kubernetes 클러스터를 구성하는 데 필요한 최소 기능만 포함합니다. 이는 불필요한 요소가 없어 효율적으로 장비를 사용하는 데 도움이 되죠.

Talos Linux는 ‘Manifest만 같으면 동일한 결과를 볼 수 있다’는 불변성(immutability)을 운영 체제에 적용했습니다. 각 Talos 서버의 모든 구성은 YAML 파일로 관리하는데요. 관리자가 talosctl apply-config 명령을 입력하면 Kubernetes에서 kubectl apply 명령을 입력한 것처럼 운영 체제를 선언적으로 바꿀 수 있습니다. ‘모든 것을 선언적으로 관리하는' Kubernetes 장점이 여기에도 구현됐죠. Talos Linux를 사용하면 운영 체제도 GitOps로 구축할 수 있습니다.

아울러 Talos Linux는 강력한 보안 기능도 제공합니다. 이는 불필요한 패키지를 모두 제거해 공격 표면을 최소화하고, 모든 통신을 암호화해 데이터의 무결성을 보장합니다. 또 읽기 전용 파일 시스템을 사용해 시스템 파일이 변조되지 않도록 보호하죠. 이러한 장점을 토대로 Talos Linux는 안전한 Kubernetes 운영 환경을 지원합니다.

Talos Linux 장점

Talos Linux는 보안 효율성, 설치 편의성 측면에서 다음 장점이 있습니다.

최소 기능으로 최대 보안 구현

Talos Linux는 단 50MB 규모의 초경량 운영 체제입니다. 바이너리 파일은 36개로, Kubernetes를 동작하는 데 필요한 최소 파일만 있습니다. 쉘 접속이 불가능하기에 사용자가 임의 실행 파일을 설치할 수는 없는데요. 이는 휴먼 에러나 해킹 위험을 줄이는 데 도움이 됩니다. 또 YAML 파일로만 운영 체제를 조작할 수 있어 휴먼 에러가 발생해도 쉽게 검증할 수 있습니다.

배포판바이너리 파일 수
Talos Linux29
Ubuntu Server 22.042780
Amazon Linux 21382
Flatcar Container Linux2391

모든 곳에 설치 가능

Talos Linux는 클라우드, 온 프레미스를 가리지 않고 모든 환경에 설치할 수 있습니다. 이는 베어메탈 서버에 ISO 이미지로 설치할 수 있고, AWS나 GCP 같은 클라우드에서도 실행할 수 있습니다. 또 Docker, MacOS뿐만 아니라 Kubernetes 위에도 Talos Linux를 설치할 수 있습니다.

Talos Linux 첫 화면

Talos Linux를 설치하고 컴퓨터 전원을 켜면 아래 화면이 보이는데요.

Kubernetes가 모두 구성된 Talos Linux 첫 화면 Kubernetes가 모두 구성된 Talos Linux 첫 화면

우리가 콘솔에 접속해 볼 수 있는 화면은 세 가지입니다.

  1. Summary: 노드의 요약 정보 화면
  2. Monitor: CPU, Memory, 프로세스 등 상태 화면
  3. Network Config: IP, Gateway 등 설정 화면

이 화면 외에 할 수 있는 작업은 없습니다. 운영 체제의 모든 구성은 YAML로 만든 다음 서버에 apply 해야 하죠.

K3s와 차이점

Talos Linux는 경량 Kubernetes 배포판인 K3s와 종종 비교됩니다. K3s는 엣지 컴퓨팅이나 IoT와 같이 자원이 제한된 환경에서 효과적으로 작동하도록 설계됐습니다. Talos Linux와 K3s는 크기, 역할, 설치와 설정, 아키텍처, 보안, 자원 요구 사항, 확장성, 관리와 유지보수, 커뮤니티와 지원 측면에서 차이점이 많은데요. 그 내용은 다음과 같습니다.

기능Talos LinuxK3s
크기작은 크기중간 크기
역할Kubernetes 클러스터 운영을 위한 운영 체제경량 Kubernetes 배포판
설치와 설정설정이 복잡하지만 단순화 가능설정이 간단함
아키텍처최소한의 불변 운영 체제; SSH 접근 불가, 셸 없음; API 기반 구성과 관리경량의 단일 바이너리; 컨테이너 런타임, 네트워킹과 스토리지 통합
보안불변 파일 시스템, 대화형 로그인(SSH) 없음, API 기반 상호작용으로 보안에 중점RBAC, TLS 암호화, 자동 업데이트와 같은 필수 보안 관행 준수
자원 요구 사항효과적인 Kubernetes 운영을 위한 충분한 자원 필요; 자원이 제한된 환경에 부적합낮은 자원 요구 사항; IoT, 엣지 장치와 같은 저전력 장치에 적합
확장성대규모 배포를 처리할 수 있는 프로덕션 환경에서 확장 가능한 Kubernetes 클러스터 지원클러스터링과 고가용성 지원; 일반적으로 소규모 배포에 사용
관리와 유지보수API를 통한 관리; 최소한의 수동 개입으로 자동화된 관리; 불변 인프라 때문에 낮은 빈도로 유지보수, 패치표준 Kubernetes 도구와 인터페이스로 간소화된 관리; 업데이트, 유지보수 용이; 관리 용이성을 요구하는 환경에 적합
커뮤니티와 지원보안, 프로덕션급 배포에 중점을 둔 성장하는 커뮤니티; 강력한 문서, 커뮤니티 포럼, 자원 제공Rancher Labs(현재 SUSE의 일부)가 지원하는 활발한 커뮤니티; 광범위한 문서, 커뮤니티 지원, Rancher를 통한 상업적 지원 옵션 제공

Talos Linux 구성 방식

앞서 설명했듯 Talos Linux는 YAML 파일로 관리됩니다. YAML 파일은 ‘머신(단일 서버) 구성’과 ‘클러스터 구성’으로 나뉘는데요.

머신 구성은 운영 체제, 네트워크, Docker Registry와 같이 서버 한 대에만 적용되는 설정입니다. 서버 사이 설정이 다르면 YAML 파일도 다르게 관리해야 하는데요. 특히 Controlplane과 Worker 노드는 다른 type을 가져야 하기에 YAML 파일도 각각 따로 만듭니다.

여기에 install이라는 옵션이 있는데요. 이 옵션을 수정하면 Talos Linux 운영 체제의 버전을 바로 바꿀 수 있습니다. 보통 Windows나 Ubuntu를 업그레이드하려면 USB를 굽고 이를 본체에 꽂아 설치합니다. 이와 달리 Talos Linux는 YAML 파일에서 버전만 바꾸고 apply-config를 실행하면 알아서 운영체제를 다운로드 받아 재부팅합니다. 설치가 완료되면 자동으로 클러스터에 붙어 원래 기능을 수행하죠.

클러스터 구성은 서버와 상관없이 같은 클러스터라면 모두 동일한 YAML 설정을 공유합니다. 이는 클러스터의 엔드포인트부터 클러스터의 CIDR, API 서버의 컨테이너 이미지 버전 등을 포함하죠. Init 컨테이너와 etcd의 구성도 이곳에서 정의합니다.

인포그랩과 Talos로 Kubernetes 쉽게 구성하기

사용자는 Terraform 하나로 Talos Linux를 구성하고 Kubernetes도 설치할 수 있습니다. Talos Linux는 공식적으로 Terraform Provider를 지원하죠. 인포그랩은 Terraform Provider를 사용해 누구나 쉽게 Talos Linux로 Kubernetes를 구성하도록 프로젝트를 만들었는데요. 인포그랩의 Talos 프로젝트를 클론 받은 다음, 서버 정보만 변수로 넣고 terraform apply를 실행하면 곧바로 모든 구성을 완료할 수 있습니다. 사용자는 Talos Linux가 설치된 서버만 미리 준비하면 됩니다.

Jeff가 생각하는 Talos Linux 가치

저는 기존에 온 프레미스 Kubernetes를 설치하는 방식을 고려해 볼 때, Talos Linux 가치가 더 두드러진다고 생각합니다. 우리가 온 프레미스 Kubernetes를 설치할 때 일반적으로 따르는 과정은 다음과 같은데요.

  1. Ubuntu, RHEL 같은 기본 운영 체제 설치, 보안
  2. Containerd, Kubeadm 등 Kubernetes 설치 위한 도구 설치
  3. Kubernetes 배포

이러한 접근 방식에는 여러 단점이 있습니다. 가장 큰 단점은 도구별로 버전 관리를 해야 한다는 거죠. Terraform, Ansible이나 bash로 자동화 스크립트를 만들어도 결국 레거시가 되고요. 유지보수 담당자는 스크립트를 계속 관리해야 합니다. 사람이 스크립트를 모두 숙지해야 하기에 도구를 신속히 업데이트하거나 버그 패치하기가 어렵죠.

컨테이너 이미지를 만드는 모범 관행은 ‘목적에 맞는 최소한의 이미지를 사용’하는 겁니다. alpine이나 distroless 등을 사용해 가볍고 안전한 이미지를 만드는 거죠. 대부분 엔지니어는 이 원칙을 충실히 따르며 컨테이너 이미지를 만듭니다.

그러나 운영 체제를 구축할 때는 이런 방식으로 접근하지 않는데요. 왜 Kubernetes를 사용하는 데 불필요한 기능이 많은, Ubuntu와 같은 운영 체제를 사용하나 싶습니다. 저는 Talos Linux가 이러한 비효율을 줄이고, 생산성을 향상하기에 의미가 크다고 생각합니다.

맺음말

Terraform과 Talos, GitOps를 확장하면 어떤 큰 그림을 그릴 수 있을까요? 베어메탈을 사용하든, 클라우드 서비스를 사용하든 인프라부터 운영체제, 애플리케이션에 이르기까지 모든 것을 선언적으로 관리하고 GitOps로 배포하는 거죠.

이렇듯 Talos Linux는 Kubernetes를 구성하는 새로운 패러다임을 제시해 인프라 관리의 복잡성을 크게 줄이는데요. 이로써 운영 효율성을 높이고, 보안을 강화하며, 자동화로 개발자와 운영자의 부담을 덜 수 있습니다. 이제 Talos Linux로 더 안전하고 효율적인 Kubernetes 환경을 구축하세요.

참고 자료

  1. Talos Linux 공식 홈페이지
  2. K3s vs. Talos Linux: What’s the difference
  3. SIDEROLABS Sales Deck
  4. K3s vs Talos Linux

지금 이 기술이 더 궁금하세요? DevOps 액셀러레이터 인포그랩에 문의하세요.

⚠️
해당 콘텐츠는 저작권법에 의하여 보호 받는 저작물로 기고자에게 저작권이 있습니다.
사전 동의 없이 2차 가공 및 영리적인 이용을 금하며, 온·오프라인에 무단 전재 또는 유포할 수 없습니다.

DevOps 도입이 필요하신가요?

인포그랩 전문가가 맞춤 을 도와드립니다.

관련 글

Kubernetes 제대로 아는 DevOps 엔지니어를 구분하는 8가지 질문과 답변
DevOpsKubernetes

Kubernetes 제대로 아는 DevOps 엔지니어를 구분하는 8가지 질문과 답변

DevOps 엔지니어는 단순 개발을 넘어 운영·확장·자동화까지 포괄하는 Kubernetes 역량을 갖춰야 합니다. 면접, 자격증(CKA·CKAD·CKS) 시험, 고객 대응 상황에서 K8s 개념을 제대로 설명하면, DevOps 엔지니어로서 전문성을 입증할 수 있습니다. 이 글은 면접과 실무에서 자주 등장하는 K8s 핵심 질문 8가지와 모범 답변을 정리했습니다.

2025년 11월 26일

K9s로 더 빠르게, 효율적으로 Kubernetes 관리하기
k9sKubernetes

K9s로 더 빠르게, 효율적으로 Kubernetes 관리하기

K9s는 터미널 기반의 Kubernetes 클러스터 관리 도구입니다. 이 도구는 복잡한 CLI 작업을 단축키로 간편하게 처리합니다. 에어갭 환경에서도 강력한 기능을 제공하며, 실시간 모니터링과 Pod 로그 확인, 리소스 조회 등을 빠르게 수행할 수 있습니다. 이 글은 K9s 개요와 설치 방법, 주요 기능과 고급 기능 활용법을 다뤘습니다.

2025년 7월 23일

vCluster로 배우는 Kubernetes 클러스터 격리 실전 가이드
KubernetesContainer

vCluster로 배우는 Kubernetes 클러스터 격리 실전 가이드

vCluster는 기존에 구성된 Kubernetes 클러스터 안에 가상화된 경량 Kubernetes 클러스터를 생성하는 기술입니다. 이는 물리적 클러스터와 비슷한 수준의 격리 효과를 제공하고, 전체 관리 부담과 운영 비용도 크게 줄입니다. 이 글은 vCluster 환경을 실질적으로 운용하는 데 필요한 핵심 과정을 실습 예제와 함께 다뤘습니다.

2025년 4월 30일

인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!