개요
Kubernetes에서 Ingress에 SSL을 붙이는 방법을 정리 한 뒤 공유한다.
핵심개념
Kubernetes에서는 Secret이라는 개념으로 key와 crt를 등록한다. 이후 ingress에서는 secret을 정의해주면 SSL 통신이 활성화 된다.
Secret 만들기
아래의 명령어로 secret을 동록한다.
$ kubectl create secret tls star-kwangsiklee-com --key star.kwangsiklee.com.key --cert star.kwangsiklee.com.crt
이후 아래 명령어로 secret이 정상적으로 등록되었는지 확인이 가능하다.
$ kubectl describe secret star-kwangsiklee-com
Name: star-kwangsiklee-com
Namespace: default
Labels: <none>
Annotations: <none>
Type: kubernetes.io/tls
Data
====
tls.crt: 2320 bytes
tls.key: 1704 bytes
ingress 편집
아래와 같이 spec -> tls
부분으로 secret을 정의해주면 된다.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: kwangsiklee-ingress
namespace: default
annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- www.kwangsiklee.com
secretName: star-kwangsiklee-com
rules:
- host: www.kwangsiklee.com
http:
paths:
- path: /
backend:
serviceName: kwangsiklee-svc
servicePort: 5000
kubectl 명령어로 이제 새로 바뀐 ingress를 실행해보자.
검증하기
아래와 같이 https
로 접속했을때 정상 접속이 되면 성공이다.
(아래 URL은 예시를 든것이고 해당 블로그는 kubernetes와 관계는 없다.)