반응형
개발용 서버를 k3s 에 설치하여 쿠버네티스 체험(?) 을 해보려고 합니다.
일단 목표는 다음과 같습니다.
구성 목표
- k3s 3 node 구성
- haproxy 와 keepalive 와 같은 서비스를 통해 vip 통신 구성
- k3s 내부 certbot 을 통한 ssl 인증서 자동 관리. 인증서 자동관리는 최대한 웹 ui를 사용하는 환경이면 더욱 좋음
- nest.js, next.js 프로젝트를 이미지로 만들어서 구동
- postgresql HA 구성
일단 일정도의 목표를 가지고 해보려고 합니다
서버 설치
proxmox 에 일단 우분투 서버 3개를 설치합니다.

아이피는 10.34.1.151, 152, 153 이렇게 설정하겠습니다.
IP설정

아이피는 이런식으로 3개 모두 설정합니다.
디스크는 각각 200기가 정도 할당했습니다.
나중에 DB도 넣고 하려면 용량이 좀 필요할것 같아서요
추후에 IP는 10.34.1.150 번으로 VIP 를 설정 할 예정입니다.
모든 통신은 이제 10.34.1.150 으로 가도록 pfsense 에서 포워딩을 해줄 예정입니다.
서비스 기준으로 할것이기 때문에 80, 443 등이 해당 포트로 가겠죠.
설치가 끝나면 원격 관리를 위해 22번 포트 방화벽을 연다.
그리고 아래 포트들을 연다.
방화벽 사용 시 포트 개방 필요:
- TCP 6443 (API 서버)
- TCP 10250 (kubelet)
- UDP 8472 (Flannel VXLAN — 멀티노드 시)
sudo ufw allow 6443/tcp # Kubernetes API server
sudo ufw allow 10250/tcp # kubelet
sudo ufw allow 8472/udp # Flannel VXLAN (노드 간 네트워크)
sudo ufw allow 30000:32767/tcp
외부에서 혹시나 노드에 직접 접속 할 수 있으므로 해당 포트도 열어준다.
다음은 설치
curl -sfL https://get.k3s.io | sh -
멀티노드로 설치할 것이므로 토큰 확인
$ sudo cat /var/lib/rancher/k3s/server/node-token
K102e2edeaeb6ed7a830352628232ddd585f04e2f9e8cb748672eeeb9c9d75f80cb::server:7c1fea101a572cae30a0bf0a5b94c87d
gpt가 시키는대로 일단 해보고 있다.
다음 두번째, 세번째 서버는 워커노드로 설치한다.
curl -sfL https://get.k3s.io | K3S_URL=https://10.34.1.151:6443 \
K3S_TOKEN="K102e2edeaeb6ed7a830352628232ddd585f04e2f9e8cb748672eeeb9c9d75f80cb::server:7c1fea101a572cae30a0bf0a5b94c87d" sh -
첫번째 서버에서 상태를 확인해본다.
$ sudo k3s kubectl get nodes
NAME STATUS ROLES AGE VERSION
k3s-node1 Ready control-plane,master 9m1s v1.33.5+k3s1
k3s-node2 Ready <none> 2m51s v1.33.5+k3s1
k3s-node3 Ready <none> 7s v1.33.5+k3s1
kubectl는 쿠버네티스를 관리하는 도구라고 한다.
get nodes 를 할때 마스터 노드에서만 동작한다고 한다. 워커노드에서 작업하려고 하면 뭔가 오류같이 나오는데 당연한 결과이며 정상 동작하도록 셋팅 할수도 있다고 한다.
그러나 일단 넘어가 본다.
반응형