20. 將 SyncServer 新增至根管理員叢集

預計完成時間:1 小時

可操作元件擁有者:NTP

技能設定檔:部署工程師

設定叢集時,系統會使用 SyncServer 準確記錄時間,如果時間來源中斷連線,也會使用 SyncServer。根管理員伺服器執行時,可以設定與 SyncServer 搭配運作。

20.1. 設定 SyncServer

cellcfg產生後,即可設定 SyncServer 的 IP。下列步驟需要實際存取 SyncServer。

20.1.1. 判斷 SyncServer IP 位址,以設定 LAN1

  1. 找出安裝 SyncServer 的機架專屬 SubnetClaim。舉例來說,如果 SyncServer 安裝在機架 aa-bb 中,SubnetClaim 名稱為 aa-bb-mgmtsw01-ntp-os-subnet,且位於根管理叢集的 root 命名空間中,如要擷取子網路聲明名稱,請執行下列指令:

    kubectl --kubeconfig ROOT_ADMIN_CLUSTER get subnetclaims -A | grep ntp
    
  2. 擷取閘道:

    kubectl get subnetclaim SUBNETCLAIM_NAME -n root -o json | jq .status.ipv4SubnetStatus.gateway
    
  3. 判斷 IP 和網路遮罩:

    kubectl get subnetclaim SUBNETCLAIM_NAME -n root -o json | jq .status.ipv4SubnetStatus.cidrBlock
    

    您可以從 CIDR 區塊內的任何免費 IP 位址使用 IP 位址。子網路遮罩是從 CIDR 區塊的 CIDR 前置字串長度轉換而來。建立該 SyncServer 的 TimeServer 物件時,請使用為 SyncServer 選擇的 IP 位址,取代變數 MANAGEMENT_IP,如「建立 TimeServer 物件」一節所述。

20.1.2. 設定 LAN1 介面的 SyncServer

如要設定 IP 位址,請先開啟 LAN1 介面,這個連接埠可供管理員連線。如要開啟這個介面,請使用裝置正面的鍵盤執行下列動作:

  1. 存取「選單」
  2. 輸入 1-LAN1
  3. 輸入 2-On/Off
  4. 輸入 1-On

介面開啟後,您必須設定 IP 位址。使用裝置正面的鍵盤執行下列指令:

  1. 存取「選單」
  2. 輸入 1-LAN1
  3. 輸入 1-Configure
  4. 輸入 1-IPv4
  5. 輸入 1-Static

20.1.3. 判斷儲存格資源中是否存在 SyncServer LAN2 連線

  1. 將儲存格名稱匯出至變數:

    export CELL_NAME=$(kubectl get cell -n gpc-system -o jsonpath='{.items[0].metadata.name}')
    
  2. 確認 AA 機架的 NTP SyncServer LAN2 端點存在於 Cell 資源中。否則,請在儲存格資源中建立端點:

    1. 定義「AA」機架的第一個 NTP 伺服器端點:

      export END_A1=$CELL_NAME-aa-torsw01:Eth1/34
      export END_B1=$CELL_NAME-aa-ntp01:LAN2
      
    2. 定義「AA」機架的第二個 NTP 伺服器端點:

      export END_A2=$CELL_NAME-aa-torsw02:Eth1/34
      export END_B2=$CELL_NAME-aa-ntp02:LAN2
      
    3. 將「AA」機架的第一個 NTP SyncServer 端點從儲存格資源複製到變數:

      INDEX1=$(kubectl get cell "$CELL_NAME" -n gpc-system -o json | \
          jq '.spec.connections | index( .[] | select(.endA == "'"$END_A1"'" and .endB == "'"$END_B1"'") )')
      
    4. 列印 INDEX1 變數的輸出內容:

      echo $INDEX1
      
    5. 如果 INDEX1 的輸出內容為空白,請為第一個 SyncServer 裝置建立修補程式:

      kubectl patch cell "$CELL_NAME" -n gpc-system --type=json \
      -p='[{"op": "add", "path": "/spec/connections/-", "value": {"endA": "'"$END_A1"'", "endB": "'"$END_B1"'"}}]'
      
    6. 將「AA」機架的第二個 NTP SyncServer 端點從儲存格資源複製到變數:

      INDEX2=$(kubectl get cell "$CELL_NAME" -n gpc-system -o json | \
          jq '.spec.connections | index( .[] | select(.endA == "'"$END_A2"'" and .endB == "'"$END_B2"'") )')
      
    7. 列印 INDEX2 變數的輸出內容:

      echo $INDEX2
      
    8. 如果 INDEX2 的輸出內容為空白,請為第二部 SyncServer 裝置建立修補程式:

      kubectl patch cell "$CELL_NAME" -n gpc-system --type=json \
      -p='[{"op": "add", "path": "/spec/connections/-", "value": {"endA": "'"$END_A2"'", "endB": "'"$END_B2"'"}}]'
      
  3. 確認 AC 機架的 NTP SyncServer LAN2 端點存在於儲存格資源中。否則,請在儲存格資源中建立端點:

    1. 定義「AC」機架的第一個 NTP 伺服器端點:

      export END_A1=$CELL_NAME-ac-torsw01:Eth1/34
      export END_B1=$CELL_NAME-ac-ntp01:LAN2
      
    2. 定義「AC」機架的第二個 NTP 伺服器端點:

      export END_A2=$CELL_NAME-ac-torsw02:Eth1/34
      export END_B2=$CELL_NAME-ac-ntp02:LAN2
      
    3. 將「AC」機架的第一個 NTP SyncServer 端點從儲存格資源複製到變數:

      INDEX1=$(kubectl get cell "$CELL_NAME" -n gpc-system -o json | \
          jq '.spec.connections | index( .[] | select(.endA == "'"$END_A1"'" and .endB == "'"$END_B1"'") )')
      
    4. 列印 INDEX1 變數的輸出內容:

      echo $INDEX1
      
    5. 如果 INDEX1 的輸出內容為空白,請為第一個 SyncServer 裝置建立修補程式:

      kubectl patch cell "$CELL_NAME" -n gpc-system --type=json \
      -p='[{"op": "add", "path": "/spec/connections/-", "value": {"endA": "'"$END_A1"'", "endB": "'"$END_B1"'"}}]'
      
    6. 將「AC」機架的第二個 NTP SyncServer 端點從儲存格資源複製到變數:

      INDEX2=$(kubectl get cell "$CELL_NAME" -n gpc-system -o json | \
          jq '.spec.connections | index( .[] | select(.endA == "'"$END_A2"'" and .endB == "'"$END_B2"'") )')
      
    7. 列印 INDEX2 變數的輸出內容:

      echo $INDEX2
      
    8. 如果 INDEX2 的輸出內容為空白,請為第二部 SyncServer 裝置建立修補程式:

      kubectl patch cell "$CELL_NAME" -n gpc-system --type=json \
      -p='[{"op": "add", "path": "/spec/connections/-", "value": {"endA": "'"$END_A2"'", "endB": "'"$END_B2"'"}}]'
      

20.1.4. 判斷 SyncServer IP 位址,以設定 LAN2

  1. 擷取閘道:

    kubectl get subnetclaim ntp-dataplane-subnet -n root -o json | jq .status.ipv4SubnetStatus.gateway
    
  2. 判斷 IP 位址和網路遮罩:

    kubectl get subnetclaim ntp-dataplane-subnet -n root -o json | jq .status.ipv4SubnetStatus.cidrBlock
    

    您可以從 CIDR 區塊內的任何免費 IP 位址,設定每個 SyncServer 裝置。網路遮罩是從 CIDR 區塊的 CIDR 前置字串長度轉換而來。為 SyncServer 選擇的 IP 位址會取代變數 DATA_IP,用於為「建立 TimeServer 物件」中定義的 SyncServer 建立 TimeServer 物件。

20.1.5. 設定 LAN2 介面的 SyncServer

如要設定 IP 位址,您必須開啟 LAN2 介面,也就是允許管理員連線的通訊埠。如要開啟這個介面,請使用裝置正面的鍵盤執行下列動作:

  1. 存取「選單」
  2. 輸入 1-LAN2
  3. 輸入 2-On/Off
  4. 輸入 1-On

介面開啟後,請在鍵盤上執行下列指令來設定 IP 位址:

  1. 存取「選單」
  2. 輸入 1-LAN2
  3. 輸入 1-Configure
  4. 輸入 1-IPv4
  5. 輸入 1-Static

20.1.6. 圖形使用者介面 (GUI)

使用 HTTPS 連線至 GUI。

20.1.7. 變更管理員密碼

設定 IP 位址後,只要在瀏覽器中輸入 IP 位址,即可存取網頁介面。

  • 預設使用者名稱為「admin」。
  • 預設密碼為 Microsemi

使用者首次登入時,系統會要求他們變更預設密碼。建立自訂密碼時,唯一的要求是密碼長度必須介於 16 到 64 個字元之間。

儲存新的登入資訊,以備不時之需

20.1.8. 使用 GUI 升級韌體

按照「手動升級 SyncServer」一文的說明升級韌體。

20.1.9. 設定 CLI 工作階段逾時

使用先前產生的 IP 和憑證,透過 SSH 連線至 SyncServer

ssh $SYNCSERVER_USERNAME@$SYNCSERVER_IP

在終端機中輸入下列指令,將登入工作階段逾時時間設為 30 分鐘:

set-session-timeout

SyncServer CLI 會提示您輸入以秒為單位的值:

Timeout ( 0 - 86400 sec):

輸入 1800,然後按下 Enter。預期的回覆:

1800 sec timeout set successfully

結束工作階段:

logout

20.2. 設定 SyncServer 時間

每部 SyncServer 必須設定相同的時間。這包括取得外部時間來源 (例如手機),手動設定啟動程式上的時鐘。

20.2.1. 建立 TimeServer 物件

  1. 將 SyncServer 的登入憑證記錄為 Kubernetes 密鑰。使用者名稱和密碼必須以 base64 編碼字串的形式輸入:

    kubectl create secret generic \
    --namespace=ntp-system syncserver-user-login-DEVICE_NAME \
    --from-literal=username=SYNCSERVER_USERNAME \
    --from-literal=password=SYNCSERVER_PASSWORD \
    --from-literal=pin=SYNCSERVER_PIN
    

    更改下列內容:

    • DEVICE_NAME:裝置的專屬名稱或 ID。這個值用於建立不重複的 Kubernetes 密鑰名稱。
    • SYNCSERVER_USERNAME:與 SyncServer 進行驗證時所需的使用者名稱。
    • SYNCSERVER_PASSWORD:與 SYNCSERVER_USERNAME 對應的密碼,用於驗證。
    • SYNCSERVER_PIN:SyncServer 要求的 PIN 碼。
  2. 使用管理網路上的 SyncServer IP 位址建立 TimeServer 物件:

    kubectl apply -f - <<EOF
    apiVersion: system.private.gdc.goog/v1alpha1
    kind: TimeServer
    metadata:
        name: syncserver-s650-DEVICE_NAME-manual
        namespace: ntp-system
    spec:
        network:
            address: MANAGEMENT_IP
        adminCredentialsRef:
            name: syncserver-user-login-DEVICE_NAME
            namespace: ntp-system
    EOF
    

    MANAGEMENT_IP 替換為管理網路中 SyncServer 的 IP 位址。

20.2.2. 在啟動程式上設定時鐘

取得目前的世界標準時間日期和時間,並在啟動程序上設定:

date -s '2024-10-23 13:23:13'

請先確認手機或筆電的目前日期是否正確,再繼續操作:

$ date
Wed 23 Oct 2024 01:23:15 PM UTC

20.2.3. 設定 SyncServer 時間

首先,請執行下列指令,指定正確的叢集:

export KUBECONFIG=/root/release/root-admin/root-admin-kubeconfig

然後,從發布構件執行下列指令碼,將時間從啟動程式轉移至 SyncServers:

python3 scripts/manage_syncserver_time.py --update-time

如要查看時間但不變更,請執行:

python3 scripts/manage_syncserver_time.py --check-time
current time: 2024-10-23 16:54:11
10.200.0.2 time: 2024-10-23 16:54:09
10.200.0.3 time: 2024-10-23 16:54:09

20.2.4. 設定 SyncServer 時區

在 SyncServer GUI 中,依序前往「Timing」>「Timezone」,確認已為您的宇宙設定正確時區。

20.2.5. 將 SyncServer 新增至 NTPRelay

  1. 選擇其中一個 SyncServer IP 位址,並新增至根管理員:NTPRelay

    kubectl edit ntprelay -n gpc-system
    

    必須將 SyncServer IP 位址新增至 .spec.upstreamServers,如下所示:

    apiVersion: system.private.gdc.goog/v1alpha1
    kind: NTPRelay
    metadata:
        name: ntp-relay
        ...
    spec:
        upstreamServers:
        - 203.0.113.2
    
  2. 儲存這些變更,並確認設定正確:

    kubectl get ntprelay -n gpc-system -oyaml
    ...
    spec:
        upstreamServers:
        - 203.0.113.2
    
  3. 大約 5 分鐘後,確認 NTP Pod 是否已與 SyncServer 同步:

    kubectl get pods -l app.kubernetes.io/name=ntp -n ntp-system -o name | xargs -I {} kubectl exec {} -n ntp-system -- chronyc sources
    

    輸出內容應包含 SyncServer IP,且每行都有 ^* 做為 MS

20.3. 簽署 SyncServer 網頁介面的憑證

每個 SyncServer 都需要以各自的金鑰簽署的個別憑證。 您無法為所有 SyncServer 使用相同的簽署憑證。

20.3.1. 下載憑證簽署要求

  1. 在 SyncServer 使用者介面中建立 CSR:

    SyncServer CSR

  2. 為 CSR 設定下列資訊:

    SyncServer CSR

  3. 按一下下載按鈕,並將檔案名稱指派給這個變數:

    export SYNCSERVER_CSR=
    

20.3.2. 簽署憑證

  1. 以 Base64 編碼憑證:

    export ENCODED_CERT=$(cat $SYNCSERVER_CSR | base64 -w 0)
    
  2. 找出根管理員叢集的 kubeconfig 路徑:

    export KUBECONFIG=KUBECONFIG_PATH
    
  3. 建立 CertificateRequest:

    kubectl --kubeconfig ${KUBECONFIG:?} apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: CertificateRequest
    metadata:
        name: root-admin-syncserver-cr
        namespace: gpc-system
    spec:
        request: '${ENCODED_CERT}'
        isCA: false
        usages:
        - server auth
        duration: 2160h
        issuerRef:
            name: internal-root-ca-issuer
            kind: ClusterIssuer
    EOF
    
  1. 查看憑證要求狀態:

    kubectl --kubeconfig ${KUBECONFIG:?} get certificaterequest root-admin-syncserver-cr -n gpc-system -o json | jq '.status.conditions'
    

    您必須看到憑證成功獲得核准,輸出內容類似如下:

    [
        {
            "lastTransitionTime": "2023-01-01T12:59:59Z",
            "message": "Certificate request has been approved by cert-manager.io",
            "reason": "cert-manager.io",
            "status": "True",
            "type": "Approved"
        },
        {
            "lastTransitionTime": "2023-01-01T12:59:59Z",
            "message": "Certificate fetched from issuer successfully",
            "reason": "Issued",
            "status": "True",
            "type": "Ready"
        }
    ]
    

    如果 1 分鐘後未看到預期輸出內容,請將問題提報給工程團隊進行偵錯。

  2. 將憑證放入檔案。您必須為已簽署的憑證定義名稱:

    export SIGNED_CERT_NAME=
    export CERT_CHAIN=
    

    從 CertificateRequest 擷取憑證:

    kubectl --kubeconfig ${KUBECONFIG:?} get certificaterequest root-admin-syncserver-cr -n gpc-system -o json | jq -r '.status.certificate' | base64 --decode > $SIGNED_CERT_NAME
    kubectl --kubeconfig ${KUBECONFIG:?} get certificaterequest root-admin-syncserver-cr -n gpc-system -o json | jq -r '.status.ca' | base64 --decode > $CERT_CHAIN
    

20.3.3. 在 SyncServer 上安裝憑證

  1. 在 SyncServer 使用者介面中,依序前往「Security」>「x.509 Install」

  2. 在「Install CA-Signed Certificates」(安裝 CA 簽署的憑證) 中找到「manual-cert」,然後按一下「Install」(安裝)

  3. 選取「憑證和鏈結」

    1. 在「憑證」中上傳 $SIGNED_CERT_NAME
    2. 上傳$CERT_CHAIN中的憑證鏈結
    3. 為這兩項憑證選取「PEM」做為編碼類型。
    4. 按一下 [安裝]
  4. 依序前往「Security」(安全性) >「X.509 Mapping」(X.509 對應)

    1. 在 HTTPS 下拉式清單中選取「manual-cert」,然後按一下「套用」

20.4. 設定 NTP 加密

請按照 NTP-P0001 - 設定 NTP 加密操作。

20.5. 設定 PANW NTP 驗證

在本節中,您將設定 PANW NTP 驗證。您將列出不同的防火牆、判斷哪些金鑰已指派給 NTPRelay、找出已使用和未使用的金鑰 ID,並產生對稱金鑰。您必須為每種防火牆類型執行一次本節中的步驟,因此總共要執行兩次。

20.5.1. 設定環境變數並指派防火牆類型

Distributed Cloud 提供兩種 PANW 防火牆:

  • IDPS:入侵偵測防禦系統。
  • 周邊:周邊防火牆。

針對每個防火牆類型,重複執行下列步驟:idpsperimeter

使用防火牆類型來設定環境變數:

   export FW_TYPE=<idps|perimeter>

20.5.2. 手動建立對稱金鑰

完成「手動建立對稱金鑰」中的其餘步驟,直到「在 fw-system 中建立使用防火牆所用對稱金鑰的密鑰」。執行兩次指令,一次是針對防火牆類型 idps,另一次是針對防火牆類型 perimeter

20.5.2.1. 找出未使用的金鑰 ID 並指派給變數

  1. 找出根管理員叢集的 kubeconfig 路徑:

    export KUBECONFIG=KUBECONFIG_PATH
    export NTPRELAY_NAME=$(kubectl --kubeconfig ${KUBECONFIG:?} -n gpc-system get ntprelay -o  jsonpath='{.items[0].metadata.name}')
    

    KUBECONFIG_PATH 替換為根管理員叢集的 kubeconfig 路徑。

  2. 執行下列 kubectl 指令,列出 NTPRelay 目前使用的金鑰:

    kubectl --kubeconfig ${KUBECONFIG:?} get ntprelay $NTPRELAY_NAME -n gpc-system -o json | jq '.spec |  {downstreamSymmetricKeys}'
    
  3. 金鑰 ID 為整數。您可以使用 NTPRelaydownstreamSymmetricKeys spec 欄位中未列出的任何 ID。將未使用的金鑰 ID 指派給 NTP_KEY_ID 變數:

    export NTP_KEY_ID=NTP_KEY_ID<>
    

    NTP_KEY_ID 替換為未使用的金鑰 ID 整數值。

20.5.2.2. 產生對稱金鑰

  1. 使用下列 chronyc keygen 指令產生 SHA-1 金鑰。您必須在啟動程式上執行這項指令:

    CHRONY_OUTPUT=$(chronyc keygen ${NTP_KEY_ID:?} SHA1)
    

    輸出看起來類似以下內容:

    $ echo $CHRONY_OUTPUT
    99 SHA1 HEX:6CDDCC99D390226D4D5CD14D8CBE40E9852BDFFB
    
  2. 使用 chrony 輸出內容的部分資訊,設定下列變數:

    export NTP_KEY_ENCODING=$(echo ${CHRONY_OUTPUT:?} | awk '{ split($3,key,":"); print key[1]}')
    export NTP_KEY_STR=$(echo ${CHRONY_OUTPUT:?} | awk '{ split($3,key,":"); print key[2]}')
    export NTP_KEY_TYPE=$(echo ${CHRONY_OUTPUT:?} | awk '{ print $2 }')
    
  3. 將金鑰附加至 NTP-P0001 - 設定 NTP 加密期間建立的 syncserver 金鑰檔案。

    echo "${NTP_KEY_ID:?} ${NTP_KEY_TYPE:?} ${NTP_KEY_STR:?}" >> syncserver_keyfile.txt
    

20.5.3. 建立密鑰來保存金鑰

  1. 定義將保存金鑰的密鑰名稱:

    export NTP_KEY_NAME=${FW_TYPE:?}-fw-ntp-symmectric-key
    
  2. 執行下列 kubectl 指令,建立含有金鑰資訊的密鑰:

    kubectl --kubeconfig ${KUBECONFIG:?} create -n ntp-system -f - <<EOF
    apiVersion: v1
    kind: Secret
    metadata:
      generateName: ${NTP_KEY_NAME:?}
    stringData:
      keyStr: ${NTP_KEY_STR:?}
    EOF
    

20.5.3.1. 更新 NTPRelay,將密鑰做為 DownstreamSymmetricKeys 使用

  1. 將金鑰資訊修補到 NTPRelay

    kubectl --kubeconfig ${KUBECONFIG:?} patch ntprelay/${NTPRELAY_NAME:?} -n gpc-system \
    --patch '{"spec":  {"downstreamSymmetricKeys": [{"id": '${NTP_KEY_ID:?}',"type": \
    "'${NTP_KEY_TYPE:?}'","encoding":  "'${NTP_KEY_ENCODING:?}'","keyRef": {"name": \
    "'${NTP_KEY_NAME:?}'","namespace": "ntp-system"}}]}}' --type merge
    
  2. 重新啟動 NTPRelay 以偵測變更:

    sleep 5; kubectl --kubeconfig ${KUBECONFIG:?} delete pod -n ntp-system -l app.kubernetes.io/name=ntp
    

20.5.4. 使用防火牆在 fw-system 中使用的對稱式金鑰建立密鑰

為防火牆建立另一個對稱式金鑰密碼。這個對稱金鑰密鑰與您在「手動建立對稱金鑰」一節中建立的密鑰不同,後者位於 ntp-system 命名空間。不過,這個密鑰會包含相同的對稱金鑰和金鑰 ID。

20.5.4.1. 取得防火牆節點內部名稱

  1. 取得 firewallnodeinternal 節點名稱:

    kubectl --kubeconfig ${KUBECONFIG:?} get firewallnodeinternal -n gpc-system -l \
    firewall.private.gdc.goog/type=$FW_TYPE
    

    輸出內容會列出兩個 firewallnodeinternal 節點名稱。針對每個 firewallnodeinternal 節點名稱,完成「定義密鑰名稱」一節中的步驟。

20.5.4.2. 定義密鑰名稱

  1. 定義要保存金鑰的密鑰名稱:

    export NTP_KEY_NAME=FW_NODE_INTERNAL_NAME-ntp-symmectric-key-enc
    

    FW_NODE_INTERNAL_NAME 替換為內部防火牆節點名稱。

  2. 建立密鑰,並為每個內部防火牆節點名稱新增標籤:

    kubectl --kubeconfig ${KUBECONFIG:?} create secret generic \
    --namespace=fw-system $NTP_KEY_NAME \
    --from-literal=keyStr=$NTP_KEY_STR \
    --from-literal=keyID=$NTP_KEY_ID \
    && kubectl --kubeconfig ${KUBECONFIG:?} label secret $NTP_KEY_NAME \
    -n fw-system 'system.private.gdc.goog/credential-type=firewall-ntp-auth-key' \
    'system.private.gdc.goog/credentialid=FW-0010'
    

    您可以使用下列 kubectl 指令查看 Secret 資源:

    kubectl --kubeconfig ${KUBECONFIG:?} get secret --namespace=fw-system $NTP_KEY_NAME -o yaml
    

    Secret 類似以下範例:

    apiVersion: v1
    kind: Secret
    data:
     keyStr:  075A077BA4BEDF1F8B714665ABD271BA1C18617E
     keyID: 1
     metadata:
     name: $NTP_KEY_NAME
     namespace: fw-system
    
  3. 確認每個內部防火牆節點都具備一個主金鑰和一個 NTP 驗證金鑰。

  4. 針對每個內部防火牆節點,在 spec.credentials 中附加密鑰,並將 full-config-replace 值設為 true

    kubectl patch --kubeconfig ${KUBECONFIG:?} firewallnodeinternal/FW_NODE_INTERNAL_NAME -n gpc-system --type json -p '[{"op": "add", "path": "/spec/credentials/-", "value": {"credentialRef": {"name": "'"${NTP_KEY_NAME:?}"'", "namespace": "fw-system"}, "credentialType": "NTPAuthKey"}}]'
    
    # Get the current annotation value
    CURRENT_VALUE=$(kubectl get firewallnodeinternal/FW_NODE_INTERNAL_NAME  -n gpc-system -o json | jq -r '.metadata.annotations."firewall.private.gdc.goog/full-config-replacement-needed"')
    
    # Check if the annotation is "false"
    if [[ "$CURRENT_VALUE" == "false" ]]; then
      # Patch the annotation to "true"
      kubectl patch firewallnodeinternal/FW_NODE_INTERNAL_NAME  -n gpc-system --type merge
    -p '{"metadata": \ {"annotations":
    {"firewall.private.gdc.goog/full-config-replacement-needed": "true"}}}'
    fi
    

20.5.4.3. 將金鑰檔案上傳至 SyncServer

  1. 針對每個 SyncServer,在 SyncServer UI 的 Dashboard -> Security -> NTPd Symmetric Keys 下,上傳先前建立的對稱式安全金鑰檔案 syncserver_keyfile.txt

透過 SyncServer 使用者介面上傳對稱安全金鑰

20.6. 在 SyncServer 上自訂登入橫幅

  1. 在 SyncServer UI 中,依序前往「Admin」>「Banner Config」

  2. 從「已停用」、「USG」或「客戶橫幅」中選取橫幅設定。

  3. 在橫幅設定選單中,選取「已停用」、「USG」或「客戶橫幅」

  4. 如果選取「Customer Banner」(客戶橫幅),請在「Customer Banner」(客戶橫幅) 方塊中,輸入客戶問卷調查 (CIQ) 中的文字值:systemUseNotification > banner。詳情請參閱「客戶問卷調查」。

  5. 勾選「Apply the banner for CLI Login」(為 CLI 登入套用橫幅) 核取方塊。

  6. 按一下 [套用]