인프런 워밍업 클럽 4기 DevOps - 1주차 (2)

sanghyun·2025년 5월 31일
0
post-thumbnail

모든 강의 이미지 출처는 [인프런] 쿠버네티스 어나더 클래스(지상편) - Spring 1,2 입니다.

Section 4. 무게감 있게 쿠버네티스 설치

설치 환경


[3-1] Rocky Linux 버전 확인

[root@k8s-master ~] cat /etc/*-release

[3-2] hostname 확인

[root@k8s-master ~] hostname

[3-3] Network 확인

[root@k8s-master ~] ip addr

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

[root@k8s-master ~] lscpu
[root@k8s-master ~] free -h

[4] Rocky Linux 기본 설정

▶ 타임존 Asia/Seoul 설정 확인

[root@k8s-master ~] timedatectl

[5] kubeadm 설치 전 사전작업

▶ 방화벽 해제 확인

[root@k8s-master ~] systemctl status firewalld

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

[root@k8s-master ~] free
[root@k8s-master ~] cat /etc/fstab | grep swap

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

▶ iptables 세팅

[root@k8s-master ~] cat /etc/modules-load.d/k8s.conf
[root@k8s-master ~] cat /etc/sysctl.d/k8s.conf

[root@k8s-master ~] lsmod | grep overlay
[root@k8s-master ~] lsmod | grep br_netfilter

[6-2] 컨테이너 런타임 (containerd 설치)

▶ containerd 패키지 설치
https://github.com/containerd/containerd/blob/main/docs/getting-started.md#option-2-from-apt-get-or-dnf

▶ containerd 설치 확인

[root@k8s-master ~] systemctl status containerd

▶ CRI 활성화 설정 확인
Redhat 계열 리눅스의 경우 쿠버네티스 설치 시 default로 systemd가 세팅되기 때문에, containerd도 systemd로 변경하여 모드 systemd를 쓰는게 Core 사용에 부담이 없다.

[root@k8s-master ~] cat /etc/containerd/config.toml
# kubelet cgroup 확인 (configmap)
[root@k8s-master ~] kubectl get -n kube-system cm kubelet-config -o yaml
# kubelet cgroup 확인 (kubelet)
[root@k8s-master ~] cat /var/lib/kubelet/config.yaml

[7] kubeadm 설치

▶ repo 설치 확인

[root@k8s-master ~] yum repolist enabled

▶ SELinux 설정 확인

[root@k8s-master ~] cat /etc/selinux/config
[root@k8s-master ~] 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

# 로그 조회
[root@k8s-master ~] journalctl -u kubelet | tail -10


[8-1] 클러스터 초기화 (Pod Network 세팅)

▶ 클러스터 상태 확인

# 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-1] kubectl 자동완성 기능

▶ kubectl 기능 설정 확인

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

[9-2] Dashboard 설치

▶ dashboard 설치 확인

[root@k8s-master ~] kubectl get pod -n kubernetes-dashboard

[9-3] Metrics Server 설치

▶ metrics server 설치 확인

[root@k8s-master ~] kubectl get pod -n kube-system  | grep metrics
[root@k8s-master ~] kubectl top pod -A

profile
안하는 건 있어도, 못하는 건 없다

0개의 댓글