나는 scaleway에 가능한 한 작은 kubernetes 설정을 설치할 생각입니다. 내 애플리케이션의 구성 요소를 실행하고 사용량이 증가함에 따라 완전히 중복되는 설정으로 전환할 수 있는 MVP를 직접 만드는 것이 아이디어였습니다.
튜토리얼은 다음 위치에 있습니다.https://www.tauceti.blog/post/kubernetes-the-not-so-hard-way-with-ansible-at-scaleway-part-1/말하는
- etcd는 컨트롤러 노드가 아닌 별도의 가상 머신에 설치해야 합니다.
- etcd에는 노드가 3개 이상 필요합니다.
별도로 설치하는 것을 권장하는 이유는 무엇입니까? 컨트롤러에서 etcd 하나만 실행할 수 있나요?
검색만 한다고 생각해주세요기능의고가용성 대신 설정.
답변1
etcd에는 노드가 3개 이상 필요합니다.
내결함성이 필요한 경우 일관성을 유지하기 위해 리더/마스터가 있는 분산 시스템이 필요합니다. 실제로 클러스터를 두 부분으로 균등하게 분할할 수 없는 경우(예: 네트워크 중단으로 인해) 홀수의 노드가 필요합니다. 그런 일이 발생하면 어느 쪽도 리더와 전체 클러스터를 선출할 수 없기 때문입니다. 사용할 수 없게 됩니다. 3은 클러스터 가동 시간에 영향을 주지 않고 단일 노드가 다운되는 것을 허용할 수 있는 최소 숫자입니다.
고가용성 시스템이 필요하지 않은 경우 단일 노드를 사용할 수 있지만 명백한 이유로 고가용성이 아닌 솔루션은 프로덕션 용도로 권장되지 않습니다. 시스템이 충분히 작고 시스템 충돌의 위험을 이해하는 경우 또는 추가 노드 비용이 정당화될 수 없습니다.
etcd는 컨트롤러 노드가 아닌 별도의 가상 머신에 설치해야 합니다.
이는 안정성/확장성 문제이기도 합니다. 대부분의 분산 시스템에서는 컨트롤러 노드와 컴퓨팅 노드를 자유롭게 혼합할 수 있지만 부하가 높으면 이 설정에서 정체될 수 있습니다. 3노드 클러스터를 생성할 만큼 노드가 충분하지 않으면 시스템에 상당한 스트레스를 줄 만큼 노드가 충분하지 않은 것입니다.
노드가 정체되기 시작하는 지점까지 시스템이 성장하거나 추가 노드 설정 비용을 정당화할 수 있을 때 이 두 가지 문제를 모두 해결할 수 있습니다.
하나의 MVP 노드로 시작할 수 있지만 kubernetes와 etcds 가이드는 모두 분산 설정에 맞춰져 있으며 클러스터에서 설정해야만 실제로 이점을 얻을 수 있습니다. 노드 1개에서 노드 3개로 늘리려고 할 때 문제가 발생할 수도 있습니다. 3개 노드 설정을 감당할 수 있다면 이것부터 시작하여 모든 노드가 모든 서비스로 시작하도록 하고 설정을 더 확장하고 싶을 때 분리합니다.