[18] Ingress 구성

Ingress란?

인그레스는 클러스터 외부에서 클러스터 내부 서비스로 HTTP와 HTTPS 경로를 노출한다.

트래픽 라우팅은 인그레스 리소스에 정의된 규칙에 의해 컨트롤된다.

Reference

docs에서 ingress 검색

인그레스(Ingress)

❓Ingress 구성

실습

[user@console ~]$ kubectl config use-context k8s 

# ingress-nginx 네임스페이스에 있는 파드 가져옴
[user@console ~]$ kubectl get pods -n ingress-nginx

# 조건에 충족하는 파드를 run 명령으로 ingress-nginx 네임스페이스에 생성
[user@console ~]$ kubectl run nginx --namespace=ingress-nginx --image=nginx --labels=app=nginx

[user@console ~]$ kubectl get pods -n ingress-nginx

# 서비스를 생성하기 위해 방금 생성한 파드를 expose함
[user@console ~]$ kubectl expose -n ingress-nginx pod nginx --port 80 --target-port 80

[user@console ~]$ kubectl get svc -n ingress-nginx

[user@console ~]$ kubectl describe svc -n ingress-nginx nginx

---------- docs에서 ingress 검색 -> The Ingress resource 검색해서 다 긁어옴 ----------

# yaml파일 vi로 만들어서 긁어온 내용 복붙하고 수
[user@console ~]$ 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:
  ingressClassName: nginx-example
  rules:
  - http:
      paths:
			- path: /
        pathType: Prefix
        backend:
          service:
            name: nginx
            port:
              number: 80
# 여기 위 number 포트는 위에서kubectl get svc -n ingress-nginx했을 때 
# nginx, appjs-service가 어떤 포트 사용하고 있는지 확인하고 넣어준다.
      - path: /app
        pathType: Prefix
        backend:
          service:
            name: appjs-service
            port:
              number: 80
			
:wq

# namespace가 ingress-nginx인 곳에서 돌아가고 있는 서비스 목록 확인
[user@console ~]$ kubectl get svc -n ingress-nginx
appjs-service서비스는 80포트 사용
nginx 서비스는 80포트 사용

[user@console ~]$ kubectl apply -f app-ingress.yaml

[user@console ~]$ kubectl get ingress -n ingress-nginx

[user@console ~]$ kubectl describe ingress -n ingress-nginx

[user@console ~]$ kubectl get nodes

[user@console ~]$ curl k8s-worker1:30080

[user@console ~]$ curl k8s-worker1:30080/app

기출문제 (30번)

Task Create a new nginx Ingress resource as follows:


Revision #1
Created 31 May 2023 00:13:00 by 와지
Updated 20 June 2023 13:20:12 by 와지