반응형
설치 전 유의 사항

이번 실습에서는 docker에서 이미지를 끌어와 하는 실습입니다. 다른 이미지 허브에서 다운로드 받으신다면 내용이 다소 다를 수 있으며, 제가 하는 쿠버네티스 실습은 베이스가 도커로 되어 있음을 알립니다. 물론 도커말고 다른 이미지 허브를 사용하셔도 전혀 문제는 없을 것으로 사료됩니다. 저처럼 도커를 이용하시려 한다면 도커를 VM에 다운로드 하는 방법은 아래 페이지에 들어가 보시면 됩니다.

 

[Docker] Linux에 docker 다운로드

목차 Docker 설치 순서 상태 확인 오류 마치며 Docker 설치 이번 컨테이너 강의에서부터 Ubuntu OS로 변경되어 기준이 Ubuntu로 진행될 것이다. RadHat기반은 apt-get 대신 yum이나 dnf로 바꿔주고 그대로 진행

easyitwanner.tistory.com


kubenetes 다운로드

쿠버네티스는 설치가 다소 복잡합니다. 그래도 잘 따라올 수 있도록 작성해보겠습니다. 또한 이전 설명처럼 마스터와 워커 노드로 나뉘는데 이 중 마스터 노드는 코어는 최소 2개 이상, RAM도 2GB 이상 되어야 작동이 됩니다. 아래 내용 중 주석처리된(#) 내용을 입력해주시면 됩니다.

 

  1. 쿠버네티스는 아직 스왑을 작동시킬 수 없습니다. 때문에 스왑을 off 해줘야 합니다.

    # swapon && cat /etc/fstab
    # swapoff -a && sed -i '/swap/s/^/#/' /etc/fstap

  2. SELinux와 방화벽을 해제합니다. 저는 학습을 위한 환경으로 실제 업무에 이용하신다면 적절히 조율할 필요가 있습니다. 또한 이전 리눅스 명령어가 RedHat 기반이었던 것과는 반대로 컨테이너 과정은 ubuntu로 진행되어 ubuntu 기준으로 작성되었으니 이 점 유의해주시기 바랍니다.

    # setenfoce 0
    # ufw disable
    # systemctl stop firewalld
    # systemctl disable firewalld

    * 레드헷 기준 OS 는 다음 명령어를 입력하면 됩니다. 하지만 이는 학습환경을 위한 것이지 실무에서는 바로 전에 말한 것과 같이 이러한 환경은 적절하지 않을 수 있습니다.

    # grubby --update-kernel ALL --args selinux=0

  3. Linux  노드의 iptables가 bridged traffic을 정확하게 확인하고 제어 할 수 있도록 br_netfilter 모듈을 load하고 관련된 네트워크 파라미터를 설정합니다.

    # lsmod | grep br_netfilter

    해당 명령어를 입력할 시 다음과 같은 내용이 출력돼야 합니다.

    br_netfilter           24576  0
    bridge                155648  1 br_netfilter

    이 내용이 나오지 않는다면 다음 명령어를 사용해 줍니다.

    # modprobe br_netfilter

    이후 이전 명령어인 lsmod ~ 를 입력해주어 앞서 말한 내용이 출력되는지 확인합니다.

  4. 모듈과 네트워크 파라미터가 영구적으로 적재되도록 파일을 편집합니다.

    # cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
    br_netfilter
    EOF

    # cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF   
    sudo sysctl --system

  5. 쿠버네티스와 부가 파일들을 설치해 줍니다.

    # sudo apt-get update
    # sudo apt-get install -y apt-transport-https ca-certificates curl

    # sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

    # sudo apt-get update
    # sudo apt-get install -y kubelet kubeadm kubectl
    # sudo apt-mark hold kubelet kubeadm kubectl

  6. cgroupfs를 컨테이너 런타임과 kubelet에 의해서 제어할 수 있도록 구성합니다.

    # sudo mkdir /etc/docker

    # cat <<EOF | sudo tee /etc/docker/daemon.json
    {
      "exec-opts": ["native.cgroupdriver=systemd"],
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "100m"
      },
      "storage-driver": "overlay2"
    }
    EOF

여기까지 설치가 완료 되었습니다. 위 내용들은 말했던 것처럼 주석처리된 부분을 끝까지 입력해주면 설치가 완료되고 사용도 가능합니다. 이후에는 VM을 복사해 워커 노드를 생성해주고 IP를 다시 설정해 줍니다. 그리고 그 중 하나를 마스터 노드로 설정하면 컨테이너 환경의 구축이 마무리됩니다. 


다음 포스팅은 마스터 노드 지정 및 쿠버네티스 환경 구축에 대해 다뤄보려 합니다. 컨테이너에 들어서 다뤄야할 내용이 너무 많다보니 조금 늦어질 수 있을 듯하오니 양해 부탁드리겠습니다. 읽어주시는 독자분들에거 감사드리며 오늘 포스팅 마치도록 하겠습니다.

반응형