kubernetes에 ingress-nginx로 Ingress를 구성하고 서비스 구성하기

지금까지 구축된 kubernetes에서 ingress-nginx를 설치하고 "Deployment, Service, HorizontalPodAutoscaler"로 구성된 앱을 배포하고
ingress를 구성 후, 최종 서비스 형태를 만드는것을 목표로 한다.

ingress-nginx를 구축하여 서비스하는 구성도

서비스용 앱 배포

모든 요청에 응답하는 echo server를 앱으로 아래와 같은 파일로 구성해서 배포한다.

echo-server-dpm.yaml - Deployment

kubernetes에 metrics-server 구성 및 deep dive

kubernetes에 HorizontalPodAutoscaler가 동작하기 위해서는 기본적으로 metrics-server가 설치되어야 동작한다.
내부 동작 방식을 깊이 이해하기 위해서 구성 및 deep dive로 정리한다.

helm을 이용해서 배포를 진행할 예정이나 template를 구성해서 배포하는 방식으로 진행할 예정이다.

 

Helm Repo 등록

아래와 같이 metrics-server의 repo를 동록한다.

kubernetes에 MetalLB를 Layer 2 모드로 구성하기

MetalLB 설치 요구 사항

스터디용으로 MetalLB를 Layer 2 mode로 구성하기 위해서는 Kubernetes가 ipvs mode로 설치되어 있어야한다.
만약 kubespray로 kubernetes를 구성했다면 ipvs mode로 설치되어 있다. 아래 명령어로 어떻게 설치되어 있는지 확인해본다.

# kubectl get configmaps -n kube-system kube-proxy -o yaml |grep mode
    mode: ipvs

 

MetalLB 설치 준비

MetalLB를 설치하려면, 우선 strictARPtrue로 설정되어 있어야한다.

kubespray로 kubernetes 설치하기

하드웨어 준비 사항

virt-manager로 아래와 같은 시스템 5개를 만든다.

  • ubuntu22.04-71 / ubuntu 22.04 LTS / 192.168.122.71 / ssh 키 등록 / control plan
  • ubuntu22.04-72 / ubuntu 22.04 LTS / 192.168.122.72 / ssh 키 등록 / node1
  • ubuntu22.04-73 / ubuntu 22.04 LTS / 192.168.122.73 / ssh 키 등록 / node2
  • ubuntu22.04-74 / ubuntu 22.04 LTS / 192.168.122.74 / ssh 키 등록 / node3
  • ubuntu22.04-75 / ubuntu 22.04 LTS / 192.168.122.75 / ssh 키 등록 / node4