Exercise 3.2: Grow the Cluster

  1. 새로운 터미널을 열고 Worker로 SSH 접속

    ssh root@WORKER_IP_ADDRESS
  2. 실습 환경에 필요한 라이브러리 설치

    sudo apt update && sudo apt install -y \
    curl apt-transport-https vim git wget gnupg2 net-tools \
    software-properties-common lsb-release ca-certificates uidmap 
  3. 컨테이너 런타임 설치

    {
        cat <<EOF | sudo tee /etc/modules-load.d/kubernetes.conf
    overlay
    br_netfilter
    EOF
    
        sudo modprobe overlay
        sudo modprobe br_netfilter
        
        cat <<EOF | sudo tee /etc/sysctl.d/kubernetes.conf
    net.bridge.bridge-nf-call-iptables  = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    net.ipv4.ip_forward                 = 1
    EOF
    
        sudo sysctl --system
    
        sudo mkdir -p /etc/apt/keyrings
        curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
        echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
        sudo apt update && apt install -y containerd.io
        sudo containerd config default | tee /etc/containerd/config.toml
        sudo sed -e 's/SystemdCgroup = false/SystemdCgroup = true/g' -i /etc/containerd/config.toml
        sudo systemctl restart containerd
        
        cat <<EOF | sudo tee /etc/crictl.yaml
    runtime-endpoint: unix:///run/containerd/containerd.sock
    EOF
    }
  4. 쿠버네티스 설치 및 구동에 필요한 바이너리 설치

    {
        curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
        echo "deb  http://apt.kubernetes.io/  kubernetes-xenial  main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
        sudo apt update && sudo apt install -y kubelet=1.27.1-00 kubeadm=1.27.1-00 kubectl=1.27.1-00
        sudo apt-mark hold kubelet kubeadm kubectl
    }
  5. /etc/hosts 파일에 아래와 같은 라인 추가 - CP_IP_ADDRESS는 CP 노드 IP주소

    CP_IP_ADDRESS k8scp
  6. k8scp에 연결된 IP 주소 확인

    nslookup k8scp
  7. CP 노드에 연결된 터미널로 이동

  8. Worker 노드 조인 명령어 생성

    kubeadm token create --print-join-command --ttl 0
  9. Worker 노드에 연결된 터미널로 이동해서 위의 명령어를 실행하고 나온 명령어를 실행

Last updated