コンテンツにスキップ

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 "Updated Ingress $ing in namespace $i to use HTTPS."
    else
      echo "Ingress $ing in namespace $i already has HTTPS configured. Skipping."
    fi
  done
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

フィードバック

このページは役に立ちましたか?