
워밍업 클럽 4기 DevOps - 미션 1
워밍업 클럽 4기 DevOps 미션 1 (쿠버네티스 설치 구간별 상태 확인)
쿠버네티스 설치 환경
💻 pc: mac book m3 pro(AArch64, 12 core, 18gb, 500gb)
🐧 linux: rocky9
🔨 tools: lima-vm
왜 lima-vm 을 사용했나?
Apple Silicon 맥 에서 Virtual Box 를 사용하는데 제약이 있고, 그외 다른 선택지가 있긴한데(UTM 등) VM이 필요한 작업에서 많이 활용하기도 했었고 docker 또한 lima-vm 을 활용해서 사용하고 있기 때문에 사용하게 되었습니다. Apple Silicon 맥에서 VM 을 빠르게 기동해서 활용하는데 있어 좋은 툴이라 생각합니다.
설치 구간별 상태 확인(맥북을 사용해서 4부터 시작)
4. Rocky Linux 기본 설정
타임존 설정 확인 (명령어:
timedatectl
)5. kudeadm 설치 전 사전 작업
1. 방화벽 해제 확인 (명령어:
systemctl status firewalld
)lima-vm 을 활용해서 linux 설치 시 별도의 설정을 해주지 않으면 방화벽을 포함하지 않고 설치가 된다.
스왑 비활성화 확인
6. 컨테이너 런타임 설치
iptables 세팅
명령어
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf overlay br_netfilter EOF sudo modprobe overlay sudo modprobe br_netfilter # 필요한 sysctl 파라미터를 설정하면, 재부팅 후에도 값이 유지된다. cat <<EOF | sudo 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 파라미터 적용하기 sudo sysctl --system
docker engin (containerd.io) 만 설치
명령어
yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
결과
containerd 설치 확인 (명령어:
systemctl status containerd
)설치 가능한 버전의 containerd.io 리스트 확인
cri 활성화 설정 확인 (명령어:
cat /etc/containerd/config.toml | grep SystemdCgroup
)kubelet cgroup 확인 (configmap)
(명령어:kubectl get -n kube-system cm kubelet-config -o yaml | grep cgroupDriver
)kubelet cgroup 확인 (kubelet)
(명령어:cat /var/lib/kubelet/config.yaml | grep cgroupDriver
)7. kubeadm 설치
repo 설정 확인
(명령어:yum repolist enabled
)8. kubeadm 으로 클러스터 생성
클러스터 초기화
(명령어:kubectl get node && kubectl cluster-info && kubectl get pods -n kube-system
)kubectl 사용 설정
(명령어:cat ~/.kube/config
)CNI Plugin 설치 (calico 대신 flannel 설치)
(명령어:kubectl get configmap kube-flannel-cfg -n kube-flannel -o yaml | grep Network
)
9. 쿠버네티스 편의 기능 설치
kubectl 기능 설정 확인
마무리 및 소감
실무에서는 주로 GKE나 EKS 같은 클라우드 기반 Kubernetes 서비스를 사용했기 때문에, 직접 리눅스 환경에 Kubernetes를 설치해본 경험은 이번이 처음이었습니다. Apple Silicon 맥북 위에 VM을 띄우고 설치를 진행했는데, 강사님의 가이드를 따르기보다는 개인적인 고집으로 다른 툴을 사용하거나 아키텍처를 변경하면서 설치 과정이 생각보다 순탄하지는 않았습니다. 결국 반나절 정도 삽질을 했던 것 같네요.
설치 과정에서 사용한 명령어나 겪었던 문제들, 해결 방법 등을 모두 이 글에 담기에는 내용이 너무 길어질 것 같고, 인프런 블로그 에디터가 개인적으로 불편하게 느껴졌던 점들(코드 블록, 번호 목록 등)도 있어서, 해당 내용은 복습하면서 개인 블로그에 따로 정리해볼 예정입니다.
댓글을 작성해보세요.