쿠버네티스 무게감 있게 설치하기 -미션1(2/2)

KIM HYUNMIN·2025년 5월 27일
0

타임존 설정 확인

timedatectl

kubeadm 설치 전 사전작업

  1. 방화벽 해제 확인
systemctl status firewalld


2. 스왑(swap) 비활성화 확인

free
cat /etc/fstab | grep swap

컨테이너 런타임 설치

  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

  1. docker repo 설정 확인
yum repolist enabled


3. containerd 설치 확인

systemctl status containerd

  1. 설정 가능한 버전의 containerd.io 리스트 확인
yum list containerd.io --showduplicates | sort -r

  1. cri 활성화 설정 확인
cat /etc/containerd/config.toml

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


7. kubelet cgroup확인(kubelet)

cat /var/lib/kubelet/config.yaml


변경을 원할시에 config.yaml 에서

// 아래 두 군데에서 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

kubeadm 설치

  1. repo 설정 확인
yum repolist enabled


2. SELinux 설정 확인
SELinux: Security Ehhanced Linux의 약자
파일 및 프로세스에 대한 접근 권한을 감시하고 제어하는 데 중점

[root@k8s-master ~]# cat /etc/selinux/config
[root@k8s-master ~]# sestatus


  1. kubelet,kubeadm,kubectl 관련

kubelet : kubelet은 노드에 배포되는 에이전트로 Kubernetes 마스터의 API 서버와 통신하며 노드가 수행 해야 할 명령을 받아 실행하고 노드의 상태 등을 마스터 로 전달하는 역할을 한다.

kubeadm : Kubeadm은 쿠버네티스 클러스터 생성을 위한 "빠른 경로"의 모범 사례로 kubeadm init 및 kubeadm join 을 제공하도록 만들어진 도구이다.
kubeadm은 실행 가능한 최소 클러스터를 시작하고 실행하는 데 필요한 작업을 수행한다

kubectl : 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


클러스터

  1. 클러스터 상태 확인
# 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

클러스터 정상 아닐때는 아래 명령어 실행

[root@k8s-master ~]# kubeadm reset
[root@k8s-master ~]# kubeadm init --pod-network-cidr=20.96.0.0/12 --apiserver-advertise-address 192.168.56.30
  1. kubectl 사용 설정
cat ~/.kube/config

  1. CNI Plugin 설치
# 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

Calico 설치가 정상 아닐때

#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

추가

  1. 마스터노드에 파드 생성가능 명령어

  2. 앨리어스 설정

  3. 대시보드 설정 확인

  4. 메트릭 서버 설치 확인 및 테스트

    파드별 cpu,memory 사용량 확인

완료~

profile
Linux,Window,Network,docker,kubernets

0개의 댓글