본문 바로가기

인프런 복습 - 쿠버네티스 어나더 클래스

[Sptint1] 쿠버네티스 무게감 있게 설치하기 - 설정 확인

 

 

4. Rocky Linux 기본 설정

타임존 확인

timedatectl

 

 

 

 

 

5. kubeadm 설치 전 작업

systemctl status firewalld

 

swap 확인

free
cat /etc/fstab | grep swap

 

 

 

6. 컨테이너 런타임 설치

 

 

 

 

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

 

추가

cgroup

systemd

둘 중 하나로 맞춰야 함! 

 

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

docker 문서

containerd.io: docker가 직접 패키징해서 제공하는 containerd 버전으로 containerd를 그냥 설치하는 것보다 간편하다

 

docker 문서

runC등의 하위 종속성으로 필요한 패키지를 전부 다운해줌 (최신 Container 버전)

=> 반드시 쿠버네티스와 버전을 맞춰야함

=> 쿠버네티스와 맞는 버전 중에 EOL(End of Life) 확인 - LTS(Long Term Stable)로 사용 

=> containerd는 1.6.21 버전을 설치한다. 

 

 

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

 

toml: Tom's Obvious, Minimal Language 로 사람이 읽기 쉬우면서도 기계도 읽기 쉬워하는 파일 형식

 

 

kubelet cgroup확인 

kubectl get -n kube-system cm kubelet-config -o yaml
cat /var/lib/kubelet/config.yaml

=> 둘다 systemd로 일치 

 

 

7.kubeadm 설치

 

repo 설정 확인 

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

버전 확인
상태 보기

 

 

yum list --showduplicates kubeadm --disableexcludes=kubernetes

 

 

 

8. kubeadm으로 클러스터 생성 

8-1) 클러스터 초기화 

# 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

 

 

8-2) kubectl 사용 설정

인증서 설정 확인

cat ~/.kube/config

 

 

 

8-2) 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

=> 이상이 있다면 Calico를 삭제 후 재설치

 

 

8-4) Master에 Pod를 생성할 수 있도록 설정

=> 일반적으로 Master에 Pod를 생성하지 않기 때문에 Master에는 Pod 설치가 안됨. 

=> 그래서 설정을 바꿔주어야 한다 

kubectl describe nodes | grep Taints

 

 

 

9. 편의 기능 설치

9-1) kubectl 자동완성 기능

cat ~/.bashrc

 

 

 

9-2) Dashboard 설치

kubectl get pod -n kubernetes-dashboard

 

 

 

9-3) Metrics Server 설치

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