我有 Kubernetes 集群(v. 1.22),在其中部署了 Nginx 入口控制器。我發現我可以在幾種情況下重新加載我的入口: 下一個串列描述了需要重新加載的場景:
- 已創建新的入口資源。
- TLS 部分已添加到現有 Ingress。
- Ingress 注釋的變化不僅僅影響上游配置。例如負載平衡注釋不需要重新加載。
- 從 Ingress 添加/洗掉路徑。
- 入口、服務、秘密被洗掉。
- 一些來自 Ingress 的缺失參考物件可用,例如 Service 或 Secret。
- 更新了一個 Secret。
我的入口現在只使用 HTTP 流量,我想將 TLS 部分添加到現有的入口。
所以,我的問題是:我應該怎么做才能重新加載我的入口?
我在檔案或其他地方找不到任何資訊。任何建議表示贊賞!
uj5u.com熱心網友回復:
在所有情況下,您所要做的就是更新 Ingress 或相關資源(例如,包含證書的機密)。您從檔案中參考的更多的是應用程式的技術背景,換句話說:在這種情況下需要重新加載。當控制器注意到與控制器關聯的資源發生變化時,實際重新加載是由控制器本身完成的。您可以重新啟動 pod(或nginx -s reload在每個pod 中執行)以強制更新,但根據我的經驗,沒有這樣的要求。
uj5u.com熱心網友回復:
我應該怎么做才能重新加載我的入口?
您只需要更新入口,在您的情況下,您只需要將 TLS 部分添加到現有入口。
然后(自動)入口控制器應該找到差異(如anemyte在其答案中所說)并更新入口。從現在開始,您將能夠使用 TLS。
一般來說,這一切都應該自動發生。理論上,這也可以手動完成,但不建議這樣做。本主題中對此進行了描述。
編輯:
我已經重現了這種情況。首先,我使用以下內容創建了簡單的入口ingress.yaml:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ing-1
spec:
ingressClassName: nginx
rules:
- host: www.example.com
http:
paths:
- backend:
service:
name: app-1
port:
number: 80
path: /
pathType: Prefix
然后我運行了kubectl get ingress,這是輸出:
NAME CLASS HOSTS ADDRESS PORTS AGE
ing-1 nginx www.example.com 35.X.X.X 80 3m
在這一步中,我有沒有 TLS 的作業入口(僅作業埠 80)。然后我tls.yaml為 TLS創建 了(我使用了自簽名證書,您需要使用您的證書和域):
apiVersion: v1
kind: Secret
metadata:
name: tls
data:
tls.crt: |
<my cert>
tls.key: |
<my key>
type: kubernetes.io/tls
我跑過去了kubectl apply -f tls.yaml,然后我做了ingress.yaml如下改變:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ing-1
spec:
ingressClassName: nginx
rules:
- host: www.example.com
http:
paths:
- backend:
service:
name: app-1
port:
number: 80
path: /
pathType: Prefix
# This section is only required if TLS is to be enabled for the Ingress
tls:
- hosts:
- www.example.com
secretName: tls
我添加了 TLS 部分。然后我跑了kubectl apply -f ingress.yaml,幾秒鐘后我可以在運行時看到這個輸出kubectl get ingress:
NAME CLASS HOSTS ADDRESS PORTS AGE
ing-1 nginx www.example.com 35.239.7.126 80, 443 18m
TLS 正在作業。在日志中,我可以看到此訊息:
Event(v1.ObjectReference{Kind:"Ingress", Namespace:"default", Name:"ing-1", UID:"84966fae-e135-47bb-8110-bf372de912c8", APIVersion:"networking.k8s.io/v1", ResourceVersion:"11306", FieldPath:""}): type: 'Normal' reason: 'Sync' Scheduled for sync
入口自動重新加載:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/379928.html
上一篇:我正在嘗試創建一個登錄頁面,該頁面可以轉到應用程式的主頁,但該按鈕根本無法點擊,就像一堵墻。我有
下一篇:Kubernetes部署滾動更新
