MetalLB를 이용한 Load Balancer 타입 서비스 구축
·
Container & DevOps
MetalLB IP 대역 선정먼저 클러스터 노드들이 사용하는 IP 대역을 확인한다.kubectl get nodes -o wide 노드들이 같은 IP 대역을 사용하고 있는지 확인한다. 노드들은 10.0.2.xx 대역을 사용하고 있다. 10.0.2.60~10.0.2.69 대역을 로드밸런서 대역으로 지정한다. 할당할 로드밸런서 대역을 ping을 통해 사용 여부를 검증한다.for i in {0..9}; do ping -c 1 10.0.2.6$i; done Destination Host Unreachable가 출력 중이므로 해당 IP들을 사용 중이지 않고 있다는 의미이다.위 과정을 통해 MetalLB가 사용할 IP 풀을 안전하게 확보할 수 있다. Helm을 이용한 MetalLB 설치 준비먼저, MetalLB 공식..
Kubernetes - DNS
·
Container & DevOps
Kubernetes DNS?쿠버네티스는 서비스 이름을 기준으로 통신한다. 즉, 파드 IP가 아니라 DNS 이름으로 파드를 찾도록 설계되어 있다.이를 위해 쿠버네티스는 두 종류의 DNS 구성 요소를 사용한다.CoreDNSLocalDNS(NodeLocal DNSCache)이 둘이 합쳐져서 클러스터 내부 DNS를 구성한다.CoreDNS / LocalDNSCoreDNSCoreDNS는 클러스터 전체 DNS 서버이고, 다음과 같은 특징이 존재한다.서비스 이름 → ClusterIP 변환 담당kube-system 네임스페이스에 존재Deployment로 실행기본적으로 2개 파드가 떠서 이중화kubectl get all -o wide 명령어의 출력 결과를 확인해보면, READY 2/2, AVAILABLE 2 로 확인된다...
Kubernetes - 트러블 슈팅 기본 프로세스
·
Container & DevOps
트러블 슈팅 기본 프로세스쿠버네티스에서 장애가 발생했을 때 기본적으로 따르는 순서는 다음과 같다.Apply → Get → Describe → Logs → Get Event1. Applykubectl apply -f XXX.yamlYAML 파일로 만든 오브젝트(파드, 디플로이먼트 등)를 클러스터에 생성하는 단계다. 2. Getkubectl get [오브젝트명]방금 만든 오브젝트가 정상적으로 생성되었는지, 상태(Status)가 어떤지 리스트로 확인한다. 3. Describekubectl describe pod xxxkubectl describe node yyy특정 리소스 하나를 골라 상세 정보 + 이벤트를 본다.어떤 이미지로 생성되었는지, 어느 노드에서 돌고 있는지, 어떤 에러 이벤트가 발생했는지까지 한 번..
Kubernetes - Kubespray를 이용한 Kubernetes Cluster 구축
·
Container & DevOps
Kubespray?Ansible 기반의 Kubespray는 쿠버네티스를 여러 서버에 자동으로 설치하고 구성해주는 도구이다. 즉, Multi-node Kubernetes 클러스터를 코드 기반으로 자동 구성하는 설치 툴이다.Ansible?Ansible은 자동화 툴이다. 여러 서버에 패키지를 설치하거나 설정을 배포할 때, 사람이 일일이 접속해서 명령을 치는 대신 하나의 중앙 서버(관리 노드)에서 자동화된 스크립트(playbook)를 돌려서 동일한 작업을 여러 서버에 반복 수행하게 해준다. 아래와 같은 쿠버네티스 구성 요소들 설치를 모두 자동화 할 수 있다.containerd 설치kubeadm 초기화control-plane/worker joinCalico 설치kube-proxy 설정kubelet 설정sysctl..
Kubernetes - Loki를 활용한 쿠버네티스 로그 확인
·
Container & DevOps
Loki?로키(Loki) 는 쿠버네티스 환경에서 로그를 수집, 저장, 조회하기 위한 오픈소스 로그 관리 시스템이다.프로메테우스(Prometheus) 가 “메트릭”을 수집한다면, 로키는 “로그(log)”를 수집한다.하지만 로키는 Elasticsearch처럼 로그 전체를 인덱싱하지 않고, 라벨(Label) 만 인덱싱하고 로그 본문은 그대로 저장해서 저장공간 절약과 속도 향상을 얻는다.Promtail?PLG 구조를 이해하기 전에 Promtail 개념을 먼저 알아야한다.Promtail은 쿠버네티스나 리눅스 서버에서 생성되는 로그 파일을 수집해 Loki로 전송하는 로그 수집 에이전트이다. Loki의 “수집기(Collector)” 역할이라고 보면 된다. Promtail은 쿠버네티스 클러스터를 구성하는 모든 노드에 ..