在微服務架構中,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所在節點為同一節點。
相關文檔
部署應用時,關於應用親和性和反親和性調度規則的更多資訊,請參見配置調度規則。