본문 바로가기

Applications/IngressNginx

Ingress-nginx

# Ingress-nginx 개요

- 버추얼 박스를 활용하여 구성하기

- nginx 가 ALB를 구현해 준다고 보면 됨

# Ingress-nginx 구성 확인과 간단한 환경 구성

kubectl get nodes

kubectl create deployment http-go --image gasbugs/http-go

kubectl get pod

# 외부로 expose 하기

kubectl expose deployment http-go --port=8080 --type=NodePort

- 포트확인하는 방법

kubectl get svc

- G 클라우드에서 할경우 방화벽 오픈 해야함

gcloud compute firewall-rules create http-go-svc-rule --allow=tcp:32410

# 서비스 확인하기

- ip 정보 확인하기 : 마스터 노드의 ip정보 확인하기

kubectl get nodes -o wide

curl 10.106.106.155:32410

- 베어메탈에 ingress-nginx 설치

- 구글 클라우드에 붙여넣기

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.0.0/deploy/static/provider/baremetal/deploy.yaml

# 실행된 서비스 찾기

- 실행된 목록에서 서비스를 상세히 보기

kubectl get service/ingress-nginx-controller -n ingress-nginx
NAME                       TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE

ingress-nginx-controller   NodePort   10.112.7.152   <none>        80:31755/TCP,443:32387/TCP   2m47s

- ingress 룰 생성하기

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: http-go-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: gasbugs.com
    http:
      paths:
      - path: /hostname
        backend:
          serviceName: http-go
          servicePort: 8080
vim http-go-ingress.yaml

kubectl create -f ttp-go-ingress.yaml

# 연결상태 확인하기

kubectl get svc -n ingress-nginx ingress-nginx-controller

# 연결상태에서 확인된 80 포트의 연결포트를 열어준다.

gcloud compute firewall-rules create ingress-svc-rule --allow=tcp:31755

# 서비스 확인하기

kubectl get nodes -o wide

curl 34.64.185.51:32410

- 404 에러가 뜨면 정상적으로 서비스가 연결된 것이라고 볼 수 있다.

# etc/hosts 에서 도메인 추가하기

sudo vim /etc/hosts

34.64.185.51 gasbugs.com

curl gasbugs.com:31755/hostname

- 실행을 한다면 결과값을 볼 수 있다.