Kubernetes on Cloud Private Hands-on Guide (Single Node)

 

  • IBM Cloud private 설치 가이드

본문에서는 IBM Cloud private CE(Community Edition)을 설치해 보겠습니다. IBM Cloud private과 관련된 내용은 ‘Kubernetes On Cloud Private’ 포스팅을 참조해 주시기 바랍니다.

 

  • IBM Cloud private 설치시 필요 하드웨어 스팩

  • 싱글노드로 IBM Cloud private 구성하기

IBM Cloud private의 아키텍쳐를 확인하시게 되면 기본적으로 3개의 노드(Master Node(Boot Node와 같이 사용 가능), Proxy Node, Worker Node)가 필요합니다. 하지만 Production 환경에서 운영할 것이 아니라 테스트 용도로 간단히 구성해보기에는 단일 노드 (VM 1EA)로도 구성해볼 수 있습니다. 아래의 절차를 따라해 주세요.

 

  • Bluemix Infra VM 생성

본문에서는 IBM Cloud private 을 설치하기 위해 Bluemix Infra(구. Softlayer) 자원을 사용합니다.
가상 서버 생성을 위해서는 디벨로퍼 웍스의 ‘IBM Cloud 가상서버 생성 및 관리하기’ (URL: https://ibm.biz/BdiN6Y )포스팅을 참조해 주시기 바랍니다.

 

Step1. IBM Bluemix Infrastructure 사용자 포탈을 통해 아래 정보를 가진 가상머신을 생성했습니다.
금번 핸즈온에서는 우분투 16.04 LTS 버전으로 실습하겠습니다.

  • Datacenter: Seoul(SEO01)
  • Hostname: pcsingle
  • Public IP: 169.56.126.22
  • Private IP: 10.178.9.155
  • OS: Ubuntu Linux 16.04 LTS Xenial Xerus Minimal Install (64 bit)
  • CPU: 1 x 2.0 GHz Core
  • RAM: 2GB
  • Disk(Local): 25GB
  • Network Port Speed: 100 Mbps Public & Private Network Uplinks

 

Step2. 가상머신에 접속해 설치된 패키지를 업데이트 합니다.

root@pcsingle:~# apt-get update

Get:1 http://mirrors.service.networklayer.com/ubuntu xenial InRelease [247 kB]

Get:2 http://mirrors.service.networklayer.com/ubuntu xenial-updates InRelease [102 kB] ……

 

Step3. 마스터 노드에서는 최소한의 vm.max_map_count 값이 262144를 보장해야 하기 때문에 아래와 같은 명령어를 입력합니다.

root@pcsingle:~# sudo sysctl -w vm.max_map_count=262144

vm.max_map_count = 262144

 

Step4. 파이썬과 도커를 설치합니다. 쿠버네티스를 사용하기 위해서 도커 설치가 필수입니다.

파이썬 설치

root@pcsingle:~# sudo apt install python

도커 설치 및 실행

root@pcsingle:~# curl -s https://get.docker.com/ | sudo sh

root@pcsingle:~# sudo systemctl start docker

 

Step5. 싱글노드가 아니라면 다수의 노드를 접속하기 위해 각 노드 접속 정보를 입력해주거나 SSH를 설정해 줘야 합니다. 싱글 노드에서는 추가 설정 없이 IBM Cloud private 를 설치하겠습니다. 아래 명령어를 통해 IBM Cloud 레지스트리에서 설치 이미지를 가져옵니다.

root@pcsingle:~# sudo docker pull ibmcom/cfc-installer:1.2.0

1.2.0: Pulling from ibmcom/cfc-installer

d54efb8db41d: Pull complete

f8b845f45a87: Pull complete

e8db7bf7c39f: Pull complete

9654c40e9079: Pull complete

6d9ef359eaaa: Pull complete

a881bbac5349: Pull complete

a9094d0a1d95: Pull complete

1509e7f394f5: Pull complete

87ab7e3b41f8: Pull complete

Digest: sha256:623e01f8f645cad358121acb033106a4a3f23e408f97c942da9a15ec8684c409

Status: Downloaded newer image for ibmcom/cfc-installer:1.2.0

root@pcsingle:~# sudo systemctl start docker

 

Step6. 가져온 이미지를 실행해 IBM Cloud private을 VM에 설치합니다. 해당 명령어를 실행한 폴더에 IBM Cloud private이 설치되므로 경로 설정에 유의해야 합니다.

root@pcsingle:~# sudo docker run -e LICENSE=accept –rm \

> -v “$(pwd)”:/data ibmcom/cfc-installer:1.2.0 cp -r cluster

 

Step7. 설치가 완료되면 cluster 폴더가 생성되고 그 하위에 쿠버네티스 동작을 위한 config.yaml 파일, 클러스터를 위한 노드 정보를 입력하는 hosts 파일, ldap과 같은 인증을 위한 misc 폴더, 여러 노드간 통신을 위해 Private SSH key를 저장해 놓을 ssh_key 파일(싱글 노드에서는 ssh_key 파일 사용하지 않음)이 생성됩니다.

 

Step8. Hosts 파일을 열어 master node, worker node, proxy node에 대한 정보를 확인합니다. 싱글 노드에서는 각 노드의 역할을 하나의 VM에서 진행하기 때문에 금번에 생성한 VM 정보만으로 hosts 파일을 구성합니다. 초기에 확인하면 아래와 같은 default 값으로 설정되어 있습니다. 노드의 HA 구성을 위해 master 노드와 proxy 노드에 복수개의 ip가 설정 될 수 있으며 리소스 관리를 위해 다수의 worker 노드가 추가 구성될 수 있습니다.

root@pcsingle:~/cluster# vi hosts

 

[master]

1.1.1.1

 

[worker]

2.2.2.2

2.2.2.9

 

[proxy]

3.3.3.3

 

Step9. 서버 생성시 확인했던 VM의 Public ip정보를 입력하고 저장합니다.

[master]

169.56.126.22

 

[worker]

169.56.126.22

 

[proxy]

169.56.126.22

 

Step10. SSH를 사용하지 않기 때문에 추가적으로 config.yaml 파일을 수정해야 합니다. 해당 파일에 노드의 패스워드를 입력함으로써 쿠버네티스가 동작할 수 있도록 합니다. 싱글 노드에서는 동일한 하나의 VM만 사용하기 때문에 모든 노드가 같은 패스워드를 사용한다는 가정하에 아래와 같이 내용을 마지막줄에 추가합니다.

ansible_user: root

ansible_ssh_pass: Nkhyd5Cm //각자의 VM 패스워드를 입력합니다.

ansible_ssh_common_args: “-oPubkeyAuthentication=no”

  • 보안적인 측면에서 yaml 파일에 비밀번호를 등록해 놓는 것은 보안 사고를 일으킬 수 있습니다. SSH를 통한 노드간 통신을 권장드립니다.

 

Step11. 수정된 노드 정보를 바탕으로 쿠버네티스를 실행합니다. 실행이 완료되면 CLI 하단에 IBM Cloud private 관리 콘솔 접속 정보가 나타나게 됩니다. 설치한 cluster 폴더 내에서 실행해야 합니다.

root@pcsingle:~/cluster# docker run -e LICENSE=accept –net=host –rm -t -v “$(pwd)”:/installer/cluster ibmcom/cfc-installer:1.2.0 install

 

쿠버네티스 설치가 완료되면 아래와 같이 쿠버네티스 구성 및 인증을 위한 파일들이 추가적으로 설치됩니다.

Step12. 관리 콘솔의 Default 접속 ID와 PW는 admin/ admin 입니다.
설치가 완료 된 후 아래 명령어를 통해 Certi 를 업데이트 합니다. 기존의 버전에서 업데이트 되었으므로, 미 업데이트 시 콘솔 접속이 안될 수 있습니다.

root@pcmaster:~/cluster#wget https://www.ibm.com/developerworks/community/files/form/anonymous/api/library/08eb2105-21e6-479b-8c5d-76a39e55c16a/document/3c1c3da4-ac5b-4c86-a495-2f6cba166734/media/update-cert.sh && bash update-cert.sh

 

 

Step13. IBM Cloud private 삭제하기

root@pcsingle:~/cluster# docker run -e LICENSE=accept –net=host –rm –name=installer -t -v $(pwd):/installer/cluster ibmcom/cfc-installer:1.2.0 uninstall

 

  • 참고 URL

개요: https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/W1559b1be149d_43b0_881e_9783f38faaff

아키텍쳐: https://www.ibm.com/support/knowledgecenter/SSBS6K_1.2.0/getting_started/architecture.html?view=kc#concept_d1n_rxq_pw

슬랙 초대: https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/W1559b1be149d_43b0_881e_9783f38faaff/page/Slack%20channel%20%28IBM%20Cloud%20technology%29%20sign%20up%20page

 

[설치]

필요 하드웨어 사양: https://www.ibm.com/support/knowledgecenter/SSBS6K_1.2.0/supported_system_config/system_reqs.html

사전 필요 설치: https://www.ibm.com/support/knowledgecenter/SSBS6K_1.2.0/installing/prep_cluster.html

SSH key 공유 및 ssh_key 폴더에 복사: https://www.ibm.com/support/knowledgecenter/SSBS6K_1.2.0/installing/ssh_keys.html

Docker 설치: https://subicura.com/2017/01/19/docker-guide-for-beginners-2.html

IBM Cloud private ce 설치 및 실행: https://www.ibm.com/support/knowledgecenter/SSBS6K_1.2.0/installing/install_containers_CE.html

실행: https://www.ibm.com/support/knowledgecenter/SSBS6K_1.2.0/installing/install_containers_CE.html

 

[튜토리얼]

https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/W1559b1be149d_43b0_881e_9783f38faaff/page/Tutorials

 

[kubectl cli 다운로드]

https://kubernetes.io/docs/tasks/tools/install-kubectl/

 

[git client 설치:우분투]

https://git-scm.com/book/ko/v1/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98

토론 참가

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