[Ubuntu]쿠버네티스 설치

힐링힐링·2024년 8월 15일
0

Set up Docker

sudo apt update
sudo apt install docker.io -y
sudo systemctl enable docker
sudo systemctl status docker
sudo systemctl start docker

Install Kubernetes

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

Add Software Repositories

echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

Step 3: Install Kubernetes Tools

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

쿠버네티스 배포

필요한 도구를 설치한 후 클러스터 배포를 진행합니다. 아래 단계에 따라 필요한 시스템 조정을 하고, 클러스터를 초기화하고, 워커 노드에 가입합니다.

1단계: Kubernetes 배포 준비
이 섹션에서는 Kubernetes 배포를 위해 서버를 준비하는 방법을 보여줍니다. 각 서버 노드에서 아래 단계를 실행합니다.

  1. swapoff 명령 으로 모든 스왑 공간을 비활성화합니다 .
sudo swapoff -a

그런 다음 아래의 sed 명령을 사용하여 /etc/fstab 파일 에 필요한 조정을 수행합니다 .

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
  1. 필요한 containerd 모듈을 로드합니다. nano 와 같은 텍스트 편집기 에서 containerd 구성 파일을 열어 시작합니다 .
sudo nano /etc/modules-load.d/containerd.conf
  1. 다음 두 줄을 파일에 추가합니다.
overlay
br_netfilter

containerd 구성을 편집합니다.
파일을 저장하고 종료합니다.

  1. 다음으로, modprobe 명령을 사용하여 모듈을 추가합니다.
sudo modprobe overlay

sudo modprobe br_netfilter
  1. kubernetes.conf 파일을 열어 Kubernetes 네트워킹을 구성합니다.
sudo nano /etc/sysctl.d/kubernetes.conf
  1. 다음 줄을 파일에 추가합니다.
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

Kubernetes 구성을 편집합니다.
파일을 저장하고 종료합니다.

  1. 다음을 입력하여 구성을 다시 로드합니다.
sudo sysctl --system

시스템 구성을 다시 로드합니다.
2단계: 각 서버 노드에 고유한 호스트 이름 지정
1. 마스터 노드가 될 서버를 결정합니다. 그런 다음 해당 노드에 명령을 입력하여 그에 맞게 이름을 지정합니다.

sudo hostnamectl set-hostname master-node
  1. 노드가 될 서버에서 노드의 호스트 이름을 설정합니다 . (없다면 VM새로 만들어서 설정해라)
sudo hostnamectl set-hostname worker01

만약 기존 호스트 명을 변경했다면 아래 디렉토리에서도 같이 변경해줘야한다.

sudo nano /etc/hosts

재부팅하고

sudo reboot

잘 설치됐는지 확인해보자

hostname



2_1. worker01도 컨테이너를 이용해야되기 때문에 도커를 사용해야하는데, 따로 GUI 없이 커널을 이용해서. 실행시 커맨드를 입력못한다. 이를 해결하기위해 자동 실행및 창 가리는 명령어 실행

sudo systemctl start docker
sudo systemctl enable docker

3단계: 마스터 노드에서 Kubernetes 초기화

클러스터 노드에서 호스트 이름 설정을 마치면 마스터 노드로 전환하고 다음 단계에 따라 Kubernetes를 초기화합니다.

  1. 텍스트 편집기에서 kubelet 파일을 엽니다.
sudo nano /etc/default/kubelet
  1. 다음 줄을 파일에 추가합니다.
KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs"

저장하고 종료합니다.

  1. 구성을 다시 로드하고 kubelet을 다시 시작합니다.
sudo systemctl daemon-reload && sudo systemctl restart kubelet
  1. Docker 데몬 구성 파일을 엽니다.
sudo nano /etc/docker/daemon.json
  1. 다음 구성 블록을 추가합니다.

    {
      "exec-opts": ["native.cgroupdriver=systemd"],
      "log-driver": "json-file",
      "log-opts": {
      "max-size": "100m"
   },

       "storage-driver": "overlay2"
       }

daemon.json 파일을 편집합니다.
파일을 저장하고 종료합니다.

  1. 구성을 다시 로드하고 Docker를 다시 시작합니다.
sudo systemctl daemon-reload && sudo systemctl restart docker
  • 7번 과정이 안되어
    /etc/systemd/system/kubelet.service.d 디렉토리가 없다면, 직접 생성
sudo mkdir -p /etc/systemd/system/kubelet.service.d
  1. kubeadm 구성 파일을 엽니다.
sudo nano /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
  1. 다음 줄을 파일에 추가하세요:
# Note: This dropin only works with kubeadm and kubelet v1.11+
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
# The below configuration sets --fail-swap-on=false as a kubelet argument, which allows kubelet to run even if swap is not turned off.
Environment="KUBELET_EXTRA_ARGS=--fail-swap-on=false"
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
EnvironmentFile=-/etc/default/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_EXTRA_ARGS $KUBELET_NETWORK_ARGS $KUBELET_EXTRA_ARGS
  1. 구성을 다시 로드하고 kubelet을 다시 시작합니다.
sudo systemctl daemon-reload && sudo systemctl restart kubelet
  1. 마지막으로 다음을 입력하여 클러스터를 초기화합니다.
sudo kubeadm init --control-plane-endpoint=master-node --upload-certs

작업이 완료되면 출력은 kubeadm join 하단에 명령을 표시합니다. 이 명령을 기록해 두십시오. 워커 노드를 클러스터에 가입하는 데 사용하게 됩니다.

kubeadm join master-node:6443 --token 2xqh8x.qbhooq8lvp7yzcrc \
	--discovery-token-ca-cert-hash sha256:f7ae04dfc220be3f6f530b823aad393a8a18eeffe581a9ac28340b6c1e96ca5e 

참고
https://phoenixnap.com/kb/install-kubernetes-on-ubuntu

profile
블로그 이전합니다 https://james-kim-tech.tistory.com/

0개의 댓글