클러스터 내의 서비스에 대한 외부 접근을 관리하는 API 오브젝트이며, 일반적으로 HTTP를 관리함

인그레스는 부하 분산, SSL 종료, 명칭 기반의 가상 호스팅을 제공할 수 있다.

Untitled

Untitled

  1. kubectl config use-context k8s
  2. kubectl get pod -n ingress-nginx ⇒ namespace ingress-nginx이 존재하는지 확인
  3. kubectl run nginx —image=nginx —labels=app=nginx -n ingress-nginx
  4. kubectl get pod -n ingress-nginx

서비스 구성

  1. kubectl expose pod nginx —port 80 —target-port=80 -n ingress-nginx ⇒ 서비스 생성
  2. kubectl get svc -n ingress-nginx ⇒ 생성된 서비스 확인

ingress 구성

Untitled

  1. ingress(공홈) → The Ingress resource에 코드 존재
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
		name: minimal-ingress
		annotations:
			nginx.ingress.kubernetes.io/rewrite-target: /
spec:
	ingressClassName: nginx-example
	rules:
	  -http:
			paths:
		    -path: /testpath
				 pathType: Prefix
				 backend:
					 service:
						 name: test
						 port:
							 number: 80
							 
수정
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
		namespace: ingress-nginx (추가 !!꼭 해줘야함 그래야지 ingrㄷss-nginx에서 실행이 됌)
		name: app-ingress
		annotations:
			nginx.ingress.kubernetes.io/rewrite-target: /
			kubernets.io/ingress.class: nginx (추가)
spec:
	ingressClassName: app-ingress(수정 안하거나 지워도 됌)
	rules:
	  -http:
			paths:
		    -path: /app (NODE_PORT:30080/app로 접속했을 때여서 /app로 지정)
				 pathType: Prefix
				 backend:
					 service:
						 name: appjs-service (NODE_PORT:30080/app 접속했을 대 appjs-service로 연결)
						 port:
							 number: 80 (찾아봐야함=> kubectl get svc-n ingress-nginx(아래 결과))
				 -path: / (NODE_PORT:30080/로 접속했을 때여서 /로 지정)
				 pathType: Prefix
				 backend:
					 service:
						 name: nginx (NODE_PORT:30080/app 접속했을 대 appjs-service로 연결)
						 port:
							 number: 80 (찾아봐야함=> kubectl get svc-n ingress-nginx(아래 결과))
							 

Untitled