Kubernetes

[kubernetes] 쿠버네티스 무게감 있게 설치하기

모클 2024. 6. 20. 14:01
해당 포스팅은 인프런강의 [쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2] 를 기반으로 작성했습니다. 

 

[1-1] 내 PC 네트워크 확인

▶ 윈도우 > 실행 > cmd 입력 > 확인

c:\사용자>ipconfig

 

[1-2] 내 PC 자원 확인

▶ 윈도우 하단 상태바 우클릭 > 작업관리자 > 성능 탭

[1-3] VirtualBox 설치 버전 확인

▶ Virtualbox 실행 > 도움말 > Virtualbox 정보

[FAQ] : https://cafe.naver.com/kubeops/25

 

[1-4] Vagrant 설치 버전 확인

▶ 윈도우 > 실행 > cmd 입력 > 확인

 

[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

[FAQ] : https://cafe.naver.com/kubeops/27

[3-1] Rocky Linux 버전 확인

▶ k8s-master 원격접속 후 명령어 실행

[3-2] Hostname 확인

▶ k8s-master 원격접속 후 명령어 실행

[3-3], [3-4] Network 확인

▶ k8s-master 원격접속 후 명령어 실행

[3-5] 자원(cpu, memory) 확인

▶ k8s-master 원격접속 후 명령어 실행

[4] Rocky Linux 기본 설정

▶ 패키지 업데이트 진행

▶ 타임존 설정 확인

[5] kubeadm 설치 전 사전작업

 

▶ 방화벽 해제 확인

▶ 스왑(swap) 비활성화 확인

(스크립트로 적용된 명령: swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab) - 중복 실행할 필요는 없습니다.

 

[6] 컨테이너 런타임 설치

[6-1] 컨테이너 런타임 설치 전 사전작업

▶ iptables 세팅

 

[6-2-1-1] docker engine (containerd.io)만 설치

containerd 설치 확인

설치 가능한 버전의 containerd.io 리스트 확인

[6-3] 컨테이너 런타임 (CRI활성화)

▶ cri 활성화 설정 확인

 cat /etc/containerd/config.toml

▶ kubelet cgroup 확인 (configmap)

cat /var/lib/kubelet/config.yaml

▶ kubelet cgroup 확인 (kubelet)

 

[7] kubeadm 설치

▶ repo 설정 확인

yum repolist enabled

▶ SELinux 설정 확인

cat /etc/selinux/config
sestatus

▶ kubelet, kubeadm, kubectl 패키지 설치

#버전 보기
[root@k8s-master ~]# kubeadm version
[root@k8s-master ~]# kubectl version

#상태 보기
[root@k8s-master ~]# systemctl status kubelet

#설정 파일 위치
[root@k8s-master ~]# cat /var/lib/kubelet/config.yaml

#로그 조회
 journalctl -u kubelet | tail -10

▶ 설치 가능한 버전의 kubeadm 리스트 확인

yum list --showduplicates kubeadm --disableexcludes=kubernetes

[8] kubeadm으로 클러스터 생성

 

▶ 클러스터 상태 확인

# master node 상태확인
[root@k8s-master ~]# kubectl get node

# pod network cidr 설정 확인
[root@k8s-master ~]# kubectl cluster-info dump | grep -m 1 cluster-cidr

# apiserver advertise address 적용 확인
[root@k8s-master ~]# kubectl cluster-info

# kubernetes component pod 확인
[root@k8s-master ~]# kubectl get pods -n kube-system

[8-2] kubectl 사용 설정

▶ 인증서 설정 확인

[root@k8s-master ~]# cat ~/.kube/config

[8-3] CNI Plugin 설치 (calico)

▶ calico pod 설치 및 pod network cidr 적용 확인

 

# Calico Pod 상태 확인
[root@k8s-master ~]# kubectl get -n calico-system pod
[root@k8s-master ~]# kubectl get -n calico-apiserver pod

# Calico에 pod network cidr 적용 확인
[root@k8s-master ~]# kubectl get installations.operator.tigera.io default -o yaml  | grep cidr

[8-4] Master에 pod를 생성 할 수 있도록 설정

▶ Master Node에 Taint 해제 확인

[root@k8s-master ~]# kubectl describe nodes | grep Taints

 

[9] 쿠버네티스 편의 기능 설치

[9-1] kubectl 자동완성 기능

▶ kubectl 기능 설정 확인

[root@k8s-master ~]# cat ~/.bashrc

[9-2] Dashboard 설치

▶ dashboard 설치 확인

[9-3] Metrics Server 설치

▶ metrics server 설치 확인

 

 

감사합니다