콘텐츠로 이동

HTTPS 접속 전환

개요

이 문서는 이미 배포된 Guance를 http 접속에서 https를 지원하도록 변경하는 방법만 설명합니다.

전제 조건

  • 작업 전 SSL 인증서의 유효성과 Ingress 플러그인의 https 지원 기능을 확인하세요.
  • Guance가 이미 배포되어 정상적으로 접속 가능해야 합니다.
  • Guance 클러스터 권한
  • Guance Launcher 페이지

영향 범위

Guance Studio에 일시적으로 접속할 수 없습니다.

작업 단계

1단계: Launcher에서 도메인 이름 및 인증서 이름 수정

  • Launcher 오른쪽 상단의 설정을 엽니다.
  • 「외부 도메인 TLS 인증서 업데이트」를 클릭합니다.
  • 인증서 정보를 추가하고 TLS 인증서를 업데이트합니다.

  • 확인

dataflux.cn을 예로 들면:

kubectl get secret -A  | grep dataflux.cn

forethought-core              dataflux.cn                                            kubernetes.io/tls                     2      8d
forethought-kodo              dataflux.cn                                            kubernetes.io/tls                     2      8d
forethought-webclient         dataflux.cn                                            kubernetes.io/tls                     2      8d
func2                         dataflux.cn                                            kubernetes.io/tls                     2      8d
middleware                    dataflux.cn                                            kubernetes.io/tls                     2      8d
utils                         dataflux.cn                                            kubernetes.io/tls                     2      8d

2단계: Ingress에 TLS 추가

  • 다음 스크립트를 실행하여 백업 명령을 수행할 수 있습니다:
NAMESPACE="forethought-core forethought-kodo forethought-webclient func2 middleware utils launcher"

for i in $NAMESPACE;
do
  for ing in $(kubectl get ing -n $i -o jsonpath='{.items[*].metadata.name}');
  do
  filename=ing-$i-$ing.yaml
  kubectl get ing $ing -n $i -o yaml > $filename
  done
done
  • 다음 스크립트를 실행하여 주소를 수정합니다:
주의

SecretName 변수를 실제 도메인의 secret name으로 변경해야 합니다.

SecretName="dataflux.cn"

NAMESPACE="forethought-core forethought-kodo forethought-webclient func2 middleware utils launcher"

for i in $NAMESPACE; do
  for ing in $(kubectl get ing -n $i -o jsonpath='{.items[*].metadata.name}'); do
    # Ingress에 TLS가 이미 구성되어 있는지 확인
    TLS_EXISTS=$(kubectl get ing "$ing" -n "$i" -o jsonpath='{.spec.tls}')

    if [ -z "$TLS_EXISTS" ]; then
      # 현재 Ingress의 hosts 추출
      HOSTS=$(kubectl get ing "$ing" -n "$i" -o jsonpath='{.spec.rules[*].host}')

      # kubectl patch 명령을 사용하여 각 Ingress 업데이트
      kubectl patch ingress "$ing" -n "$i" --type='json' -p="[
        {
          \"op\": \"add\",
          \"path\": \"/spec/tls\",
          \"value\": [
            {
              \"hosts\": [$HOSTS],
              \"secretName\": \"$SecretName\"
            }
          ]
        }
      ]"
      echo "네임스페이스 $i의 Ingress $ing가 HTTPS를 사용하도록 업데이트되었습니다."
    else
      echo "네임스페이스 $i의 Ingress $ing에는 이미 HTTPS가 구성되어 있습니다. 건너뜁니다."
    fi
  fi
done

3단계: Guance 프론트엔드 설정 수정

  • Launcher 오른쪽 상단의 설정을 엽니다.
  • 「애플리케이션 설정 수정」을 클릭합니다.
  • 「네임스페이스: forethought-webclient」-「frontWeb(User Frontend)」 및 「managementWeb(Management Platform Frontend)」를 수정하여 http를 https로 변경합니다.

롤백 방법

  • 프론트엔드 설정을 원래대로 되돌립니다.
  • 백업한 Ingress YAML을 적용합니다.
ls ing*.yaml | xargs -n 1 kubectl apply -f

문서 평가

이 페이지가 도움이 되었나요?