• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글

Kubernetes 서버 노드를 1개로 줄이는게 나을까요..

콜라 185

1

13

서버노드는 에이전트 노드에 있는 pod(앱)들을 관리해줍니다.

그러나.. 관리만 해줄 뿐이라서, 서버 노드가 죽는다고 앱이 작동 안하는건 아니예요.

 

서버노드는 일반적으로 3개를 묶어서 만듭니다.

그러면 한개 정도는 죽어도 정상 작동 하거든요.

 

근데.. 쿠버네티스의 가장 중요한 etcd란 놈이 disk를 오지게 사용해요.

각 노드당 5MB/s씩 15MB/s를 쓰더라구요.

 

그래서 생각한게 서버노드 두개를 Oracle로 내보내자.

그러나 tailscale이 생각보다 cpu를 많이 씁니다.

좀 많은 작업을 동시에 수행하면 그냥 맛이 가버려요.

명령어 20개 정도만 보내도 그냥 깨져요

(물론 알아서 다시 부활하긴 합니다만.. 10초 정도 Kubernetes 관리를 못하게 됩니다)

 

또 다른 방안으로.. 그냥 서버노드를 한개 두자.

사실.. OS 업데이트만 안하면 안꺼지는게 서버 노드이기도 하고, 램과 ssd도 아끼고..

심지어 proxmox가 ha 기능 제공해줘서 테스트 해보니까 1분 이내로 올라오더라구요.

그리고 어차피 서버 노드 없다고 애플리케이션이 작동 안하는게 아니거든요.. 

 

 

 

 

신고공유스크랩
13
1등
콜라 글쓴이 2024.03.26. 17:03
왠지 tailscale 연결한 상태에선 파일 복사해도 2MB/s가 채 안나오더라구요..
profile image 2등
akrsoTale 2024.03.26. 17:27
쿠버네티스 사용 없이 노드 하나만 사용하시겠단 말씀이신거죠?

쿠버네티스의 etcd는 하나의 노드만 있게 되면 앱이 날아갔을 때 복구되기 어렵습니다.
노드가 세 개 있을 때, 발생한 이벤트에 따라 서로를 평가하고 점수를 매겨야 데이터를 보존하도록 설계해서 그렇습니다..

물론 I/O작업이 빈번한 수준이 아니라면 해당 문제가 발생하진 않겠지만야.. 진짜 추천드리지 않습니다. 대부분 데이터 사라져요
콜라 글쓴이 2024.03.26. 18:30
akrsoTale

사용 없이라는게 무슨뜻인지 이해 못했어요…
etcd가 다른거랑 비교하려고 하긴 하겠지만, 없다고 날라가나요?
나 자신이 무조건 옳은데요?

 

저는 여태 고가용성 때문에 여러개 두는 줄 알았어요

평가하는 쿼럼을 위해서 홀수개를 하는거고, 여러개 두는건 고가용성인 줄 알았는데

한개면 평가도 못하는군요… 

 

그래도 고미해봐야하는건, 3개의 서버 노드가 계속 연결 해제되었다가 다시 동기화 하는 것을 반복하는 것과

혼자 있는 것중 어떤것이 깨지기 어려운지,

그리고 프록스목스 스냅샷도 있어서 깨져도 복원이 어려운 상황은 아니라고 생각하거든요.

 

그래서 고민이예요..

profile image
akrsoTale 2024.03.26. 20:32
콜라
말씀하신대로 나 자신이 옳은 구조로 동작합니다.

3개의 노드가 서로 평가를 해주는것도 맞습니다.
다만, 없으면 날아갈 순 있습니다.

k8s에서 etcd를 채용하게 된 계기는, HA 가 필요한 NoSQL데이터베이스에서 매우 빠르고 좋은 퍼포먼스를 내어주기에 채택을 한 것입니다.

어떤 데이터베이스여도 단일 노드로 활용할 경우에 발생하는 이상상황에 대해 다른 노드에서 평가를 해줄 수 없습니다.
따로 하드웨어 레이드 레벨과 같이 i/o에 대해 평가를 받거나, ECC검증만 믿고 갈거라면 괜찮긴 합니다.

Product에서 최소 3개의 노드를 계속 강조하는 이유가(HCI, HA, Cluster 등등) '최소한'으로 서로를 평가하고 문제가 없도록 과반수를 유지하려는 습성때문이라고 생각하시면 좋겠습니다.


-------------
다만. 말씀하신 상황을 보았을 땐, 쿠버네티스 싱글 노드로 돌려도 문제는 없어 보이네요...
미션 크리티컬 한 서비스를 굴리시는게 아니고,
스냅샷 정도로 복원을 생각하신다면
제 생각에도 생각하신것이 더 좋아보입니다ㅎ

개인적으로 프로덕션 레벨에서만 운용하려는 습성때문에 부정적 시선으로만 생각하게 되었네요..

여러모로 전기세나 리소스 비용, 최적화 등으로 봤을 때 관리요소가 늘어가는 것 보단 줄이는게 최고죠!
마지막 질문해주신 답변은 3개의 노드가 연결 해제되었다가 동기화 되는게 반복되는 수준으로 깨지는 상황보다, 단일일 때 깨지는 게 더 많습니다.
3개의 노드는 두개가 동시에 연속성을 잃는게 아니면 무조건 복원이 가능한 구조라서요
콜라 글쓴이 2024.03.26. 20:45
akrsoTale

감사합니다! 일단은… 답변 보고 좀더 유지해보기로 했습니다!

 

콜라 글쓴이 2024.03.26. 22:12
akrsoTale
프로메테우스 보니까 한시간에 6번 정도, 3~4분씩 끊기네요.
그럼에도 불구하고 3 노드가 안정적이기는 하겠죠?
profile image
akrsoTale 2024.03.26. 22:33
콜라
넵. 모든 노드가 Fail로 3~4분이 아니라 한 노드씩 3~4분이면 큰 문제는 안생깁니다.
콜라 글쓴이 2024.03.26. 23:03
akrsoTale

Screenshot 2024-03-26 at 10.55.49 PM.png.jpg

이 정도로 끊겨요.

 

뭐지? 아까는 그래도 시간에 6번 정도였는데, 최근 10분 동안 2번 노드는 그냥 끊긴 시간이 더 기네요.

이벤트 로그에서 모든 파드가 다시 sync 된다는 로그 뜨기도 하고.. 여러가지 불안한게 많긴 하네요.

가끔 워드프레스도 db 커넥션 에러 뜨기도 하고..

 

에이전트 간에는 192 IP 대역을 쓰는데도 tailscale과 함께 같이 db 연결에 먹통이 생기는 걸까요..ㅠ

 

콜라 글쓴이 2024.03.27. 09:53
akrsoTale
하루 더 봤는데.. 안되겠어요.ㅠㅠ
싱글 노드면 서버 노드 죽어도 앱은 되는데, 이 상태에서는 앱도 지연이 발생하고 그러네요..ㅠㅠ
12

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story