안녕하세요, 양현주입니다.

오늘 포스팅에서는 Kubernetes 기반의 프라이빗 클라우드 플랫폼인
IBM Cloud Private의 상용버전 (Cloud Native 혹은 Enterprise 버전)을 설치해보도록 하겠습니다.

설치하기에 앞서 필요한 하드웨어 사양, IBM Cloud Private 구성 아키텍처는 각 링크를 참고하시기 바랍니다.

1단계 – 클러스터 노드 구성하기

보다 상세한 정보는 공식 온라인 문서인 Knowledge Center를 참고하세요.

본 실습은 Ubuntu 16.04 와 Docker CE 를 설치한 환경을 사용합니다.
RedHat 혹은 Docker EE 를 사용하시는 경우 설치하는 과정이 상이할 수 있으니 참고하시기 바랍니다.

[Host 파일 수정하기]

저는 Master Node 1, Proxy Node 1, Management Node 1, Worker Node 1 로 구성했습니다.
여기서 Master/Proxy/Management 노드는 클러스터 관리 노드에 속하며, Worker 노드는 애플리케이션과 같은 워크로드를 실행하는 노드로 보시면 됩니다.
즉, 저는 네 개의 노드로 IBM Cloud Private 클러스터를 구성하도록 했으며 워크로드 증가시 설치 이후에도 Worker Node를 클러스터에 추가하여 확장할 수 있습니다.

상호 호스트네임을 식별하기 위해 클러스터를 구성하는 모든 머신 (VM 혹은 물리 서버)에 있는 /etc/hosts 파일을 수정합니다. 아래 ip 와 hostname 은 예시입니다. 클러스터로 구성하고자 하는 머신의 ip 와 hostname을 입력하시면 됩니다.

10.10.80.172 iccuser19-xenial-cloud02
10.10.80.206 icp-proxy1
10.10.80.173 iccuser19-xenial-cloud03
10.10.80.208 icp-mng

저는 아래와 같이 Node 정보를 입력했습니다.

[필요한 소프트웨어 설치하기]

  1. 클러스터를 구성하는 모든 노드 간 네트워크 연결 여부를 확인합니다. 각 노드에서 해당 노드 외 다른 모든 노드로의 연결이 되는지 반드시 테스트 해보시기 바랍니다.
  2. Master Node에서 vm.max_map_count 셋팅을 최소 262144로 셋팅합니다.
    1. vm.max_map_count 파라미터의 값을 확인합니다.

      sudo sysctl vm.max_map_count

    2. vm.max_map_count 값이 262144 이하라면 아래 명령어를 실행합니다.

      sudo sysctl -w vm.max_map_count=262144

    3. 시스템 재시작 후에도 값을 유지할 수 있도록 설정값을 /etc/sysctl.conf 파일에 입력합니다. 루트 유저로 아래 명령어를 수행해야 합니다.

      echo "vm.max_map_count=262144" | tee -a /etc/sysctl.conf

  3. Master Node에서 포트 범위를 설정합니다.
    1. 먼저 net.ipv4.ip_local_port_range 값을 확인합니다.

      sudo sysctl net.ipv4.ip_local_port_range

    2. 만약 출력값이 10240 미만이라면, 아래 명령어를 실행합니다.

      sudo sysctl -w net.ipv4.ip_local_port_range="10240 60999"

    3. 시스템 재시작 후에도 값을 유지할 수 있도록 설정 값을 /etc/sysctl.conf 파일에 입력합니다. 루트 유저로 아래 명령어를 실행합니다.

      echo 'net.ipv4.ip_local_port_range="10240 60999"' | tee -a /etc/sysctl.conf

  4. Docker 설치하기
    Kubernetes는 Docker Container를 기반으로 합니다. Master Node에만 Docker 를 설치하면 IBM Cloud Private 설치시 나머지 Node에도 자동으로 Docker 를 설치하게 되므로, 본 튜토리얼에서는 하나의 Master Node에만 Docker 를 설치하겠습니다.

    1. Docker pre-req 패키지
    2. sudo apt-get update -y
      sudo apt-get install -y python unzip nfs-common jq
      sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
    3. Docker-CE 설치하기
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    sudo apt-get update
    sudo apt-get install -y docker-ce
    service docker start
    sudo apt-get install -y python-pip
    docker version

    docker version 값이 출력되면 docker가 정상적으로 설치된 것입니다.

  5. 모든 노드에 Python 설치하기
apt-get update
apt-get install -y python-pip

[인증 방식 설정하기 (SSH Key로 인증)]

  1. Master/Boot 노드에 Root로 접속 후 아래 명령어를 수행하여 SSH Key 생성:

    ssh-keygen -b 4096 -t rsa -f /root/.ssh/id_rsa -N ""

  2. 생성된 SSH Key 확인

    cat /root/.ssh/id_rsa.pub | sudo tee -a /root/.ssh/authorized_keys

  3. Master Node로부터 아래 [ip 주소=10.10.80.xxx] 자리에 각 노드 (Master Node, Proxy Node, Management Node, Worker Node, NFS 등) 의 IP 주소를 입력하여 아래 스텝을 수행합니다.
    ssh -t root@10.10.80.206 'mkdir -p /root/.ssh'  
    scp /root/.ssh/id_rsa.pub root@10.10.80.206:/root/.ssh/id_rsa.pub
    ssh -t root@10.10.80.206 'cat /root/.ssh/id_rsa.pub | tee -a /root/.ssh/authorized_keys;echo "PermitRootLogin yes" | tee -a /etc/ssh/sshd_config'
    ssh-keyscan 10.10.80.206 | tee -a /root/.ssh/known_hosts
  4. 여기까지 SSH Key 셋팅이 완료되면 Master Node로부터 다른 노드로 패스워드 없이 접속이 가능합니다.
    Master Node로부터 다른 Node로 패스워드 없이 로그인 되는지 반드시 확인 해보시기 바랍니다.
    예를 들어, ssh root@<proxy-node-ip> 와 같이 입력시 패스워드 입력 없이 바로 다른 노드에 접속이 된다면 셋팅이 완료된 것입니다.

여기까지 IBM Cloud Private 설치를 위한 기본 설정 단계였습니다.
이제 다음 포스팅에서 본격적으로 IBM Cloud Private을 설치하겠습니다.

2단계 – IBM Cloud Private클러스터 설치하기

토론 참가

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다