Profile picture

[k8s] 쿠버네티스 설치 후 구간별 상태 점검하기

JaehyoJJAng2024년 01월 11일

◾️ 구간별 상태확인

이전 게시글 : [k8s] 쿠버네티스 무게감 있게 설치하기
쿠버네티스를 설치한 후 서버에 접속하여 구간 별로 이상이 없는지 확인해보는 작업을 해볼 것이다.


▪️master / worker

  • [4] ~ [7]까지는 쿠버네티스 기본 설치이다. 해당 순번의 작업은 모든 node(master/worker)에 동일하게 적용됨.
  • [8] ~ [9]까지는 master node에만 적용

image

[4] Rocky Linux 기본설정

패키지 업데이트 진행

$ yum -y update

▶ 실행 결과
image


타임존 설정 확인
(스크립트로 적용된 명령: timedatectl set-timezone Asia/Seoul)

$ timedatectl

▶ 실행 결과
image


[5] kubeadm 설치 전 사전작업

방화벽 해제 확인
(스크립트로 적용된 명령: systemctl stop firewalld && systemctl disable firewalld)

$ systemctl status firewalld

▶ 실행 결과
image


스왑(swap) 비활성화 확인

$ free -m
$ cat /etc/fstab | grep 'swap'

▶ 실행 결과
image
Swap에 할당된 자원이 없어야 하고 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"

▶ 실행 결과
image
Kubernetes Docs


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

[6-2-1] containerd 패키지 설치


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

docker repo 설정 확인
(스크립트로 적용된 명령: yum install -y yum utils, yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo)

$ yum repolist enabled | grep 'docker'

▶ 실행 결과
image


containerd 설치 확인
(스크립트로 적용된 명령: yum install -y containerd.io-1.6.21-3.1.el8)

$ systemctl status containerd | grep -i 'active'

▶ 실행 결과
image


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

$ yum list containerd.io --showduplicates | sort -r | head -n 10

▶ 실행 결과
image


[6-3] 컨테이너 런타임 (CRI로 설치)

cri 활성화 확인
(스크립트로 적용된 명령: sed -i 's/^disabled_plugins/#disabled_plugins/' /etc/containerd/config.toml)

$ cat /etc/containerd/config.toml | grep 'cri'

▶ 실행 결과
image


[7] kubeadm 설치

repo 설정 확인

$ yum repolist enabled | grep 'kuber'

▶ 실행 결과
image


SELinux 설정 확인

$ cat /etc/selinux/config
$ sestatus

▶ 실행 결과
image


kubelet, kubeadm, kubectl 패키지 설치
(스크립트로 적용된 명령: yum install -y kubelet-1.27.1-0.x86_64 kubeadm-1.27.1-0.x86_64 kubectl-1.27.1-0.x86_64 --disableexcludes=kubernetes)

$ kubeadm version
$ kubectl version
$ systemctl status kubelet | grep -i 'active'

▶ 실행 결과
image


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

$ yum list --showduplicates kubeadm --disableexcludes=kubernetes | head -n 10

▶ 실행 결과
image


▪️ master

[8] kubeadm 클러스터 생성


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

클러스터 상태 확인
(스크립트로 적용된 명령: kubeadm init --pod-network-cidr=20.96.0.0/12 --apiserver-advertise-address 192.168.56.30)

# 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

▶ 실행 결과
image


[8-2] kubectl 사용 설정

인증서 설정 확인

$ cat ~/.kube/config

▶ 실행 결과
image


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

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

▶ 실행 결과
image


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

Master Node에 Taint 해제 확인
(스크립트로 적용된 명령: kubectl taint nodes k8s-master node-role.kubernetes.io/control-plane-)

$ kubectl describe nodes | grep 'Taints'

▶ 실행 결과
image


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

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

kubectl 기능 설정 확인

$ cat ~/.bashrc

▶ 실행 결과
image


[9-2] Dashboard 설치

dashboard 설치 확인

$ kubectl get pod -n kubernetes-dashboard

▶ 실행 결과
image


[9-3] Metrics Server 설치

metrics server 설치 확인

$ kubectl get pod -n kube-system | grep 'metrics'
$ kubectl top pod -A

▶ 실행 결과
image
image

📕 Ref

[인프런] 쿠버네티스 어나더 클래스 (지상편)


Loading script...