1 minute read

일지

특이사항없음

오늘의 할일

  • 220523 TIL 작성

수업 정리

Ingress
서비스 리소스 타입이 아니지만 서비스와 유사한 동작을 수행
동작하는 계층이 LoadBalancer, NodePort(4계층)와는 다름 (7계층)
서비스를 외부로 노출시키기 위한 경로를 제공
하나의 Ingress로 다수의 호스트에 대한 연결 제공 가능
하나의 Ingress로 호스트 내에서 경로에 대한 각각 연결 제공 가능
MSA(Micro Service Architecture)

인그레스 컨트롤러 테스트

환경구성) 인그레스의 백엔스 서비스 구성
컨트롤러1 - 서비스1
컨트롤러2 - 서비스2
컨트롤러3 - 서비스3
컨트롤러4 - 서비스4

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: rs1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-1
  template:
    metadata:
      labels:
        app: nginx-1
    spec:
      containers:
      - name: nginx-1-c
        image: nginx
        ports:
        - containerPort: 80
          protocol: TCP
apiVersion: v1
kind: Service
metadata:
  name: s1
spec:
  selector:
    app: nginx-1
  ports:
  - port: 80
    targetPort: 80
  type: ClusterIP


각 파드 별 컨텐츠 수정
kubectl exec -it <파드명> -- bash
echo S1 > /usr/share/nginx/html/index.html


인그레스 컨트롤러 리소스 생성
git clone https://github.com/kubernetes/ingress-nginx
cd ingress-nginx/deploy/static/provider/baremetal/1.21
kubectl create -f deploy.yaml


리소스 생성 후 확인
kubectl get all --namespace ingress-nginx
인그레스 서비스 설정 수정 (외부IP)
kubectl edit service --namespace ingress-nginx ingress-nginx-controller
…
spec:
  clusterIP: 10.101.33.12
  externalIPs:
  - 192.168.56.21
  - 192.168.56.22
  - 192.168.56.23
…



Ingress 리소스 생성
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-test
spec:
  rules:
  - host: app1.example.local
    http:
      paths:
      - path: /page1
        pathType: Exact
        backend:
          service:
            name: s1
            port:
              number: 80
      - path: /page2
        pathType: Exact
        backend:
          service:
            name: s2
            port:
              number: 80
  - host: app2.example.local
    http:
      paths:
      - path: /page1
        pathType: Exact
        backend:
          service:
            name: s3
            port:
              number: 80
      - path: /page2
        pathType: Exact
        backend:
          service:
            name: s4
            port:
              number: 80


요청 테스트
ingress 서비스의 cluster ip 확인
kubectl get service --namespace ingress-nginx
확인한 주소로 curl 요청
curl -v --resolve app1.example.local:80:10.105.34.139 http://app1.example.local/page1

Categories:

Updated:

Leave a comment