Talos를 통해 Kubernetes를 쉽게 사용하는 방법을 알아보세요.
저자 Ritesh의 Talos를 사용하여 Kubernetes를 단순하게 만들기 에서 번역되었습니다 .
올해 Kubernetes는 v1.30.0 출시로 10주년을 맞이하여 최고의 클라우드 플랫폼으로서의 입지를 확고히 했습니다. Dynatrace 의 설명 에 따르면 EKS, GKS, AKS와 같은 자체 관리형 Kubernetes 클러스터는 전체 클러스터의 73%를 차지하고 나머지 27%는 자체 관리형입니다 . 지난 10년은 퍼블릭 클라우드 시대였지만, 비용 상승으로 인해 일부 기업에서는 하이브리드 클라우드와 균형을 찾으려고 노력하고 있습니다. VMware 에 따르면 현재 조직의 약 76%가 퍼블릭 클라우드와 프라이빗 클라우드가 결합된 다중 클라우드를 활용하고 있습니다. Kubernetes를 사용하면 선택한 하드웨어에 멀티 클라우드 및 프라이빗 클라우드 계층을 구축하고 특정 클라우드에 전념하지 않고도 비용 효율적으로 구축할 수 있습니다.
Kubernetes 채택이 계속 증가하고 있지만 비용 효율성, 안정성 및 보안에 대한 우려는 여전히 남아 있습니다. Kubernetes VM에서 베어메탈 인프라로 전환하면 하이퍼바이저 계층을 제거하고 문제 해결 프로세스를 단순화하며 애플리케이션의 리소스 가용성을 극대화하여 성능 이점을 제공합니다. 베어메탈 설정을 통해 조직은 특정 워크로드에 대한 맞춤형 최적화를 위해 하드웨어 구성 요소를 완벽하게 제어할 수 있습니다. 올바른 엔지니어링 방식과 Kubernetes 통합을 통해 조직은 퍼블릭 클라우드 제품과 기능적 동등성을 달성할 수 있습니다. 역사적으로 베어메탈에서 Kubernetes를 실행하면 특히 클러스터 수명주기 관리에서 운영 복잡성으로 인해 문제가 발생했습니다. 그러나 이러한 장애물은 Talos 의 도입 으로 극복되었으며 , 이 기사에서 이에 대해 더 자세히 살펴보겠습니다.
Talos는 Golang으로 작성된 매우 효율적인 운영 체제입니다. Talos는 Kubernetes 클러스터를 유지 관리하기 위한 운영 체제별 운영 체제로 설계되었습니다. Kubernetes 인프라를 보다 안정적으로 만들려면 각 노드가 동일한 버전의 운영 체제를 실행하는지 확인해야 합니다. Talos는 Talos의 기반이 되는 불변의 철학을 추가하여 Kubernetes 인프라를 안정적이고 일관되게 유지하는 데 도움을 줄 수 있습니다.
Talos는 항상 Linux의 읽기 전용 파일 시스템인 SquashFS 이미지로 실행됩니다. Talos SquashFS 이미지의 전체 크기는 약 80M입니다. Talos는 공격 표면을 최소화하고 보안 취약성이 발생할 가능성을 줄이기 위해 systemd, GNU 유틸리티, 콘솔 패키지, bash 또는 SSH 바이너리와 같은 구성 요소를 의도적으로 생략합니다. 대신 시스템 운영 관리를 위해 최신 API를 사용합니다.
Talos에는 필요한 것만 포함되어 있습니다. 대신 모든 것이 최신 API로 관리됩니다. Talos는 불변 인프라라는 아이디어에 매우 중점을 두고 있습니다.
불변 인프라란 무엇입니까?
불변 인프라 일단 시스템이 배포되면 변경할 수 없습니다. 이 개념을 불변 인프라라고 합니다. 불변 인프라에 변경이 필요한 경우 기존 인프라를 변경하는 대신 필요한 수정 사항을 적용하여 새 인프라를 생성합니다. 변경할 수 없는 인프라를 보유하면 스테이징, 스테이징 및 프로덕션 환경의 일관성이 향상됩니다. 베어메탈 k8s 인프라에서는 노드 간 일관성을 유지하는 것이 가장 중요합니다. 이러한 유형의 인프라에서는 애플리케이션이 운영 체제와 긴밀하게 결합되어 있으며 이는 불변 시스템의 단점입니다.
Talos 사용의 이점
- Talos는 전체 시스템에서 일관성을 유지하고 구성 변경을 방지합니다. Talos는 이를 "예측 가능성"이라고 부릅니다.
- Talos는 Kubernetes 인프라를 완전히 불변으로 만들어 안정성, 보안, 일관성을 향상시키는 것을 목표로 합니다. 따라서 Talos는 Kubernetes를 실행하는 베어메탈 서버에 이상적입니다.
- Talos는 불변으로 설계되었으므로 디스크가 아닌 RAM에서 실행됩니다. Talos는 SquashFS 이미지이기 때문에 본질적으로 일시적인 쓰기 지점이 더 적습니다.
- Talos는 매우 안전합니다.
- Talos는 Kubernetes를 실행하는 데 사용되는 약 12개의 바이너리로 구성된 매우 가벼운 운영 체제입니다.
- Talos는 API 기반입니다.
- Talos는 KSPP(Kernel Self-Protection Project)의 권장 사항을 따릅니다. - KSPP 문서
예
Talos는 Kubernetes 클러스터를 자체 관리하는 데 적합하지만 CIVO 와 같은 플랫폼은 Talos를 사용하여 Kubernetes 클러스터 배포를 지원합니다. 다음은 Talos로 Kubernetes를 실행하는 몇 가지 사용 사례입니다.
1. 엣지 애플리케이션:
대규모 엣지 디바이스 클러스터를 관리하기 위한 Kubernetes는 컨테이너 오케스트레이션을 위해 설계되었을 뿐만 아니라 엣지 디바이스를 효율적으로 관리하므로 최고의 옵션 중 하나입니다. 엣지 애플리케이션의 안정성과 보안을 보장하려면 안전하고 안정적인 Kubernetes를 확보하세요.
2. 베어메탈 기반 Kuberntes:
베어 메탈에서 Kubernetes를 사용하면 불필요한 추상화가 제거되고 애플리케이션이 하드웨어를 완전히 제어할 수 있습니다. Talos는 베어메탈 서버에 Kubernetes를 배포하기 위한 탁월한 선택입니다. 불필요한 구성과 문제 해결이 필요 없으며 베어메탈에 Kubernetes를 쉽게 배포할 수 있습니다.
3. AI 및 머신러닝 워크로드:
Kubernetes는 새로운 기계 학습 모델을 테스트하고 교육하기 위한 이상적인 플랫폼임이 입증되어 대규모 환경에 원활하게 배포할 수 있습니다. 안전하고 안정적인 모델 배포를 위해서는 배포의 일관성을 유지하는 것이 중요합니다. Talos는 수요에 따라 안정적인 모델 확장이 가능한 일관된 환경을 제공함으로써 이 프로세스에서 중요한 역할을 합니다.
건축과 디자인
Talos 아키텍처는 gRPC 인터페이스가 정의된 다양한 구성 요소로 구성됩니다. 모든 Talos 구성 요소 간의 통신은 gRPC를 통해 이루어집니다.
Talos 파일 시스템 파티션
- EFI: EFI 부팅 데이터를 저장합니다.
- BIOS: GRUB 2단계 부팅에 사용됩니다.
- 부팅: 부트 로더에 사용되며 initramfs 및 커널 데이터를 저장합니다.
- 메타: Talos 노드에 대한 메타데이터를 저장합니다.
- 상태: 머신 구성을 저장합니다.
- Ephemeral: /var에 마운트되어 임시 데이터를 저장하는 데 사용됩니다.
Talos의 파일 시스템에는 3개의 계층이 있습니다.
- rootfs: 읽기 전용 핵심 squashfs 레이어입니다. 그런 다음 Squashfs를 메모리에 루프 장치로 마운트합니다.
- tmpfs: 이 파일 시스템은 런타임 특정 요구 사항에 사용됩니다.
- 시스템: 내부 작업에 필요합니다.
예를 들어 Talos는 /system/etc/hosts에 쓴 다음 이를 /etc/hosts에 바인딩합니다. Talos는 /etc를 쓰기 가능하게 만들지 않고 /etc의 특정 부분만 쓰기 가능하게 만듭니다. /system은 부팅할 때마다 완전히 다시 생성됩니다. 시작 시 지속성을 달성하기 위해 Talos는 오버레이 파일 시스템을 생성합니다. Kubernetes는 /var를 소유합니다. 이 디렉터리는 etcd에서 데이터를 쓰는 데 사용됩니다. 업그레이드 시 이 데이터가 삭제되는 것을 방지하기 위해 "--preserve" 옵션을 추가했습니다. 이 데이터는 시스템이 업그레이드되거나 재설정될 때만 삭제됩니다.
구성 요소
talosctl
Talos의 모든 구성 요소와 상호 작용하기 위한 CLI 도구입니다. kube-api를 사용하여 apid와 상호작용하는 kubectl
방법 과 유사합니다.talosctl
- apid: Talos는 API 기반이며
apid
다양한 구성 요소와 상호 작용할 수 있는 gRPC 엔드포인트를 제공하는 역할을 담당합니다.apid
제어 영역을 포함하여 모든 노드에 존재합니다.
탈로스 아키텍처
- machined: apid의 API 요청을 처리하고 리소스 및 제어 관리를 수행하는 역할을 담당합니다.
- trustd: 시스템에 신뢰를 구축하는 데 사용되는 데몬 프로세스입니다. 이는 노드 간 신뢰를 구축하는 데 사용됩니다.
- udevd: /dev에 필요한 링크를 설정하는 데 사용됩니다.
컨트롤러 및 리소스
- 리소스 : Kubernetes의 리소스와 유사하며 리소스는 유형이 다르며 네임스페이스, 유형 등과 같은 메타데이터를 포함합니다. 리소스는 네임스페이스로 고유하게 식별됩니다. "머신 구성" 리소스는 현재 머신 구성을 반영합니다.
- 컨트롤러 : Talos에서 컨트롤러는 스레드로 실행됩니다. 컨트롤러는 여러 리소스 유형을 관리할 수 있으며 각 리소스 유형에는 많은 리소스가 있을 수 있습니다. 충돌을 피하기 위해 하나의 컨트롤러만 네임스페이스의 특정 리소스 유형을 관리합니다. Talos는 컨트롤러에 대해 정의된 리소스 유형을 메타 네임스페이스에 저장합니다.
데모
베어메탈은 아직 사용할 수 없으므로 이 기사에서는 Docker를 사용하여 이 기능을 시연합니다. 향후 기사에서 베어메탈에서 Talos를 실행하는 방법을 다룰 계획이므로 블로그를 구독하세요. Docker를 사용하여 Kubernetes 클러스터를 만드는 방법을 알아봅니다.
Docker 및 Talos 클러스터 설정
전제 조건
계속하기 전에 다음 소프트웨어가 설치되어 있는지 확인하십시오.
참고: talosctl 및 Talos 운영 체제 ISO 이미지 버전은 동일해야 합니다. 자세한 내용은 릴리스 정보를 참조하세요.
맥:
brew install siderolabs/tap/talosctl
리눅스:
wget https://github.com/siderolabs/talos/releases/download/v1.7.0/talosctl-linux-amd64
chmod +x talosctl-linux-amd64
./talosctl-linux-amd64
sudo mv ./talosctl-linux-amd64 /usr/local/bin
docker 및 talosctl을 사용하여 3노드 클러스터를 설치합니다. 다음 명령은 3노드 클러스터(제어판, 작업자 노드-1, 작업자 노드-2)를 생성합니다.
talosctl cluster create --workers 2
생성된 노드 수와 운영체제 정보를 확인해보자
kubectl get nodes -o wide
kubectl get node talos-default-worker-1 -o json | jq -r '.status.nodeInfo.osImage'
클러스터를 정리하고 삭제해 보겠습니다.
결론적으로
Talos는 Kubernetes 환경 관리에 중요한 역할을 합니다. 단순성으로 인해 Kubernetes 클러스터 구성이 크게 단순화됩니다. Talos의 불변의 철학은 인프라의 보안과 일관성을 크게 향상시킵니다.
자주 묻는 질문
탈로스(Talos)와 k3s
Talos와 k3s 사이에는 직접적인 비교가 없습니다. 그러나 Kubernetes 클러스터 배포를 고려할 때 k3s에는 운영 체제가 필요하며 기본 운영 체제에 따라 다른 종속성이 있습니다. Talos는 보안과 안정성을 유지하기 위해 불변의 철학을 사용하여 Kubernetes 클러스터를 실행하는 데 중점을 두고 있습니다. Talos를 사용하면 Kubernetes 배포가 더 쉬워집니다.
Talos에는 어떤 바이너리가 포함되어 있나요?
- Talos의 바이너리는
init
kubelet 및 컨테이너 런타임 실행을 담당합니다. - Containerd는 runc와 함께 Talos의 런타임입니다.
- Modprobe는 특정 바이너리에 대한 모듈을 로드하는 데 사용됩니다. Talos에 모듈을 추가하거나 Image Factory 에서 사전 구축된 모듈을 사용할 수 있습니다.
- 볼륨 관리에는 lvm을 사용하십시오.
- udevd는 커널에서 메시지를 수집하여 다른 시스템으로 전달하는 데 사용됩니다.
- xfs_repair와 같은 바이너리는 XFS 파일 시스템을 복구하는 데 사용됩니다.
탈로스는 무료인가요?
Talos는 Mozilla Public License 버전 2.0이 적용되는 무료 오픈 소스 운영 체제로 상업적 사용이 허용됩니다. Talos Github 저장소 에서 자세한 내용을 확인하세요 .
탈로스를 사용하는 이유
Talos는 Kubernetes 환경을 더욱 안전하고 안정적으로 만듭니다. 우리 모두 알고 있듯이 Talos는 Kubernetes와 같은 분산 시스템에 적합합니다. Kubernetes 환경을 보다 안전하고 안정적으로 유지하려면 Talos를 사용해야 합니다.
베어메탈에서 Talos를 실행할 수 있나요?
Talos는 베어메탈에서 Kubernetes를 구성하려는 경우에 이상적입니다. 베어메탈에 Talos를 배포하는 방법을 계속해서 알아보고, 게시물을 구독하거나, 직접 문의하여 문제에 대해 더 자세히 논의하세요.
Talos에 대한 추가 지원은 누가 제공합니까?
- 시데로 연구소
- CloudRaft는 구현 및 지원에 사용됩니다. 더 자세한 내용을 논의하려면 저희에게 연락하세요 .
러스트데스크(RustDesk) 만연한 사기로 국내 서비스 중단 애플 M4 칩 출시 타오바오(taobao.com) 웹 버전 최적화 작업 재개 고등학생들이 성인 선물로 자신만의 오픈소스 프로그래밍 언어 개발 - 네티즌 비판 댓글: 국방 Yunfeng은 Alibaba에서 사임하고 향후 Windows 플랫폼에서 독립 게임 프로그래머를 위한 대상을 . Visual Studio Code 1.89는 Java 17을 출시합니다. 가장 일반적으로 사용되는 Java LTS 버전은 Windows 10의 시장 점유율이 70입니다 . %, Windows 11은 계속해서 하락하고 있습니다. Google은 Hongmeng의 인수를 지원하고 Docker는 Android 휴대폰을 지원합니다.이 기사는 Yunyunzhongsheng ( https://yylives.cc/ ) 에 처음 게재되었습니다 . 누구나 방문하실 수 있습니다.