January
22nd,
2021
쿠버네티스 설치
설치환경
- 메모리: 2GB, CPU: 2코어
- 운영체제: 우분투 18.04 LTS
- 1개 이상의 마스터 노드 서버
- 1개 이상의 워커 노드 서버
설치과정
도커 설치
마스터, 워커 노드 모두 설정
모든 과정은 sudo 권한으로 이루어짐
- 스왑메모리 비활성화 후 리부트
swapoff -a
sed -i '2s/^/#/' /etc/fstab
reboot
-
# 패키지 관리 도구 업데이트 apt update apt-get update
-
apt-get install apt-transport-https ca-certificates curl software-properties-common -y
```
-
# gpg key 내려받기 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
-
# 패키지 관리도구에 도커 다운로드 링크 추가 add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
-
# 패키지 관리 도구 업데이트 apt-get update
-
# kubernetes에 맞도록 도커 18.06.2~3 버전 설치 (최신버전은 안될 수 있음) apt-get install docker-ce=18.06.2~ce~3-0~ubuntu -y
-
# 도커 명령어가 실행되는지 확인 docker ps
-
kubernetes에서 권장하는 도커 데몬드라이버는 systemd 이므로 도커 데몬의 드라이버를 교체한다.
cat > /etc/docker/daemon.json <<EOF { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF
mkdir -p /etc/systemd/system/docker.service.d systemctl daemon-reload systemctl restart docker
쿠버네티스 설치
마스터, 워커 노드 둘 다 설치
-
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
-
cat <<EOF | tee /etc/apt/sources.list.d/kubernetes.list deb https://apt.kubernetes.io/ kubernetes-xenial main EOF
-
apt-get update
-
apt-get install -y kubelet kubeadm kubectl
-
# 패키지가 자동으로 설치, 업그레이드, 제거되지 않도록 함 apt-mark hold kubelet kubeadm kubectl
-
# 설치 완료 확인 kubeadm version kubelet -version kubectl version
마스터 노드 세팅
-
호스트 네트워크의 ip를 확인
ifconfig
마스터 노드의 IPv4 주소를 확인 후 복사
-
마스터 노드 생성 및 실행
# 예시로 마스터노드 IP는 192.168.99.102 라고하고 # 대역폭은 192.168.0.0/16이라고 가정 kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=192.168.99.102
-
명령어 실행하면 다음과 같은 긴 메시지가 나올텐데
kubeadm join
에 해당하는 메시지를 복사해서 저장해둔다(사용할 수 있는 유효기간이 있으니 주의)kubeadm join 192.168.99.102:6443 --token fnbiji.5wob1hu12wdtnmyr --discovery-token-ca-cert-hash sha256:701d4da5cbf67347595e0653b31a7f6625a130de72ad8881a108093afd06188b
-
root 계정이 아닌 다른 사용자 계정에서 kubectl 커맨드를 사용하도록 하는 명령어다
mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config
-
네트워크 설치는 calico로 한다.
kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
-
마스터 노드가 잘 세팅되어 있는지 확인한다.
kubectl get nodes kubectl get pod --namespace=kube-system -o wide
워커 노드 세팅
워커 노드에서 마스터 노드를 세팅할 때 복사해두었던 kubeadm join
명령어를 사용한다.
kubeadm join 192.168.99.102:6443 --token fnbiji.5wob1hu12wdtnmyr --discovery-token-ca-cert-hash sha256:701d4da5cbf67347595e0653b31a7f6625a130de72ad8881a108093afd06188b
잘 추가되었는지 확인하려면 마스터 노드에서 kubectl get nodes
명령어를 사용한다
kubectl get nodes