s00ng
쏭's blog
s00ng
전체 방문자
오늘
어제
  • 분류 전체보기 (69)
    • TIL (20)
      • 실습 (3)
    • Web (6)
      • React (6)
      • Basic (0)
    • JPA (5)
    • CS (3)
      • 컴퓨터 네트워크 (3)
    • Design pattern (10)
    • AWS (5)
    • ETC (0)
    • Algorithm (0)
    • Project (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

인기 글

태그

  • solid
  • EC2 인스턴스
  • EC2
  • 가용영역
  • VMware
  • AWS
  • mariaDB
  • 리전
  • design pattern
  • centOS 8

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
s00ng

쏭's blog

[k8s] Ingress SSL 적용
TIL

[k8s] Ingress SSL 적용

2024. 10. 6. 23:45

 윈도우 VMware 가상머신에 직접 k8s를 설치하고, 클러스터 구성을 마친 상태에서 진행한 실습이다. 이번 포스팅에서는 Ingress에 SSL을 적용한 방식을 적어보려한다.

 

⚠️ 주의사항 ingress 사용하기 위해서는, metalab 등으로 loadbalencer 타입의 서비스를 설치해줘야 함! 

 

LoadBalancer
NodePort의 접근 범위뿐만 아니라 쿠버네티스 클러스터 외부에서 대표 IP주소로 접근할 수 있다.
쿠버네티스 클러스터 환경을 직접 구축했다면 기본적으로 LoadBalancer 타입은 제공되지 않는다.
추가적으로 플러그인 설치 필요

[1] 플러그인 설치 (네트워크 대역은 가상머신 대역)
https://mlops-for-all.github.io/docs/appendix/metallb/

 

 

1️⃣ ingress controller 생성

nginx ingress controller 사용
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.11.2/deploy/static/provider/cloud/deploy.yaml

 

 

2️⃣ zeroSSL 인증서 발급

내도메인 한국 ⇒ 도메인 발급

⇒ 여기서 다운받은 certification.cert, ca_bundle.crt, private.key 를 클러스터 노드로 이동(scp)

scp <파일경로> <접속할 사용자 계정>@<접속할 ip>:<파일 옮길 경로>

 

3️⃣ Secret key 생성

kubectl create secret tls (시크릿 이름) --key (키네임).key --cert (키네임).crt

//ex kubectl create secret tls tls-secret --key private.key --cert certification.cert

cat certificate.crt ca_bundle.crt > fullchain.crt (certificate.crt 와 ca_bundle.crt를 합치는 과정)


⇒  대시보드에서 secret key 생성확인

 

4️⃣ Ingress 객체 생성(설정 파일)

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: dealivery-ingress
  namespace: default
spec:
  ingressClassName: "nginx"
  tls:
    - hosts:
      - www.dealivery.kro.kr
      secretName: tls-secret
  rules:
    - host: www.dealivery.kro.kr
      http:
        paths:
          - path: /api/oauth
            pathType: Prefix
            backend:
              service:
                name: backend-service-oauth
                port:
                  number: 8080
          - path: /api
            pathType: Prefix
            backend:
              service:
                name: backend-service
                port:
                  number: 8080
          - path: /
            pathType: Prefix
            backend:
              service:
                name: frontend-service
                port:
                  number: 80

 

'TIL' 카테고리의 다른 글

[TIL] Index  (3) 2024.11.11
[TIL] 분산락  (3) 2024.10.21
[TIL] Redis에서 키를 관리하는 법  (0) 2024.09.23
[TIL] 낙관적 락, 비관적 락  (0) 2024.09.09
[TIL] 페이지 교체 알고리즘  (1) 2024.09.02
    'TIL' 카테고리의 다른 글
    • [TIL] Index
    • [TIL] 분산락
    • [TIL] Redis에서 키를 관리하는 법
    • [TIL] 낙관적 락, 비관적 락
    s00ng
    s00ng

    티스토리툴바