k8s

CKA 준비 (18) Ingress 구성

Joon0464 2022. 6. 11. 17:43

이 게시물은 아래 강의를 참고 하였습니다.
참고 강의 https://www.youtube.com/watch?v=KdATmTulf7s&list=PLApuRlvrZKojqx9-wIvWP3MPtgy2B372f&index=1 

 

 

 

이론)

ex)

Client 가 login 페이지를 요청하면 login 서비스로, main 페이지를 요청하면 main 서비스로 라우팅해준다.

문제)

1. Application Service 운영

  •  ingress-nginx namespace에 nginx 이미지를 app=nginx 레이블을 가지고 실행하는 nginx Pod를 구성하세요.
  • 앞서 생성한 nginx Pod 를 서비스 하는 nginx-service를 생성하시오.
  • 현재 appjs Service는 이미 동작중입니다. 별도 구성이 필요 없습니다.

2. Ingress 구성

  • app-ingess.yaml 파일을 생성하여 다음 조건의 ingress 서비스를 구성하시오.
    • ingress name: app-ingress
    • NODE_PORT:30080/ 접속했을 때 nginx 서비스로 연결
    • NODE_PORT:30080/app 으로 접속했을 때 appjs 서비스로 연결
    • Ingress 구성에 다음의 annotations를 포함시키시오.
      • annotations:
        • kubernetes.io/ingress.class: nginx

답안)

초기 상태는 위와 같음

- nginx Pod 생성

$ sudo kubectl run nginx --image=nginx --labels=app=nginx -n ingress-nginx
$ sudo kubectl expose -n ingress-nginx pod nginx --port=80 --target-port=80

위와 같이 service 와 pod가 구성된다.

- Ingress 구성

* 반드시 트래픽을 보내줄 대상 서비스와 같은 네임스페이스에 ingress 를 생성해야한다.

$ sudo vi app-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: ingress-nginx
  name: app-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: nginx
            port:
              number: 80
      - path: /app
        pathType: Prefix
        backend:
          service:
            name: appjs
            port:
              number: 80
              
$ sudo kubectl apply -f app-ingress.yaml