
인프런 워밍업클럽 4기 - 데브옵스 스터디
[미션1] 쿠버네티스 설치 구간별 상태 확인
[1-1] 내 PC 네트워크 확인
윈도우 > 실행 > cmd 입력 > 확인
c:\사용자>ipconfig

[1-2] 내 PC 자원 확인
> 윈도우 하단 상태바 우클릭 > 작업관리자 > 성능 탭

[1-3] VirtualBox 설치 버전 확인
Virtualbox 실행 > 도움말 > Virtualbox 정보

[1-4] Vagrant 설치 버전 확인
윈도우 > 실행 > cmd 입력 > 확인
c:\사용자>vagrant --version

[1-5] 원격접속(MobaXterm) 설치 버전 확인
MobaXterm 실행 > Help > About MobaXterm

[2-1] VirtualBox VM 확인
Virtualbox 실행 > VM Name 확인
네이밍 : <Vagrant 폴더명>_<VM Name>_<ramdom>

[2-2] 내 VM에 적용된 NAT 확인
Virtualbox 실행 > k8s_master-node 마우스 우클릭 > 설정 > 네트워크 > 어댑터 1

[2-3] 내 VM에 적용된 Host-Only Network 확인
Virtualbox 실행 > k8s_master-node 마우스 우클릭 > 설정 > 네트워크 > 어댑터 2

[2-4] VirtualBox Host-Only cidr 확인
파일 > 도구 > Network Manager

[3-1] Rocky Linux 버전 확인
k8s-master 원격접속 후 명령어 실행
cat /etc/*-release

[3-2] Hostname 확인
k8s-master 원격접속 후 명령어 실행
hostname

[3-3], [3-4] Network 확인
k8s-master 원격접속 후 명령어 실행
ip addr

[3-5] 자원(cpu, memory) 확인
k8s-master 원격접속 후 명령어 실행
lscpu
free -h


[4] Rocky Linux 기본 설정
타임존 설정 확인
timedatectl

[5] kubeadm 설치 전 사전작업
systemctl status firewalld

스왑(swap) 비활성화 확인
free
cat /etc/fstab | grep swap


[6] 컨테이너 런타임 설치
[6-1] 컨테이너 런타임 설치 전 사전작업
iptables 세팅
# 설정 세팅 확인
cat /etc/modules-load.d/k8s.conf
cat /etc/sysctl.d/k8s.conf
# 모듈 적제 확인
lsmod | grep overlay
lsmod | grep br_netfilter

[6-2-1-1] docker engine (containerd.io)만 설치
docker repo 설정 확인
yum repolist enabled

containerd 설치 확인
systemctl status containerd

설치 가능한 버전의 containerd.io 리스트 확인
yum list containerd.io --showduplicates | sort -r
[6-3] 컨테이너 런타임 (CRI활성화)
쿠버네티스 문서에 Kubelet의 Cgroup의 Default가 cgroupfs라고 말씀 드렸는데, 레드햇 계열 리눅스의 경우 systemd를 메인으로 프로세스를 실행시키는 시스템이기 때문에, 쿠버네티스 설치시 Default로 systemd가 세팅됩니다. 이 경우 containerd도 systemd로 변경하여 모두 systemd를 쓰는게 Core 사용에 부담이 없습니다.
cri 활성화 설정 확인
cat /etc/containerd/config.toml

kubelet cgroup 확인 (configmap)
kubectl get -n kube-system cm kubelet-config -o yaml

kubelet cgroup 확인 (kubelet)
cat /var/lib/kubelet/config.yaml

* kubelet에서 cgroup 수정 필요시 적용 방법
// 아래 두 군데에서 cgroupDriver를 systemd 혹은 cgroupfs로 변경
[root@k8s-master ~]# vi /var/lib/kubelet/config.yaml
[root@k8s-master ~]# kubectl edit -n kube-system cm kubelet-config
[root@k8s-master ~]# systemctl restart kubelet
[7] kubeadm 설치
yum repolist enabled

SELinux 설정 확인
cat /etc/selinux/config
sestatus


kubelet, kubeadm, kubectl 패키지 설치
#버전 보기
kubeadm version
kubectl version
#상태 보기
systemctl status kubelet
#설정 파일 위치
cat /var/lib/kubelet/config.yaml
#로그 조회
journalctl -u kubelet | tail -10


* stop 상태일 때는 아래 명령으로 올리기
systemctl restart kubelet
설치 가능한 버전의 kubeadm 리스트 확인
yum list --showduplicates kubeadm --disableexcludes=kubernetes
[8] kubeadm으로 클러스터 생성 [Kubernetes Docs]
[8-1] 클러스터 초기화 (Pod Network 세팅)
클러스터 상태 확인
# master node 상태확인
kubectl get node
# pod network cidr 설정 확인
kubectl cluster-info dump | grep -m 1 cluster-cidr
# apiserver advertise address 적용 확인
kubectl cluster-info
# kubernetes component pod 확인
kubectl get pods -n kube-system

* Cluster가 정상이 아닐 때는 아래 명령으로 reset후 다시 init 해주기.
* reset 실행 후 1분 정도 시간이 지난 후에 init을 해주세요.
kubeadm reset
kubeadm init --pod-network-cidr=20.96.0.0/12 --apiserver-advertise-address 192.168.56.30
[8-2] kubectl 사용 설정
인증서 설정 확인 [Kubernetes Docs]
cat ~/.kube/config

[8-3] CNI Plugin 설치 (calico) [Calico Docs]
calico pod 설치 및 pod network cidr 적용 확인
# Calico Pod 상태 확인
kubectl get -n calico-system pod
kubectl get -n calico-apiserver pod
# Calico에 pod network cidr 적용 확인
kubectl get installations.operator.tigera.io default -o yaml | grep cidr

* Calico 설치가 정상이 아닐 때 (Calico가 CrashLoopBackOff 상태고, coredns가 가 Pending 상태)
#Calico 삭제
kubectl delete -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/calico-3.26.4/calico.yaml
kubectl delete -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/calico-3.26.4/calico-custom.yaml
#Calico 재설치
[root@k8s-master ~]# kubectl create -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/calico-3.26.4/calico.yaml
[root@k8s-master ~]# kubectl create -f https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/calico-3.26.4/calico-custom.yaml
[8-4] Master에 pod를 생성 할 수 있도록 설정 [Kubernetes Docs]
Master Node에 Taint 해제 확인
kubectl describe nodes | grep Taints

[9] 쿠버네티스 편의 기능 설치
[9-1] kubectl 자동완성 기능
kubectl 기능 설정 확인
cat ~/.bashrc

[9-2] Dashboard 설치
dashboard 설치 확인 [kubernetes dashboard]
kubectl get pod -n kubernetes-dashboard

[9-3] Metrics Server 설치
metrics server 설치 확인 [kubernetes Metrics Server]
kubectl get pod -n kube-system | grep metrics
kubectl top pod -A

쿠버네티스 설치 완료.....!
'인프런 워밍업클럽' 카테고리의 다른 글
| Docker와 Containerd 명령 실습 (2) | 2025.06.17 |
|---|---|
| Application 기능으로 이해하기 - PVC/PV, Deployment, Service, HPA (3) | 2025.06.08 |
| Application 기능으로 이해하기 - Configmap, Secret (0) | 2025.06.05 |
| Application 기능으로 이해하기 - Probe (0) | 2025.06.04 |