본문 바로가기
Kubernetes

minikube를 활용한 nginx 로드분산 예제

by 판매자명단 2023. 10. 24.

[Docker] - docker, kubernetes 기초설정, 예제

 

docker, kubernetes 기초설정, 예제

* ubuntu 22.04 / ip 192.168.2.10/24 / hostname ubuntu sudo -i DOCKER_USER=ubuntu DOCKER_COMPOSE_VERSION=2.17.3 #의존성 설치 apt update -y && apt-get install -y \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release #docker가 제공하

y7712.tistory.com

minikube start
minikube ip
minikube addons enable ingress

우선 domain으로 로드분산을 시키기 위해 ingress를 활성화해준다

mkdir test
cd test
nano nginx.yml

#nginx.yml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx
spec:
  rules:
    - host: nginx.192.168.49.2.sslip.io
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: nginx
                port:
                  number: 80

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:latest

---
apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  ports:
    - port: 80
      protocol: TCP
  selector:
    app: nginx

nignx yml 파일을 만들어준다

로드분산이 되는지 확인하기 위해 복제를 3개 정도 해준다

kubectl apply -f nginx.yml

yml 파일을 실행시킨 후 웹에서 접속해 보면 nginx 페이지가 열린다

kubectl get pod

kubectl logs -f nginx-69fbf4cbcb-2gq5n
kubectl logs -f nginx-69fbf4cbcb-92rf2
kubectl logs -f nginx-69fbf4cbcb-9mbb2

pod name을 확인해 보고 하나씩 log를 flow 해두고 웹에서 새로고침을 해보면 

위 사진처럼 log가 올라온다 세 개의 pod에서 모두 log가 올라온다면 로드분산에 성공한 것이다