|NO.Z.00150|——————————|CloudNative|——|KuberNetes&服務釋出.V01|-------------------------------------------------------|label&selector.v01|概述|
阿新 • • 發佈:2022-03-30
[CloudNative:KuberNetes&服務釋出.V01] [Applications.KuberNetes] [|DevOps|k8s|服務釋出|Label&Selector|]
一、Label和Selector:
二、label和selector架構說明 三、label和select概述說明### --- k8s的;label和selector概述 ~~~ Label:對k8s中各種資源進行分類、分組,新增一個具有#特別屬性的一個標籤。 ~~~ Selector:通過#一個過濾的語法進行查詢到對應標籤的資源
### --- label和select概述說明
~~~ # 使用應用程式的時候需求案例:在發版應用的時候:
~~~ 比如我們有一個Backend容器,還有一個Frontend容器,
~~~ Backend去連線到Frontend是通過Service去連線到後端。
~~~ # 應該是Frontend到service,然後service到Backend ~~~ 我們怎麼知道這個service管理的後端Pod是那些呢?就是通過Label和Selector來區分的。 ~~~ 我們可以在這個Service上配置一個Selector,app=nginx,這個Pod就有一個標籤是app=nginx, ~~~ 這樣這個service就可以通過這個標籤連線到對應的Pod,然後這個Frontend通過這個Service到後端。 ~~~ # 假設情況二:這個後端有一個相同的應用,比如叫Backend Cronjob: ~~~ 這個Cronjob去跑一些程式的應用,但是我們並不希望它去接收流量, ~~~ 這樣這個service不能把這個流量打到這個Backend上面, ~~~ 這時候在這個service中加一個Label,加一個過濾,就可以把cronjob接收流量操作給過濾掉。
四、Label和 Selector~~~ # 但是隻寫了一個App=nginx:但是它對應的Pod有2個, ~~~ 因為它兩個應用個對應的標籤都是App=nginx。 ~~~ # 所以說需要把Backend Pod要打一個特殊屬性的標籤, ~~~ 比如:Role:backend-app:可以認定它為後端伺服器,用來接收流量的, ~~~ Backend Cronjob新增標籤:Role:backend-cj:這樣在service中再加一個role=backend-app, ~~~ 這樣就可以通過兩個標籤把這個service定位到Backend Pod上,而不是定位在其他Pod上。 ~~~ 當然這個Label可以應用到k8s中的任何資源中的。
### --- Label和 Selector
~~~ 當Kubernetes對系統的任何API物件如Pod和節點進行“分組”時,
~~~ 會對其新增Label(key=value形式的“鍵-值對”)用以精準地選擇對應的API物件。
~~~ 而Selector(標籤選擇器)則是針對匹配物件的查詢方法。注:鍵-值對就是key-value pair。
~~~ 例如,常用的標籤tier可用於區分容器的屬性,如frontend、backend;
~~~ 或者一個release_track用於區分容器的環境,如canary、production等。
===============================END===============================
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
來自為知筆記(Wiz)