設定 Schematics 代理使用代理伺服器
許多環境不容許直接連線至公用網際網路,但需要由安全 Proxy 閘道遞送連線。Schematics 代理程式配置原則容許使用不容許直接存取網際網路的 Proxy 伺服器。 您可以使用 HTTP 或 HTTPS 代理。
在叢集中的每一部主機上,Proxy 配置必須相同。 因此,在設定或修改代理程式時,必須更新部署、ConfigMap,和NetworkPolicy YAML 規範檔案。 然後重新啟動部署,以套用 Proxy 伺服器配置。
開始之前
在配置 Proxy 伺服器存取權之前,請確認下列需求已備妥。 這裡的範例在埠 3128 上使用 squid Proxy。
- 可使用 HTTP 或 HTTPS 連接 Google 且可從群集存取的代理伺服器。
- Proxy 伺服器 IP 位址及埠,例如
http://53.25.191.193:3128 - 叢集 Pod 上提供 curl 指令行工具。
配置 Proxy 伺服器
-
從 Kubernetes 叢集主控台。 按一下 Kubernetes 面板
-
在名稱空間選擇下拉方框中切換至 schematics-runtime。
-
在
Config and Storage區段下,按一下 配置對映,以顯示schematics-runtime名稱空間的對映。-
按一下
schematics-runtime-job-configconfigmap 資源,然後選取鉛筆圖示來編輯 YAML 檔,以新增HTTPS/HTTPProxy 陳述式。 -
在檔案下半部的
data內容下新增HTTPS/HTTPProxy 項目:data: HTTPS_PROXY: http://<ipaddress>:<port> HTTP_PROXY: http://<ipaddress>:<port> -
按一下更新以儲存 configmap,並確認新的 Proxy 項目顯示在檔案清單中。
-
針對
schematics-runtime-ansible-job-configconfigmap 資源重複執行。
-
-
在
Cluster區段下,按一下 網路原則 以顯示 Schematics-runtime 名稱空間的原則。- 編輯
whitelist-runtime-egress-gen-portsNetworkPolicy 檔案,以新增HTTPS/HTTPProxy 所使用的埠。 - 將
HTTPS/HTTPProxy 埠新增至埠內容。- ports: - protocol: TCP port: 3128
- 編輯
-
重新啟動
schematics-runtime部署,並驗證所有 Pod 都在執行中。- 在
Workloads區段下,按一下 部署,以顯示 Schematics-runtime 名稱空間的現行部署。 - 選取
runtime-job資源,然後重新啟動 Pod。 - 選取
runtime-ansible-job資源,然後重新啟動 Pod。
- 在
驗證 Proxy 伺服器存取權
驗證叢集 Pod 可以透過 Proxy 伺服器存取網際網路。
-
登入
schematics-runtimePod,並執行下列curl指令,以驗證是否在儲存器中正確地設定 Proxy 環境變數。 -
在
Workloads > Pods下,選取第一個job-runtime,並在其中輸入Exec。curl --head https://www.google.com
如果 Proxy 適用於 HTTPS,curl 指令會傳回 200 OK HTTP response。
如果 curl 指令無法連接,請驗證可從叢集存取 Proxy,並可遞送存取目標網站。 搭配使用下列 curl 指令與 Proxy 選項,以驗證 Proxy 是否可存取。
```curl {: codeblock}
curl --proxy http://<ipaddress>:<port> --head https://www.google.com
```
如果無法使用 Proxy 參數來存取網站,請驗證已正確設定叢集的網路輸出規則,且有 Proxy 的網路存取權。
如果可以使用 Proxy 參數來存取網站,請驗證已正確更新 configmap,並透過執行 env 指令來設定 HTTPS/HTTP Proxy 環境變數。
環境變數 HTTP_PROXY 和 HTTPS_PROXY 應該列在輸出中。 如果未列出,請重新檢查 configmap 定義。