이 글은 일프로 선생님의 쿠버네티스 어나더 클래스 지상편을 수강하고
복습 메뉴얼을 가이드에 따라 작성한 포스팅입니다
설치 과정 개요
Virtual Box (VB)를 설치한다 (1)
VB의 동작을 코드로 제어할 수 있는 Vagrant를 설치하고 (2)
스크립트를 실행한다 (3)
클라이언트 접속 툴인 MobaX Terminal을 설치 후 (4)
SSH 원격 접속을 한다 (5)
마지막으로 Pod의 상태를 확인하는 것으로 (6)
쿠버네티스 설처를 마무리한다
스크립트 설명
Rocky Linux 8을 설치한다
VM의 이름은 master-node 이다
명령어로 hostname을 입력하면 나오는 이름은 k8s-master이다
네트워크는 private_network로 설정했고 호스트와 연결될 IP주소는 192.168.56.30이다
다른 말로 Host-Only Network라고도 한다
+ 그리고 NAT가 기본으로 세팅이 된다. Out Bound가 아닌 In Bound로 외부에서 파일들을 다운받을 수 있게 해준다
메모리는 4Gi (현재 버전은 6Gi)
CPU는 4코어로 설정하셨다 (내 경우는 8로 해도 괜찮았다)
저렇게 두신 이유는 메모리는 같은 공간을 호스트, 게스트가 둘다 가리키면 안돼고
CPU같은 경우 호스트가 한가할때 게스트가 많이 점유해도 상관 없기 때문이라고 하셨다
(일프로님은 호스트로 다른 것을 거의 하지 않는다고 한다)
script를 default와 master로 나누셨는데, 이건 추후 멀티 노드 구성시를 위함이다
위 내용을 실행하면 아래처럼 구성된다
내용이 조금 더 추가되면 아래와 같다
설치
4. Rocky Linux 기본 설정
패키지 업데이트
yum -y update
타임존 설정
timedatectl set-timezone Asia/Seoul
Disk 확장 / Bug: soft lockup 설정 추가
# https://cafe.naver.com/kubeops/25
yum install -y cloud-utils-growpart
growpart /dev/sda 4
xfs_growfs /dev/sda4
echo 0 > /proc/sys/kernel/hung_task_timeout_secs
echo "kernel.watchdog_thresh = 20" >> /etc/sysctl.conf
[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.56.30 k8s-master
EOF
hosts 설정
cat << EOF >> /etc/hosts
192.168.56.30 k8s-master
EOF
5. kubeadm 설치 전 사전작업
방화벽 해제
systemctl stop firewalld && systemctl disable firewalld
스왑 비활성화
swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab
6. 컨테이너 런타임 설치
[6-1] 컨테이너 런타임 설치 전 사전작업 : iptables 세팅
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
[6-2] 컨테이너 런타임 (containerd 설치)
docker engine 설치 : repo 설정
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
containerd 패키지 설치 (option2)
yum install -y containerd.io-1.6.21-3.1.el8
systemctl daemon-reload
systemctl enable --now containerd
[6-3] 컨테이너 런타임 : cri 활성화
# defualt cgroupfs에서 systemd로 변경 (kubernetes default는 systemd)
containerd config default > /etc/containerd/config.toml
sed -i 's/ SystemdCgroup = false/ SystemdCgroup = true/' /etc/containerd/config.toml
systemctl restart containerd
7. kubeadm 설치
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
SELinux 설정
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
kubelet, kubeadm, kubectl 패키지 설치
yum install -y kubelet-1.27.2-150500.1.1.x86_64 kubeadm-1.27.2-150500.1.1.x86_64 kubectl-1.27.2-150500.1.1.x86_64 --disableexcludes=kubernetes
systemctl enable --now kubelet
8. kubeadm으로 클러스터 생성
클러스터 초기화 (Pod Network 세팅)
kubeadm init --pod-network-cidr=20.96.0.0/12 --apiserver-advertise-address 192.168.56.30
kubectl 사용 설정
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
CNI Plugin 설치 (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
Master에 Pod를 생성 할수 있도록 설정
kubectl taint nodes k8s-master node-role.kubernetes.io/control-plane-
9. 쿠버네티스 편의 기능 설치
kubectl 자동완성 기능
echo "source <(kubectl completion bash)" >> ~/.bashrc
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc
Dashboard 설치
kubectl create -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/dashboard-2.7.0/dashboard.yaml
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
문제 상황
현재 Windows 11 내 PC 환경에서
Calico Plugin 테스트시 비정상이 뜬다
재설치 및 재기동 + 네임스페이스 제거 등을 해보았지만 여전히 같다
추후 VM을 재설치를 해봐야겠다
'Infra, DevOps > 인프런 k8s 복습인증' 카테고리의 다른 글
[일프로님 k8s 복습인증] 5. App기능으로 이해 Probe (2) | 2024.02.05 |
---|---|
[일프로님 k8s 복습인증] 4. Object 그려보며 이해하기 (0) | 2024.01.24 |
[일프로님 k8s 복습인증] 3. 실무에서 느껴본 쿠버네티스가 정말 편한 이유 (1) | 2024.01.24 |
[일프로님 k8s 복습인증] 1. 컨테이너 한방 정리 (0) | 2024.01.23 |
hi hello... World >< 가장 아름다운 하나의 해답이 존재한다
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!