웹쟁이의 일상

[Kubernetes] 쿠버네티스 빠르고 쉽게 설치하기(Silicon Mac) 본문

k8s

[Kubernetes] 쿠버네티스 빠르고 쉽게 설치하기(Silicon Mac)

jellyChoi 2025. 4. 4. 23:50

쿠버네티스 빠르고 쉽게 설치하는 방법

 

1. Rocky Linux ISO 다운로드

 - download url : https://rockylinux.org/ko-KR/download

 

Download - Rocky Linux

다운로드 최신 로키 리눅스 설치 관련 있는 As you download and use Rocky Linux, the Rocky Enterprise Software Foundation invites you to be a part of the community as a contributor. There are many ways to contribute to the project, from docum

rockylinux.org

페이지에 들어가서 아래 화면이 뜨면 ARM탭 > 기본 이미지 > 최소 기능 ISO를 다운로드

 

2-1. UTM 다운로드

 - Apple ARM 기반 OS에서 가상 머신을 실행하기 위한 오픈소스 가상화 소프트웨어.

 - download url : https://github.com/utmapp/UTM/releases/download/v4.4.4/UTM.dmg

Applications 폴더로 드래그

 - UTM을 Applications폴더에 넣어준다.

 - 열기 클릭

UTM 초기 화면

 - 새 가상머신 만들기 클릭

- Linux를 설치해야 하므로 당연히 Linux 선택.

 

- Virtualize 선택. Emulate 방식은 속도가 느림.

 

 - 탐색 버튼을 눌러 다운받은 리눅스 이미지를 올려준 뒤 continue

memory : 4096, CPU Cores : 4

- size : 32gb

 

 - VM 내부에서 접근 가능하게 할 디렉토리를 선택적으로 지정 가능할 수 있음.

 - Share is read only : 선택 안함(선택 시 읽기 전용)

 - 이름은 k8s-master로 설정. Open VM Settins체크 후 저장.

 

 - 네트워크 탭으로 들어가서 고급 설정 보기 체크를 하면 아래 항목이 나온다.

 - 게스트 네트워크 설정 후 저장

 

 - 생성된 k8s-master 실행버튼 클릭

 - 부팅이 되면 Install Rocky Linux 9.5를 선택

 - 한국어 선택 후 계속 진행

- root 비밀번호 선택

- 비밀번호 설정 후 rootr가 비밀번호로 SSH 로그인하도록 허용에 체크

- 완료 후 설치요약 화면으로 돌아가면 설치 목적지 클릭

 

- 자동 설정(A)에 체크가 되어 있다. 그래도 완료 버튼 클릭.

- 네트워크 및 호스트 이름으로 들어와서 위 사진처럼 Ipv4 설정 탭 클릭 -> 주소 설정 -> 호스트이름 설정 후 저장.

- 설치 요약 화면으로 돌아와서 설치 시작 버튼 클릭.

 

-설치가 완료되면 시스템 재시작.

 

 - 시스템을 완전히 종료하고 표시된 CD/DVD에 설치이미지를 제거해 줘야 부팅디스크 순서가 바뀐다.

 - CD/DVD 선택 -> 초기화

 - 설치가 끝났다면 mac 터미널에서 SSH 접속. 

 - 연결을 할거냐고 물어보면 yes 입력.

 ssh root@192.168.64.10
The authenticity of host '192.168.64.10 (192.168.64.10)' can't be established.
ED25519 key fingerprint is SHA256:5wnoh+pO7uQbjgjyZiEig2YLzsGBRMkkGyrc9eAa80U.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.64.10' (ED25519) to the list of known hosts.
root@192.168.64.10's password:설정한 비밀번호 입력

 -SSH 연결이 되었다면 쿠버네티스 설치

echo '======== [4] Rocky Linux 기본 설정 ========'
echo '======== [4-1] 패키지 업데이트 ========'
# 강의와 동일한 실습 환경을 유지하기 위해 Linux Update 주석 처리
# yum -y update

echo '======== [4-2] 타임존 설정 ========'
timedatectl set-timezone Asia/Seoul
timedatectl set-ntp true
chronyc makestep

echo '======== [4-3] [WARNING FileExisting-tc]: tc not found in system path 로그 관련 업데이트 ========'
yum install -y yum-utils iproute-tc

echo '======= [4-4] hosts 설정 =========='
cat << EOF >> /etc/hosts
192.168.64.10 k8s-master
EOF

echo '======== [5] kubeadm 설치 전 사전작업 ========'
echo '======== [5] 방화벽 해제 ========'
systemctl stop firewalld && systemctl disable firewalld

echo '======== [5] Swap 비활성화 ========'
swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab

echo '======== [6] 컨테이너 런타임 설치 ========'
echo '======== [6-1] 컨테이너 런타임 설치 전 사전작업 ========'
echo '======== [6-1] iptable 세팅 ========'
cat <<EOF |tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

modprobe overlay
modprobe br_netfilter

cat <<EOF |tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

sysctl --system

echo '======== [6-2] 컨테이너 런타임 (containerd 설치) ========'
echo '======== [6-2-1] containerd 패키지 설치 (option2) ========'
echo '======== [6-2-1-1] docker engine 설치 ========'
echo '======== [6-2-1-1] repo 설정 ========'
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

echo '======== [6-2-1-1] containerd 설치 ========'
yum install -y containerd.io-1.6.21-3.1.el9.aarch64
systemctl daemon-reload
systemctl enable --now containerd

echo '======== [6-3] 컨테이너 런타임 : cri 활성화 ========'
containerd config default > /etc/containerd/config.toml
sed -i 's/ SystemdCgroup = false/ SystemdCgroup = true/' /etc/containerd/config.toml
systemctl restart containerd

echo '======== [7] kubeadm 설치 ========'
echo '======== [7] repo 설정 ========'
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF

echo '======== [7] SELinux 설정 ========'
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

echo '======== [7] kubelet, kubeadm, kubectl 패키지 설치 ========'
yum install -y kubelet-1.27.2-150500.1.1.aarch64 kubeadm-1.27.2-150500.1.1.aarch64 kubectl-1.27.2-150500.1.1.aarch64 --disableexcludes=kubernetes
systemctl enable --now kubelet

echo '======== [8] kubeadm으로 클러스터 생성  ========'
echo '======== [8-1] 클러스터 초기화 (Pod Network 세팅) ========'
kubeadm init --pod-network-cidr=20.96.0.0/16 --apiserver-advertise-address 192.168.64.10

echo '======== [8-2] kubectl 사용 설정 ========'
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

echo '======== [8-3] Pod Network 설치 (calico) ========'
kubectl create -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/calico-3.26.4/calico.yaml
kubectl create -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/calico-3.26.4/calico-custom.yaml

echo '======== [8-4] Master에 Pod를 생성 할수 있도록 설정 ========'
kubectl taint nodes k8s-master node-role.kubernetes.io/control-plane-

echo '======== [9] 쿠버네티스 편의기능 설치 ========'
echo '======== [9-1] kubectl 자동완성 기능 ========'
yum -y install bash-completion
echo "source <(kubectl completion bash)" >> ~/.bashrc
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc
source ~/.bashrc

echo '======== [9-2] Dashboard 설치 ========'
kubectl create -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/dashboard-2.7.0/dashboard.yaml

echo '======== [9-3] Metrics Server 설치 ========'
kubectl create -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/metrics-server-0.6.3/metrics-server.yaml

 - 위 명령어를 통째로 복사해서 붙여넣어도 되지만 혹시나 에러가 날 수 있으니 한줄 한줄 차례로 커맨드 입력을 해 준다.

 

 - 설치가 완료됐다면 아래 커맨드를 입력해서 Pod 확인을 해 준다.

k get pods -A

 

아래 주소로 대시보드에 접속

https://192.168.64.10:30000/#/login

※주의 요함이 뜬다면 고급 버튼을 누르고 강제 이동한다.

 - 토큰 설정을 안했기 때문에 생략 버튼을 누르고 넘어간다.

 - 로고 옆 select박스를 눌러서 모든 네임스페이스를 선택하면 아래 화면처럼 데이터가 나온다.

 

 

 

 

출처: https://www.inflearn.com/course/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EC%96%B4%EB%82%98%EB%8D%94-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%A7%80%EC%83%81%ED%8E%B8-sprint1

'k8s' 카테고리의 다른 글

[Kubernetes] 컨테이너 한방 정리  (0) 2025.04.04
Comments