🥞 BE
home

Nginx Ingress

Date
2023/11/09
Category
Data Engineering
Tag
Kubernetes
Detail

인그레스 컨트롤러 활성화

1.
NGINX 인그레스 컨트롤러를 활성화하기 위해 다음 명령을 실행한다.
minikube addons enable ingress
2.
NGINX 인그레스 컨트롤러가 실행 중인지 확인한다.
kubectl get pods -n ingress-nginx
참고: 파드가 정상적으로 실행되기까지 1 정도 소요될 있다.
NAME READY STATUS RESTARTS AGE ingress-nginx-admission-create-fpmcq 0/1 Completed 0 3m14s ingress-nginx-admission-patch-rxhrz 0/1 Completed 0 3m14s ingress-nginx-controller-7799c6795f-t5fg7 1/1 Running 0 3m14s
Shell
복사

hello, world 앱 배포하기

1.
다음 명령을 사용하여 디플로이먼트(Deployment)를 생성한다.
kubectl create deployment web --image=gcr.io/google-samples/hello-app:1.0
2.
디플로이먼트를 노출시킨다.
kubectl expose deployment web --type=NodePort --port=8080
3.
서비스(Service)가 생성되고 노드 포트에서 사용할 수 있는지 확인한다.
kubectl get service web
4.
노드포트(NodePort)를 통해 서비스에 접속한다.
minikube service web --url
이제 Minikube IP 주소와 노드포트를 통해 샘플 앱에 액세스할 수 있다.

인그레스 생성하기

1.
다음 매니페스트는 hello-world.info를 통해 서비스로 트래픽을 보내는 인그레스를 정의한다.
다음 파일을 통해 example-ingress.yaml 을 만든다. (local 로 만들때)
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: /$1 spec: rules: - host: hello-world.info http: paths: - path: / pathType: Prefix backend: service: name: web port: number: 8080
YAML
복사
다음 명령어를 실행하여 인그레스 오브젝트를 생성한다. (샘플 파일 적용할 때)
kubectl apply -f https://k8s.io/examples/service/networking/example-ingress.yaml
ingress.networking.k8s.io/example-ingress created
Shell
복사