在微服務架構中,K8s集群中可能會部署大量的應用,且不同的應用可能存在多個版本,此時集群中會出現大量的Pod。在EDAS控制臺對應用配置Label,能夠為該應用的所有Pod配置標簽,以鍵值對的形式對一組Pod進行標識。結合標簽選擇器,能夠在大量的Pod中篩選出具有特定標簽標識的一組Pod,便于分組管理。本文介紹在創建或部署應用時,如何為應用的Pod配置標簽。
操作步驟
登錄EDAS控制臺。
在左側導航欄,單擊 ,在頂部菜單欄選擇地域并在頁面上方選擇所屬微服務空間,在集群類型下拉列表,選擇K8s集群,然后在頁面單擊具體的應用名稱。
在應用總覽頁面右上角選擇 。
在選擇部署模式頁面的其中一種部署模式區域的右上角單擊開始部署。
說明本文以單批發布為例來說明操作步驟。
在單批發布頁面,修改部署參數,并展開標簽(Label)配置,配置自定義標簽鍵值對,完成配置后單擊確定。
說明標簽值需設置為該應用的應用名稱。
等待應用部署成功后,通過kubectl命令根據指定標簽鍵值查詢Pod。
kubectl get pod -l demo-app-name=sc-server-demo
結果示例如下:
NAME READY STATUS RESTARTS AGE sc-server-demo-group-1-1-5795d5487c-**** 2/2 Running 0 2m58s
基于Label實現應用親和性
在部署K8s集群中的應用時,通常需要考慮不同組件間的依賴關系。例如,將某些Pod調度到同一拓撲域下,或不能將某些Pod調度到同一拓撲域。此時為應用配置Label可以輔助配置自定義的應用親和性和反親和性。下面將介紹如何通過Label實現應用親和性。
前提條件
已部署了標簽為demo-app-name=sc-server-demo
的應用。
操作步驟
在另一個應用中配置應用親和性,將兩個應用的Pod調度至同一節點上。
登錄EDAS控制臺。
在左側導航欄,單擊 ,在頂部菜單欄選擇地域并在頁面上方選擇所屬微服務空間,在集群類型下拉列表,選擇K8s集群,然后在頁面單擊具體的應用名稱。
在應用總覽頁面右上角選擇 。
在選擇部署模式頁面,選擇其中一種部署模式,單擊開始部署。
說明本文以單批發布為例來說明操作步驟。
在單批發布頁面,修改應用的環境和部署包信息后,展開調度規則。
選擇模式配置為自定義配置,在應用親和性頁簽添加規則,參數配置如下:
拓撲域選擇
kubernetes.io/hostname
。應用標簽名配置為
demo-app-name
。操作符號選擇
In
。應用標簽值配置為
sc-server-demo
。
展開標簽(Label)配置,配置自定義標簽鍵值對
demo-app-name=sc-client-demo
,完成配置后單擊確定。等待應用部署成功后,通過kubectl命令檢查兩個應用Pod所在的節點。
kubectl get pod -l demo-app-name=sc-client-demo -o wide kubectl get pod -l demo-app-name=sc-server-demo -o wide
結果示例如下:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES sc-client-demo-group-1-1-5c5cbb9889-**** 2/2 Running 0 24s 10.85.***.*4 cn-hangzhou.192.168.AAA.BBB <none> <none> NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES sc-server-demo-group-1-1-5795d5487c-**** 2/2 Running 0 35m 10.85.***.*3 cn-hangzhou.192.168.AAA.BBB <none> <none>
從結果中可以看到兩個應用Pod所在節點為同一節點。
相關文檔
部署應用時,關于應用親和性和反親和性調度規則的更多信息,請參見配置調度規則。