3개의 노드에 대해 작업을 진행하며 각 노드의 port, hostname, docker version를 확인한다.
네트워크의 경우 각자의 환경이 있으므로 여기서 다루진 않는다.
쿠버네틱스는 마스터와 노드에서 각자 필요한 포트가 있다.
설치전 다른 필수 포트를 사용할수 있는지 확인해야한다.
lsof, telnet, netstat 등을 사용해 필수 포트를 확인한다.
프로토콜 | 방향 | 포트 | 용도 | 사용주체 |
---|---|---|---|---|
TCP | 인바운드 | 6443 | API 서버 | 전부 |
TCP | 인바운드 | 2379-2380 | etcd 서버 클라이언트 API | kube-apiserver, etcd |
TCP | 인바운드 | 10250 | Kubelet API | Self, 컨트롤 플레인 |
TCP | 인바운드 | 10259 | kube-scheduler | Self |
TCP | 인바운드 | 10257 | kube-controller-manager | Self |
프로토콜 | 방향 | 포트 | 용도 | 사용주체 |
---|---|---|---|---|
TCP | 인바운드 | 10250 | Kubelet | Self, 컨트롤 플레인 |
TCP | 인바운드 | 30000-32767 | Nord Port | 전부 |
쿠버네틱스를 설치할 3개의 노드 모두 설치가 가능한것을 확인
Node | Hostname | port | docker version |
---|---|---|---|
Mastor | Gendou | OK | 20.10.7 |
Worker 01 | Shinji | OK | 20.10.12 |
Worker 02 | Rei | OK | 20.10.12 |
Pod를 생성할 때, 생성에 필요한 리소스 만큼만 노드에서 자원을 할당받아 사용하는 구조이기 때문에 쿠버네틱스는 메모리 스왑 상황을 고려하지 않게 설계되어 있다고한다.
따라서 모든 노드의 Swap 메모리를 비활성화 해야한다.
# memory swapoff
# fstab file을 수정해도 좋다
sudo swapoff -a
# swap이 비활성화 된것을 확인
free -g
>>> total used free shared buff/cache available
...
Swap: 0 0 0
각 노드별로 준비가 끝났다면 설치를 진행한다.