반응형
설치 전 유의 사항
이번 실습에서는 docker에서 이미지를 끌어와 하는 실습입니다. 다른 이미지 허브에서 다운로드 받으신다면 내용이 다소 다를 수 있으며, 제가 하는 쿠버네티스 실습은 베이스가 도커로 되어 있음을 알립니다. 물론 도커말고 다른 이미지 허브를 사용하셔도 전혀 문제는 없을 것으로 사료됩니다. 저처럼 도커를 이용하시려 한다면 도커를 VM에 다운로드 하는 방법은 아래 페이지에 들어가 보시면 됩니다.
kubenetes 다운로드
쿠버네티스는 설치가 다소 복잡합니다. 그래도 잘 따라올 수 있도록 작성해보겠습니다. 또한 이전 설명처럼 마스터와 워커 노드로 나뉘는데 이 중 마스터 노드는 코어는 최소 2개 이상, RAM도 2GB 이상 되어야 작동이 됩니다. 아래 내용 중 주석처리된(#) 내용을 입력해주시면 됩니다.
- 쿠버네티스는 아직 스왑을 작동시킬 수 없습니다. 때문에 스왑을 off 해줘야 합니다.
# swapon && cat /etc/fstab
# swapoff -a && sed -i '/swap/s/^/#/' /etc/fstap - SELinux와 방화벽을 해제합니다. 저는 학습을 위한 환경으로 실제 업무에 이용하신다면 적절히 조율할 필요가 있습니다. 또한 이전 리눅스 명령어가 RedHat 기반이었던 것과는 반대로 컨테이너 과정은 ubuntu로 진행되어 ubuntu 기준으로 작성되었으니 이 점 유의해주시기 바랍니다.
# setenfoce 0
# ufw disable
# systemctl stop firewalld
# systemctl disable firewalld
* 레드헷 기준 OS 는 다음 명령어를 입력하면 됩니다. 하지만 이는 학습환경을 위한 것이지 실무에서는 바로 전에 말한 것과 같이 이러한 환경은 적절하지 않을 수 있습니다.
# grubby --update-kernel ALL --args selinux=0 - Linux 노드의 iptables가 bridged traffic을 정확하게 확인하고 제어 할 수 있도록 br_netfilter 모듈을 load하고 관련된 네트워크 파라미터를 설정합니다.
# lsmod | grep br_netfilter
해당 명령어를 입력할 시 다음과 같은 내용이 출력돼야 합니다.
br_netfilter 24576 0
bridge 155648 1 br_netfilter
이 내용이 나오지 않는다면 다음 명령어를 사용해 줍니다.
# modprobe br_netfilter
이후 이전 명령어인 lsmod ~ 를 입력해주어 앞서 말한 내용이 출력되는지 확인합니다. - 모듈과 네트워크 파라미터가 영구적으로 적재되도록 파일을 편집합니다.
# 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 - 쿠버네티스와 부가 파일들을 설치해 줍니다.
# 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 - 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를 다시 설정해 줍니다. 그리고 그 중 하나를 마스터 노드로 설정하면 컨테이너 환경의 구축이 마무리됩니다.
다음 포스팅은 마스터 노드 지정 및 쿠버네티스 환경 구축에 대해 다뤄보려 합니다. 컨테이너에 들어서 다뤄야할 내용이 너무 많다보니 조금 늦어질 수 있을 듯하오니 양해 부탁드리겠습니다. 읽어주시는 독자분들에거 감사드리며 오늘 포스팅 마치도록 하겠습니다.
반응형
'Container > Kubernetes' 카테고리의 다른 글
[Kubernetes] Kubectl 명령어 모음 [1] 생성, 삭제, 복사 (0) | 2023.04.02 |
---|---|
[Kubernetes] Kubernetes가 애플리케이션을 배포, 운영하는 방식 (0) | 2023.04.02 |
[Kubernetes] 쿠버네티스 클러스터 요소들의 특징과 구동 방식 (0) | 2023.03.30 |
[Kubernetes] 쿠버네티스의 구성 요소 (0) | 2023.03.30 |
[Kubernetes] 왜 쿠버네티스를 사용하는가? (쿠버네티스 장점) + 개인적으로 생각하는 팁 (0) | 2023.03.29 |