Configure Platform Reference¶
다음은 ansible로 쿠버네티스 클러스터를 구축하는 경우, 함께 설치되는 도커 및 nvidia 도커 버전 수정 등의 커스터마이징을 위한 가이드이다.
Customizing¶
Configure nvidia-docker¶
설치할 nvidia 도커 관련 커스터마이징을 하고자 하는 경우, 다음의 경로에 있는 파일을 수정하여 클러스터를 구축하면 된다. 해당 파일에서는 nvidia 도커를 구동하기 위한 도커 버전 수정, OS별 저장소 수정 등의 작업이 가능하다.
$ sudo vim kubespray/roles/nvidia-docker/defaults/main.yml
>>
---
docker_version: 18.09
# CentOS/RedHat nvidia_docker repo
libnvidia_container_rh_repo_base_url: https://nvidia.github.io/libnvidia-container/centos7/$basearch
libnvidia_container_rh_repo_gpgkey: https://nvidia.github.io/libnvidia-container/gpgkey
nvidia_container_runtime_rh_repo_base_url: https://nvidia.github.io/nvidia-container-runtime/centos7/$basearch
nvidia_container_runtime_rh_repo_gpgkey: https://nvidia.github.io/nvidia-container-runtime/gpgkey
nvidia_docker_rh_repo_base_url: https://nvidia.github.io/nvidia-docker/centos7/$basearch
nvidia_docker_rh_repo_gpgkey: https://nvidia.github.io/nvidia-docker/gpgkey
# Ubuntu nvidia_docker repo
libnvidia_container_ubuntu_repo_base_url: https://nvidia.github.io/libnvidia-container/ubuntu16.04/$(ARCH)
libnvidia_container_ubuntu_repo_gpgkey: https://nvidia.github.io/libnvidia-container/gpgkey
nvidia_container_runtime_ubuntu_repo_base_url: https://nvidia.github.io/nvidia-container-runtime/ubuntu16.04/$(ARCH)
nvidia_container_runtime_ubuntu_repo_gpgkey: https://nvidia.github.io/nvidia-container-runtime/gpgkey
nvidia_docker_ubuntu_repo_base_url: https://nvidia.github.io/nvidia-docker/ubuntu16.04/$(ARCH)
nvidia_docker_ubuntu_repo_gpgkey: https://nvidia.github.io/nvidia-docker/gpgkey
# Debian nvidia_docker repo
libnvidia_container_debian_repo_base_url: https://nvidia.github.io/libnvidia-container/debian9/$(ARCH)
libnvidia_container_debian_repo_gpgkey: https://nvidia.github.io/libnvidia-container/gpgkey
nvidia_container_runtime_debian_repo_base_url: https://nvidia.github.io/nvidia-container-runtime/debian9/$(ARCH)
nvidia_container_runtime_debian_repo_gpgkey: https://nvidia.github.io/nvidia-container-runtime/gpgkey
nvidia_docker_debian_repo_base_url: https://nvidia.github.io/nvidia-docker/debian9/$(ARCH)
nvidia_docker_debian_repo_gpgkey: https://nvidia.github.io/nvidia-docker/gpgkey
뿐만 아니라, 다음의 경로에 있는 파일을 수정하여 OS별 설치할 nvidia 도커 버전 및 버전 패키지 등을 설정할 수 있다.
$ sudo cd kubespray/roles/nvidia-docker/vars
# choose file that correspond with your OS
>>
---
nvidia_docker_kernel_min_version: '3.10'
nvidia_docker_versioned_pkg:
'latest': nvidia-docker2
'1.13': nvidia-docker2=2.0.3-1.docker1.13.1
'17.03': nvidia-docker2=2.0.3-1.docker17.03.2.ce
'stable': nvidia-docker2=2.0.3-1.docker17.03.2.ce
nvidia_docker_package_info:
pkg_mgr: apt
pkgs:
- name: "{{ nvidia_docker_versioned_pkg[docker_version | string] }}"
force: yes
nvidia_docker_repo_key_info:
pkg_key: apt_key
url: '{{ nvidia_docker_debian_repo_gpgkey }}'
repo_keys:
- "{{ lookup('file', 'nvidia-docker_gpg') }}"
nvidia_docker_repo_info:
pkg_repo: apt_repository
repos:
- deb {{ libnvidia_container_debian_repo_base_url }}
- deb {{ nvidia_container-runtime_debian_repo_base_url }}
- deb {{ nvidia_docker_debian_repo_base_url }}
Configure docker¶
마찬가지로 설치할 도커 관련 커스터마이징을 하고자 하는 경우, 다음의 경로에 있는 파일을 수정하여 클러스터를 구축하면 된다. 해당 파일에서는 도커 버전 수정, OS별 저장소 수정 등의 작업이 가능하다.
$ sudo vim kubespray/roles/container-engine/docker/defaults/main.yml
>>
---
docker_version: '18.09'
#docker_selinux_version: '17.03'
...
# Used to override obsoletes=0
yum_conf: /etc/yum.conf
yum_repo_dir: /etc/yum.repos.d
docker_yum_conf: /etc/yum_docker.conf
# CentOS/RedHat docker-ce repo
docker_rh_repo_base_url: 'https://download.docker.com/linux/centos/7/$basearch/stable'
docker_rh_repo_gpgkey: 'https://download.docker.com/linux/centos/gpg'
# Ubuntu docker-ce repo
docker_ubuntu_repo_base_url: "https://download.docker.com/linux/ubuntu"
docker_ubuntu_repo_gpgkey: 'https://download.docker.com/linux/ubuntu/gpg'
...
도커 역시 다음의 경로에서 OS에 맞게 도커 버전 및 버전 패키지 등을 수정할 수 있다.
$ sudo cd kubespray/roles/container-engine/docker/vars
# choose file that correspond with your OS
>>
docker_kernel_min_version: '3.10'
# https://download.docker.com/linux/debian/
# https://apt.dockerproject.org/repo/dists/debian-wheezy/main/filelist
docker_versioned_pkg:
'latest': docker-ce
'1.13': docker-engine=1.13.1-0~debian-{{ ansible_distribution_release|lower }}
'17.03': docker-ce=17.03.2~ce-0~debian-{{ ansible_distribution_release|lower }}
'17.06': docker-ce=17.06.2~ce-0~debian
'17.09': docker-ce=17.09.0~ce-0~debian
'17.12': docker-ce=17.12.1~ce-0~debian
'18.03': docker-ce=18.03.1~ce-0~debian
'18.06': docker-ce=18.06.2~ce~3-0~debian
'18.09': docker-ce=5:18.09.7~3-0~debian-{{ ansible_distribution_release|lower }}
'stable': docker-ce=5:18.09.7~3-0~debian-{{ ansible_distribution_release|lower }}
'edge': docker-ce=5:18.09.7~3-0~debian-{{ ansible_distribution_release|lower }}
...
Create kubernetes cluster¶
커스터마이징을 완료하였으면 다음의 명령어를 통해 쿠버네티스 클러스터를 구축하면 된다.
$ ansible-playbook -i inventory/mycluster/hosts.ini --become --become-user=root cluster.yml -e kube_version=v1.15.2