1.  NGINX Ingress Controller 다운로드 및 배포

 1.1. deploy.yaml 다운로드 : wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml

 1.2. 실행 :  kubectl apply -f /root/deploy.yaml

 

2. Ingress 리소스 정의

 2.1. 파일 생성 : vi ingress.yml
 
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: "nginx"
spec:
  ingressClassName: nginx
  rules:
  - http:
      paths:
      - path: /behwang1
        pathType: Prefix
        backend:
          service:
            name: svc1
            port:
              number: 80
      - path: /behwang2
        pathType: Prefix
        backend:
          service:
            name: svc2
            port:
              number: 80
 2.2. 실행 : kubectl apply -f ingress.yml -n ingress-nginx

 

3. NGINX 배포 및 서비스 생성

 3.1. nginx1 애플리케이션 배포 : kubectl create deploy nginx1 --image nginx --replicas 1 -n ingress-nginx
 3.2. nginx2 애플리케이션 배포 : kubectl create deploy nginx2 --image nginx --replicas 1 -n ingress-nginx
 3.3. nginx1 서비스 노출 : kubectl expose deploy nginx1 --name svc1 --port 80 -n ingress-nginx
 3.4. nginx2 서비스 노출 : kubectl expose deploy nginx2 --name svc2 --port 80 -n ingress-nginx

 

4. index.html 수정

 4.1. nginx1 index.html 수정 
  step1) nginx1 Pod 내부 접근 : kubectl exec -it nginx1-b7c99b5c8-pr2sw -n ingress-nginx -- bash
   * pod 명은 "kubectl get pods -o wide -n ingress-nginx" 명령어로 확인 
  step2) index.html 수정 
 
cat > /usr/share/nginx/html/index.html << eof
<html><body><h1>INGRESS-TEST-BEHWANG1</h1></body></html>
eof

  step3) 나가기 : exit

 

 4.2. nginx2 index.html 수정 
  step1) nginx2 Pod 내부 접근 : kubectl exec -it nginx2-b7c99b5c8-pr2sw -n ingress-nginx -- bash
  step2) index.html 수정 
 
cat > /usr/share/nginx/html/index.html << eof
<html><body><h1>INGRESS-TEST-BEHWANG1</h2></body></html>
eof

  step3) 나가기 : exit

 

5. 확인 

 5.1. 외부 ID 및 포트 번호 확인 : kubectl get svc -o wide -n ingress-nginx

 

 5.2. 외부 IP 주소 및 엔드포인트 URL 입력

 

+ Recent posts