티스토리 뷰

사전준비할 것

  • MetalLB 설치
  • Nginx Ingress Controller 설치

구조

 

인그레스 생성

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress-example
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - host: myservice.com                  
    http:
      paths:
      - path: /     
        pathType: Prefix
        backend:
          service
            name: myservice     
            port:
              number: 80
  • host: 해당 도메인 이름으로 접근하는 요청에 대해서 인그레스 규칙 적용
  • path: path 는 여러개의 경로로 있을 수 있다. 해당 경로에 들어온 요청을 어느 서비스 및 포트로 전달할 것인지 정의
  • pathType
    • Prefix /abc
      /abc/
      /abc, /abc/  둘다가능
      Exact /abc /abc
      /abc/ /abc/

 

인그레스 컨트롤러 확인

kubectl get svc -n nginx-ingress

외부에서 Nginx 인그레스 컨트롤러에 접근하기 위한 서비스가 생성되었는지 확인한다.

 

Deployment 생성

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hostname-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: webserver
  template:
    metadata:
      name: my-webserver
      labels:
        app: webserver
    spec:
      containers:
      - name: my-webserver
        image: alicek106/ingress-annotation-test:0.0
        ports:
        - containerPort: 5000
          name: flask-port
  • .spec.selector.matchLabels:  디플로이먼트가 관리할 파드를 찾는 방법을 정의
  • .spec.template.metadata.labels: 파드는 이를 사용해서 app: webserver 라는 레이블을 붙인다

 

Service 생성

apiVersion: v1
kind: Service
metadata:
  name: hostname-service
spec:
  ports:
    - name: web-port
      port: 80
      targetPort: flask-port
  selector:
    app: webserver
  type: LoadBalancer

 

 

참고: 도커/쿠버네티스(용찬호 저)

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함