K8s 0. 설치

skh951225·2023년 3월 18일
0

K8s

목록 보기
1/3

실습예제 : github
출처 : 따배쿠 0~(Youtube)

K8s 설치(window, m1)

1. Window에 Virtual Machine을 통해 환경구성

kubeadm으로 설치
윈도우 운영체제의 laptop(4core, ram 8g)
virtual machine으로 VM을 3개(Ubuntu 22.04 LTS) 만들었다. 각 VM에 2core, 메모리 2g를 할당해주고 도커를 설치해 주었다.(참고영상 / 2-1~2-4)
그리고 각 VM에 K8s(kubeadm,kubelet,kubectl)를 설치해주었다.
kubeadm : admin, kubernetes를 관리하는 역할
kubectl : command-line tool, kubernetes 명령어 관련
kubelet : kubernetes daemon

===========K8s 환경구성===========
swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
systemctl stop firewalld 
systemctl disable firewalld
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
sudo apt-get install containerd.io -y
sudo systemctl daemon-reload
sudo systemctl enable --now containerd
sed -i '/"cri"/ s/^/#/' /etc/containerd/config.toml
systemctl restart containerd

그리고 VM 3개중 마스터 노드에 CNI로 weave net addon을 설치해주고 kubenetese를 실행해 주었다.

===========weave net addon 설치===========
kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml
===========kubenetese 클러스터 실행===========
kubeadm init
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
cat > token.txt
kubeadm join 10.100.0.104:6443 --token
:
:
<ctrl+d>

나머지 2개의 VM(워커노드)에 저장해둔 토큰을 실행하여 마스터노드에 조인하였다. 하지만 pod 들이 CrashLoopBackOff 를 계속 반복하여 여러가지 방법을 시도해보았지만 메모리 사용량이 계속 90% 를 넘어가는 현상이 발생하여 컴퓨터 사양 문제라고 결론짓고 다른 방법을 강구해 보았다.
source <(kubectl completion bash) : kubectl 자동완성 기능 ON

2. M1 에 Minikube 설치

minikube 설치
M1 pro laptop(8core, 16g)
최근에 virtualbox가 M1 chip도 지원하는 베타버전을 출시하였다고 해서 Virtualbox를 이용해 VM을 만들어 보았는데 Ubuntu를 설치하려고하면 에러가 나서 실패하였다. 차선책으로 로컬환경에서 가볍게 쿠버네티스 환경을 구성할 수 있는minikube 를 설치해보았다. minikube는 docker desktop이 먼저 설치되어야한다.

# 설치 최소 사양
2Core CPU
2GB Memory
20GB Free Disk

# minikube 설치
brew install minikube

# k8s 환경 구성 (control plane 1개, worker node 2개)
minikube start \
 --driver='docker' \
 --kubernetes-version='stable' \
 --nodes=3

# 종료
minikube stop

minikube는 VM과 달리 하나의 노드를 컨테이너로 구성하였다. 따라서 노드에 접속하기 위해선 docker exec -it 노드이름 /bin/bash 를 입력해주면 된다. 쿠버네티스 입문자의 경우 minikube를 이용하는 것도 좋은 방법인것 같다.

0개의 댓글