全域性 Kubernetes 上游
目錄結構
|-- global_k8s_upstreams/
|-- global_k8s_upstreams.yaml
|-- ...
YAML 檔案中可以包含一個或多個全域性 Kubernetes 上游配置。
配置說明
每個全域性 Kubernetes 上游配置都是一個鍵值對,其中鍵是上游名稱,值是一個包含以下引數的物件:
引數名 | 資料型別 | 是否必選 | 描述 |
---|---|---|---|
ssl | boolean | 否 | 是否啟用 SSL 連線,預設為 false |
disable_ssl_verify | boolean | 否 | 是否禁用 SSL 驗證,預設為 false |
enable_checker | boolean | 否 | 是否啟用健康檢查,預設為 false |
k8s_services | array | 是 | Kubernetes 服務列表 |
checker | object | 否 | 健康檢查配置,僅在 enable_checker 為 true 時有效 |
k8s_services 配置
引數名 | 資料型別 | 是否必選 | 描述 |
---|---|---|---|
k8s_name | string | 是 | Kubernetes 叢集名稱 |
k8s_namespace | string | 是 | Kubernetes 名稱空間 |
k8s_service | string | 是 | Kubernetes 服務名稱 |
k8s_service_port | integer | 是 | Kubernetes 服務埠 |
checker 配置
健康檢查配置包含多個引數,用於定義如何進行健康檢查。主要引數包括:
引數名 | 資料型別 | 描述 |
---|---|---|
type | string | 健康檢查型別,如 “http” |
interval | integer | 檢查間隔 |
timeout | integer | 超時時間 |
fall | integer | 連續失敗次數閾值 |
rise | integer | 連續成功次數閾值 |
http_req_method | string | HTTP 請求方法 |
http_req_uri | string | HTTP 請求 URI |
valid_statuses | array | 有效的 HTTP 狀態碼列表 |
配置示例
global_k8s_upstream_name1:
ssl: false
disable_ssl_verify: false
enable_checker: true
k8s_services:
- k8s_name: k8s_cluster_name1
k8s_namespace: default
k8s_service: test-hello
k8s_service_port: 80
- k8s_name: k8s_cluster_name1
k8s_namespace: default
k8s_service: test-hello-2
k8s_service_port: 82
checker:
user_agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0
valid_statuses:
- 200
- 302
rise: 2
type: http
fall: 3
interval: 3
timeout: 1
http_req_method: GET
http_req_host: test.com
http_req_uri: /status
global_k8s_upstream_name2:
ssl: true
disable_ssl_verify: true
enable_checker: false
k8s_services:
- k8s_name: k8s_cluster_name1
k8s_namespace: default
k8s_service: test-hello-2
k8s_service_port: 82
此配置定義了兩個全域性 Kubernetes 上游,一個啟用了健康檢查,另一個啟用了 SSL 但禁用了健康檢查。
使用示例
更新配置到 OpenResty Edge 中:
edge-config https://192.168.1.1 -s -t 2051e780-1897-4ea0-92b4-2c2f0169aa94 -l global_k8s_upstreams -i /root/oredge-configs
從 OpenResty Edge 中匯出配置:
edge-config -u https://192.168.1.1 -s -t 2051e780-1897-4ea0-92b4-2c2f0169aa94 -E -l global_k8s_upstreams
示例中均使用 -l global_k8s_upstreams
來指定只匯入/匯出全域性 Kubernetes 上游相關的配置。
注意事項
全域性 Kubernetes 上游是一個全域性配置,為了保持與多個本地配置的相容性,在更新配置時不會執行刪除操作。
每個全域性 Kubernetes 上游必須有一個唯一的名稱。
k8s_name
必須是已經在系統中定義的 Kubernetes 叢集名稱。k8s_service_port
必須是一個有效的埠號(1-65535)。如果啟用了健康檢查(
enable_checker: true
),必須提供有效的checker
配置。在更新配置時,工具會比較新舊配置來確定是否需要更新。如果配置有變化,則會執行更新操作。
在匯入配置時,工具會先檢查配置的有效性,然後再執行新增或更新操作。
在匯出配置時,工具會將 Kubernetes 叢集 ID 轉換為叢集名稱,以便於配置的可讀性和可移植性。