본문 바로가기
Tech

가상머신에 k8s 설치하기 (Google Compute Engine - Ubuntu 20.04 LTS)

by ohrohi 2024. 11. 26.
반응형

Docker 설치
https://docs.docker.com/engine/install/ubuntu/ 접속

1. 도커 키링(GPG-key) 설치
# Add Docker's official GPG key:
# apt-get update
# apt-get install ca-certificates curl
# install -m 0755 -d /etc/apt/keyrings
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
# chmod a+r /etc/apt/keyrings/docker.asc

2. 리포지토리 추가
# echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# apt-get update

3. 도커 패키지 설치
# apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4. 도커 패키지 설치 확인
# systemctl enable docker
# systemctl start docker
# docker --version
# ps -ef | grep docker

쿠버네티스 설치 (VM)
1. swap off 하기 - 쿠버 공식 홈에서 추천
# swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab

2. 브릿지 네트워크 리슨 하도록 지원설정
# cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# sysctl --system

3. 시스템 네트워크 설정 및 방화벽 off
# systemctl stop firewalld 
# systemctl disable firewalld

4. kubeadm, kubelet, kubectl 설치
- 공통 (Master, Node)
 - 패키지 업데이트 및 k8s apt 저장소 사용시 필요한 패키지 설치
# apt-get update
# apt-get install -y apt-transport-https ca-certificates curl gpg

 - k8s 패키지 저장소 공개 서명키 다운로드
# curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

 - k8s apt 저장소 추가 (1.31버전용)
# echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list


 - kubelet, kubeadm, kubectl 설치 및 확인
# apt-get update
# apt-get install -y kubelet kubeadm kubectl
# apt-mark hold kubelet kubeadm kubectl

 - kubelet 서비스 활성화
# systemctl start kubelet
# systemctl enable --now kubelet

5. control-plane 구성 (https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/)
<Master에서만 실행>
# vi /etc/containerd/config.toml
 -> 해당 문구 주석처리 해야 정상적으로 진행됨 disabled_plugins = ["cri"]
# kubeadm  init (master의 컴포넌트 생성 <API, Controller, schduler, etcd, coreDNS>)
 -> 마지막에 kubeadm join... 의 문구는 복사해놓는다

* kubectl get nodes (pods) 등등 명령어 사용하려면 아래의 설정 추가 <유저별 홈 디렉토리도 설정 가능> 
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

- pod 네트워크 설치
# kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml


6.worker-node 구성
- worker-node에서 아까 복사해놓은 'kubeadm join...' 을 실행한다.

반응형