## .env 내 host ip 추가
echo "OLLAMA_HOST=http://76.13.187.254:11434" >> /docker/[openclaw-gateway path]/.env
## openclaw.json 모델 설정 추가
openclaw.json 내 ollama 모델 설정 추가
5. Issue 모음
ollama 지원을 안하기때문에 openai-completion 으로 진행 해야 함
권한문제 해결해야 함
operator.pairing 권한이 필요한데, 텔레그램 사용자가 아직 페어링 되지 않아서 발생
이제 앞으로 나도 왜 K8S를 사용하는지 장점이 뭔지, 단점이 뭔지 더 디테일하게 토론할 수 있을것이다.
하지만, EKS를 구성하기전에 몇몇 고려사항등을 검토해봐야 한다.
용량 산정
집(용량) 구하기 Let'go
기본적으로 K8S는 Cluster 구조로 이루어져 있고, 1개의 Master Node와 여러개의 Worker Node로 이루어져 있다.
우리는 Pod라는 서비르를 Worker Node에 띄우지만, 이 구성을 어떤 방식으로 할 것이고 Node 의 용량을 어떻게 산정해야 할 것인가는
중요한 문제이다.
용량을 산정하지 못하면, Pod는 Pending 상태로 계속 유지될 것이고 서비스는 정상적으로 동작하지 못할 것이다.
만약 Cluster 총 용량에 따라서 Node를 작게, 크게 나눈다라면...
클러스터 용량
작은 노드 여러개
큰 노드 여러개
8 CPU , 16 GB Memory
- 2 core 4 GB Memory - 총 4 노드
- 8 core 16 GB Memory - 총 1 노드
400 CPU, 800 GB Memory
- 2 core 4 GB Memory - 총 200 노드
- 8 core 16 GB Memory - 총 50 노드
각각의 장단점은 뭘까?
장점
단점
작은 노드 여러개
- 노드 장애 시, 클러스터 전체에서 피해가 적다 (노드 여러개니까...) - HA 구성 시 유리
- 관리하는 노드가 많아 -> 마스터 노드 부하증가 - 공식적으로 5000개의 이하 권장 ( 500개정도여도 부하가 생김) -> Master Node 스펙업하면 됨 - 노드마다 기본적으로 사용되는 리소스 존재 리소스 스펙이 낮다면 (전체 리소스 대비 실제로 사용하는 서비스 리소스가 적을 수 있음) - Karpenter... - Keda... - DeamonSet...
큰 노드 여러개
- 관리의 편의성 - 장비의 대한 업데이트 / 트러블슈팅이 적다 - 총 예산이 저렴하다 ( 10 > 1 ) - 큰 어플리케이션을 돌릴 때 유용
- 하나의 노드에 많은 pod가 실행된다 - Kubelet, Container Runtime에 부하 - 노드 당, 최대 110개의 pod를 추천 - Rplicaiton 효율이 떨어짐 (HA 의미가 없음) - 장애발생 시 위험함 (다른 노드에 부하가 클 수 있음)
결론적으로
큰 노드 여러개는
관리가 편하고, 장비 및 업데이트의 대한 트러블 슈팅이 적고, 큰 어플리케이션을 돌릴때 유용하나...
하나의 노드에 많은 Application이 동작하는 만큼 부하 및 서비스 장애 시, 다른 노드 즉 Cluster 전체의 대한 장애가 발생할 수 있다
작은 노드 여러개는
장애발생 시, 클러스터 전체에 피해가 적을 수 있고 HA 구성할때 유리하다... -> 작은 서비스가 여러개라면 최적임
Node가 많아지는건 Master Node에 대해 부하가 발생할 수 있으며
기본적으로 Node 마다 구성되는 리소스들이 존재한다 (기본 구성의 Spec을 미리 알아야 할듯하다)
Karpenter
Keda
CSI
Kube Proxy...
DeamonSet
이러한 리소스들이 어느정도 잡아먹는데, Node 스펙이 낮다면 Application이 얼마 못들어감
좋아.. 그럼 모든걸 고려했다면 아래 사이트에 이동해서
결과적으로 내가 만든 서비스가 어떤 K8S Node Type이 적당한지 계산을 해보자...