Ingress란 클러스터 내의 서비스에 대한 외부 접근을 관리하는 개체로, 일반적으로 HTTP를 관리한다.
이 글에서는 Ingress 정보를 확인하고 생성하는 명령어에 대해 정리한다.
Ingress 목록 확인
get 명령으로 이름, 호스트 등의 정보를 확인할 수 있다.
kubectl get ingresses.networking.k8s.io
Ingress 상세 정보 확인
describe 명령으로 이름, 규칙 등의 상세 정보를 확인할 수 있다.
kubectl describe ingresses.networking.k8s.io --namespace=<NAMESPACE> <NAME>
# 예시
kubectl describe ingresses.networking.k8s.io --namespace=app-space ingress-wear-watch
Default backend는 설정되지 않은 경로로 요청이 들어왔을 때의 라우팅 설정이다.
Ingress 수정
edit 명령어로 수정할 수 있다.
kubectl edit ingresses.networking.k8s.io --namespace=<NAMESPACE> <NAME>
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-wear-watch
namespace: app-space
spec:
rules:
- http:
paths:
- backend:
service:
name: wear-service
port:
number: 8080
path: /wear
pathType: Prefix
- backend:
service:
name: video-service
port:
number: 8080
path: /watch
pathType: Prefix
- backend:
service:
name: video-service
port:
number: 8080
path: /stream
pathType: Prefix
Ingress 생성
create 명령어 또는 ingress 정의 yaml 파일을 이용해 생성한다. create 명령으로 생성하는 경우에는 --rule 옵션 또는 --default-backend 옵션을 지정해야 한다.
- 규칙 지정 Ingress 생성
경로와 라우팅할 서비스와 포트를 지정한다. 설정할 포트는 get service의 실행 결과 중 Port 값에 해당한다.
kubectl create ingress pay-ingress --namespace <NAMESPACE> --rule="</PATH=SERVICE:PORT"
# 예시
kubectl create ingress pay-ingress --namespace critical-space --rule="/pay=pay-service:8282"
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
creationTimestamp: null
name: pay-ingress
namespace: critical-space
spec:
rules:
- http:
paths:
- backend:
service:
name: pay-service
port:
number: 8282
path: /pay
pathType: Exact
status:
loadBalancer: {}
- default backend 지정 Ingress 생성
kubectl create ingress pay-ingress --namespace <NAMESPACE> --default-backend=<SERVICE:PORT>
# 예시
kubectl create ingress pay-ingress --namespace critical-space --default-backend=pay-service:80
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
creationTimestamp: null
name: pay-ingress
namespace: critical-space
spec:
defaultBackend:
service:
name: pay-service
port:
number: 80
status:
loadBalancer: {}