/
[Kubernetes] Local 클러스터 구성

[Kubernetes] Local 클러스터 구성

쿠버네티스는 기본적으로 마스터 노드와 워커 노드로 구성. 마스터 노드와 워커 노드는 최소한 1개씩 필요.

  • 마스터 노드: 워커 노드에 Pod를 할당하고 Pod 안에 컨테이너를 띄우게 하는 역할. 쿠버네티스의 상태를 관리하고 여러 Pod 들의 스케줄링.

  • 워커 노드: 마스터 노드와 통신하면서 Pod를 할당 받고 그 안에 컨테이너를 띄워 유지 및 관리하는 역할. 네트워크나 볼륨에 대한 기능도 컨트롤.

설치 환경

마스터 노드

  • OS : Ubuntu 18.04 LTS

  • CPU : 2 core

  • RAM : 2 GB

  • Storage : 20GB

워커 노드

  • OS : Ubuntu 18.04 LTS

  • CPU : 2 core

  • RAM : 1 GB

  • Storage : 20GB

설치 전 확인 사항

  • 마스터 노드와 워커 노드 네트워크 연결 확인

  • swap 메모리 비활성화

    $ swapoff -a $ vi /etc/fstab /swapfile 설정되어있는 구문 주석처리
  • Docker 설치 확인

  • Docker 데몬 드라이버설정 - kubernetes에서 권장하는 Docker 데몬의 드라이버는 systemd. kubernetes가 클러스터 노드에서 사용 가능한 자원을 쉽게 알 수 있도록 구성됨.

    $ sudo cat > /etc/docker/daemon.json <<EOF { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF $ sudo mkdir -p /etc/systemd/system/docker.service.d $ sudo systemctl daemon-reload $ sudo systemctl restart docker
  • 방화벽 실행 중지

    $ systemctl stop firewalld $ systemctl disable firewalld

Kubernetes 설치

마스터, 워커 공동 설치

  • kubeadm : kubernetes 클러스터를 구축하기 위해 사용하는 툴.

  • kubelet : 클러스터의 모든 머신에서 실행되며 Pod 및 컨테이너 시작 등의 작업을 수행하는 구성 요소.

  • kubectl : 클러스터와 통신하는 커맨드라인 인터페이스 유틸.

마스터 노드 설정

  • —-pod-network-cidr : Pod 네트워크를 설정할 때 사용

  • --apiserver-advertise-address : 특정 마스터 노드의 API Server 주소를 설정할 때 사용

Root 계정이 아닌 다른 사용자 계정에서 kubectl 커맨드 명령어를 사용하여 클러스터를 제어하도록 설정

Pod 네트워크 애드온(Flannel) 클러스터에 배포

마스터 노드 설정 확인 명령어

워커 노드 설정

마스터 노드 결합 명령어

  • 마스터 노드의 IP:6443 (6443 포트는 kubernetes api server 프로세스의 기본 포트. 만약 마스터 노드의 api server 포트가 6443이 아니라면 해당 마스터 노드의 api server 포트 번호를 기입.)

  • --token (기본적으로 24시간 뒤 만료)

  • --discovery-token-ca-cert-hash

token 찾는 명령어

token 만료 시 생성 명령어

discovery-token-ca-cert-hash 찾는 명령어

마스터 노드에서 워커 노드 결합 확인

Kubernetes 배포 예제

구글에서 제공하는 Hello world 샘플 프로젝트를 kubectl create deployment 명령어로 배포하는 예제

deployment 확인

pod 확인

워커 노드에서 curl 명령어를 통해 Pod 내부에 떠있는 컨테이너 확인

Kubernetes 종료

쿠버네티스 클러스터를 삭제하는 방법

마스터 노드

워커 노드