ale에서 배포된 서비스의 프리뷰 URL 및 커스텀 도메인에 TLS 인증서가 자동으로 적용됩니다.


클러스터 인증서 생성기 설치 및 인증서 발급

1

인증서 생성 스크립트에서 사용되는 값을 환경변수로 설정하세요.

export AWS_REGION=<AWS 리전>
export AWS_DOMAIN=<Route53 도메인>
export AWS_HOSTED_ZONE_ID=<Route53 호스팅 영역 ID>
export ACME_EMAIL=<인증서 발급 이메일>
2

다음의 명령어를 실행하여 인증서 생성기를 설치하세요.

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
  name: aws-secret-access-key
  namespace: cert-manager
type: Opaque
stringData:
  aws-secret-access-key: $AWS_SECRET_ACCESS_KEY
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: ale-issuer
  namespace: cert-manager
spec:
  acme:
    email: $ACME_EMAIL
    server: https://acme-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      name: ale-issuer
    solvers:
      - http01:
          ingress:
            class: nginx
      - dns01:
          route53:
            region: $AWS_REGION
            hostedZoneID: $AWS_HOSTED_ZONE_ID
            accessKeyID: $AWS_ACCESS_KEY_ID
            secretAccessKeySecretRef:
              name: aws-secret-access-key
              key: aws-secret-access-key
        selector:
          dnsZones:
            - $AWS_DOMAIN
EOF
3

다음의 명령어를 실행하여 인증서를 발급합니다.

cat <<EOF | kubectl apply -f -
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: ale-app-tls
  namespace: cert-manager
spec:
  dnsNames:
    - "*.$AWS_DOMAIN"
  issuerRef:
    kind: ClusterIssuer
    name: ale-issuer
  secretName: ale-app-tls
EOF

Ingress 생성

1

다음의 명령어로 ale에 접속하기 위한 Ingress를 생성합니다.

cat <<EOF | kubectl apply -f -
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ale
  namespace: ale
  annotations:
    nginx.ingress.kubernetes.io/whitelist-source-range: 0.0.0.0/0
    cert-manager.io/cluster-issuer: ale-issuer
spec:
  ingressClassName: nginx
  tls:
    - hosts:
        - app.$AWS_DOMAIN
      secretName: ale-controller-tls
  rules:
    - host: app.$AWS_DOMAIN
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: ale-controller
                port:
                  number: 9001
EOF
2

다음의 명령어로 인증서가 생성 및 반영되었는지 확인할 수 있습니다. 정상적으로 생성되었다면 STATE 항목이 valid 상태여야 합니다.

kubectl get order -n ale \
  | awk '/ale-/{print $1}' \
  | xargs kubectl get order -n ale
NAME                              STATE   AGE
ale-controller-tls-1-1997619857   valid   103s
3

다음의 URL로 접속이 되면, 인증서가 정상적으로 반영된 것입니다. 만약 접속이 정상적으로 되지 않는다면 Cert Manager pod나 Cluster Issuer의 상태를 점검해야 합니다.

https://app.[Route53_도메인]
4

관리자 계정을 생성하고 설치를 완료해주세요.

프리뷰 도메인 필드에는 연결한 루트 도메인을 입력합니다.

클러스터 네트워크 설정

운영시스템 클러스터 페이지의 설정 탭에서 네트워크 항목에 아래의 값을 입력하세요.

  • 프리뷰 도메인: Route53의 루트 도메인
  • HTTPS 사용
    • 체크: 인터넷 환경
    • 체크 해제: 인트라넷/폐쇄망 환경
  • 인증서 시크릿 이름: ale-app-tls
  • 인증서 시크릿 네임스페이스: cert-manager
  • 인증서 발급기: ale-issuer
  • 인그레스 클래스: nginx
  • 인그레스 IP: 공란(자동인식)
  • 로드밸런서 유형
    • 로드밸런서
    • 노드포트
  • 인그레스/이그레스 대역폭: Mbps 단위로 입력

대시보드 좌측 상단의 스페이스 이름을 클릭한 후 운영시스템을 선택하면 운영시스템에 접속할 수 있습니다.

운영시스템 메뉴는, 운영시스템 접속권한을 부여받은 계정에서만 표시됩니다.