Vagrant를 사용한 RockyLinux 설치
3-1 OS를 Rocky Linux 8버전으로 설치 - 이미지 다운 시간 걸림
2-1 Virtualbox 입장에서 생성된 VM의 이름을 붙여주는 부분
3-2 Hostname 지정
2-3 Host-Only Network라고 해서 내 PC에서만 사용할 수 있는 네트워크 망을 만들어 줌
3-4 내 리눅스에 ip 할당, 내 PC에서 이 IP로 원격 접속을 하면 리눅스OS에 들어갈 수 있게 됨 또한 쿠버네티스 대시보드 접속 가능
1-4 스크립트를 넣지 않아도 Vagrant가 기본적으로 만들어주는 네트워크도 있음
NAT라는 네트워크로 IP도 알아서 할당 해주며 내 VM을 외부 인터넷이랑 연결을 시켜줌
NAT란?(Network Address Translation)
Private IP 뿐인 내 컴퓨터의 IP를 공유기 자신의 공인 IP로 변환
공유기를 지나 외부 인터넷으로 나아갈 때에는 공유기의 공인IP를 가지고 원하는 Destination Address로 향함
3-5 메모리는 4기가, CPU는 4코어
- memory 영역은 할당된 부분을 침범할 수 없지만 cpu는 필요할 때 서로 나눠쓰는 구조라 전부 할당해도 됨
전체 쿠버네티스 워커노드에 공통으로 들어갈 기본 명령어랑 마스터 노드에만 들어갈 명령을 구분
Kubernetes 설치
Kubeadm을 사용한 설치 (모든 node)
5 설치 전 사전작업
- 방화벽 해제, 스왑 비활성화
6 컨테이너 런타임 설치
- 컨테이너 런타임 설치 전 사전작업 : iptables 세팅
- 쿠버네티스와 컨테이너 런타임을 설치할 때 cgroupfs와 systemd를 맞춰서 설치해야 함
- 컨테이너 런타임(containerd) 설치
- containerd 패키지 설치(option2)
- docker engine 설치 : repo 설정, containerd 설치(버전 중요)
- containerd 패키지 설치(option2)
- 컨테이너 런타임 : cri 활성화
7 kubeadm 설치
- repo 설정, SELinux 설정, kubelet, kubeadm, kubectl 패키지 설치
Master Node 세팅
8-1 클러스터 초기화
- kubeadm으로 클러스터를 초기화하면 kubernetes 컴포넌트들이 만들어짐
- 모두 pod 형태로 기동이 되고 이미지를 인터넷에서 받아오기에 시간이 걸림
- cidr을 지정해서 Pod Network 대역을 새로 지정할 수 있음(cidr 계산기)
- k8s 설치가 끝나면 k8s에 접속할 수 있는 인증서가 만들어져 있음
8-2 kubectl 사용 설정
- kubectl 사용 설정이라는 게 인증서를 가져와서 kubectl이 사용할 수 있게 설정
- 이 kubectl로 kube-apiserver에 api를 날리면서 CLI 통신을 할 수 있게 됨
8-3 CNI Plugin 설치
- CNI(Container Network Interface)는 컨테이너들 간의 통신을 관리하는 부분에 대한 Kubernetes와 네트워크 간의 인터페이스
- calico 네트워크를 제공하는 여러 솔루션 중에 하나
iptables에 대해
대시보드 설치가 끝나면 pod network로 부터 받은 ip가 만들어짐
그리고 내 리눅스 네트워크에는 30000 포트가 열려있음
이 포트로 접속을 하면 리눅스의 iptables를 거쳐서 calico의 네트워크 망으로 들어가고 이 망 내에서 대시보드ip를 찾음
이후 iptables로 들어가 보면 내 30000포트가 대시보드 ip랑 매칭되어 있음을 확인할 수 있음
8-4 Master에 Pod를 생성 할 수 있도록 설정
- kubeadm에서 생성되는 컴포넌트들이나 대시보드는 이 파드들이 마스터에 올라가도록 설정
- 일반적으로 마스터에 유저가 만든 파드는 올리지 않음
9-1 kubectl 자동완성 기능
- kubectl tab 누르면 자동완성 되는 편의 기능
9-2 Metrics Server 설치
- container에 대한 CPU나 메모리는 컨테이너 런타임에 의해서 기본적으로 관리가 됨
- Metrics Server는 metric 정보를 조회하고 대시보드에 CPU랑 메모리 정보가 표시 됨
- 또한 kube-apiserver가 전체 컴포넌트들에 연결을 해주는 중앙통힌 역할을 하다 보니 CPU가 올라갈 때가 많음
- VM이 느려질 때 원인을 찾기가 좋음
출처
[인프런] 쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2
저자 : 일프로
'k8s' 카테고리의 다른 글
[1-5] Application 기능으로 이해하기 - probe (1) | 2024.04.13 |
---|---|
[1-4] Object 기본적인 이해 (1) | 2024.04.12 |
[1-3] 쿠버네티스가 정말 편한 이유 (0) | 2024.04.10 |
[1-1] 컨테이너 한방정리 (0) | 2024.03.25 |
[2-1] DevOps 한방 정리 (0) | 2024.03.21 |