일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- SQL
- 스프링
- MSI
- 마이바티스
- Python
- 회원가입
- 파이썬
- 쿠버네티스
- 다국어처리
- LOL
- k8s
- 롤토체스 꿀팁
- 리그오브레전드
- Java
- 롤
- jQuery
- 이메일인증
- 쿠버네티스 어나더 클래스
- 알고리즘
- Database
- mac jdk 설치
- jdk
- 데이터베이스
- 테이블
- Spring
- tomcat
- NoSQL
- 자바스크립트
- oracle
- 롤토체스
- Today
- Total
웹쟁이의 일상
[Kubernetes] 쿠버네티스 빠르고 쉽게 설치하기(Silicon Mac) 본문
쿠버네티스 빠르고 쉽게 설치하는 방법
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
- UTM을 Applications폴더에 넣어준다.
- 열기 클릭
- 새 가상머신 만들기 클릭
- 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박스를 눌러서 모든 네임스페이스를 선택하면 아래 화면처럼 데이터가 나온다.
'k8s' 카테고리의 다른 글
[Kubernetes] 컨테이너 한방 정리 (0) | 2025.04.04 |
---|