Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
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 31
Archives
Today
Total
관리 메뉴

쟝이의 세상

Kubernetes(Ingress) 본문

수업내용

Kubernetes(Ingress)

zyangee 2024. 10. 4. 10:37
💡 인그레스(Ingress)
클러스터 외부에서 내부 서비스로 접근하는 HTTP, HTTPS 요청들을 어떻게 처리할지 정의해둔 규칙들의 모음
부하 분산, SSL 인증서 처리, 도메인 기반으로 가상 호스팅을 제공
(인그레스 개념은 쿠버네티스 API를 통해 정의한 규칙에 기반하여 트래픽을 다른 백엔드에 매핑할 수 있게 해 준다.)

이러한 규칙들을 실제로 동작하게 해 주는 것은 인그레스 컨트롤러(Ingress-Controller)이다.
1) 클라우드 서비스 사용 - 자사의 로드밸런서 서비스들과 연동하여 Ingress 사용 가능
2) 클러스터 구축하여 사용 - Ingress Controller를 직접 Ingress와 연동시켜줘야 함

 

✔️ ingress controller 설치

(NGINX Ingress Controller 위치: ~/lab/05/ingress)

$ kubectl create -f ingress-nginx.yaml

 

✔️ ingress-nginx 네임스페이스 안의 리소스 조회

$ kubectl -n ingress-nginx get all

👇🏻 결과 화면

더보기

ingress-nginx-controller 서비스가 로드밸런서 타입으로 External-IP를 미리 할당 받음

✔️ 이전에 default 네임스페이스의 모든 리소스를 삭제

$ kubectl delete all --all

 

 

📌 외부 클라이언트로 서비스 노출

guestbook Replicaset과 Service 생성
$ kubectl create -f guestbook.yaml

👇🏻 yaml 파일 보기

더보기

guestbook.yaml

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: guestbook
spec:
  replicas: 1
  selector:
    matchLabels:
      app: guestbook
  template:
    metadata:
      labels:
        app: guestbook
    spec:
      containers:
      - name: guestbook
        image: yu3papa/k8s_guestbook:ingress
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: guestbook
spec:
  ports:
  - port: 80
    targetPort: 8080
  selector:

 

✔️ 만들어진 Service가 서비스 되는지 curl 명령어로 확인

$ curl -s http://10.104.63.234/guestbook/ | grep title

👇🏻 결과 화면

 

calculator Replicaset과 Service 생성
$ kubectl create -f calculator.yaml

👇🏻 yaml 파일 보기

더보기

calculator.yaml

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: calculator
spec:
  replicas: 1
  selector:
    matchLabels:
      app: calculator
  template:
    metadata:
      labels:
        app: calculator
    spec:
      containers:
      - name: calculator
        image: yu3papa/k8s_calculator:ingress
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: calculator
spec:
  ports:
  - port: 80
    targetPort: 8080
  selector:

 

✔️ 만들어진 Service가 서비스 되는지 curl 명령어로 확인

$ curl -s http://10.109.138.159/calculator/ | grep title

👇🏻 결과 화면

 

ingress 리소스 생성
$ kubectl create -f jadeedu-ingress.yaml

 

✔️ ingress 리소스 조회

$ kubectl describe ing jadeedu-ingress

👇🏻 결과 화면

더보기
$ kubectl describe ing jadeedu-ingress

 

hosts파일에 ingress ip주소 등록

▶ hosts 파일 수정

192.168.56.201    edu.jadecross.com
-> 해당 내용 추가하기

 

✔️ 도메인 명을 사용하여 각 서비스에 접속해보기

1) http://edu.jadecross.com/guestbook

2) http://edu.jadecross.com/calculator