Skip to content

Czym jest Label i Selector w Kubernetes?

Jest to komponent, który wydziela z całej przestrzeni klastra Kubernetes grupy (podgrupy) i porządkuje je wewnątrz wybranych nazw.

Przykładowo, możemy rozdzielać Deploymenty, Pody, Service przydzielając im własne nazwy. Tak jak zasoby mogą się widzieć, lub na jakie zasoby wpływamy wpisująć komendę lub tworząc nowy Service, który kieruje na dany Pod.

Labele umieszczamy jako para klucz:wartość w definicji manifestu.

Labele w Podzie

Wyświetlenie wszystkich Labeli (etykiet) w Podach

kubectl get pods --show-labels

Dodaje Labeli w Podzie

Labele (etykiety) podajemy w sekcji metadata.labels.

apiVersion: v1
kind: Pod
metadata:
    name: <pod_name>
    labels:
        <tutaj podajemy nasze labele>
        <np.>
        app: frontend
    spec:
        containers:
            - name: <nazwa_kontenera>
              image: <nazwa_image>

Później z użyciem kubectl możemy się odwołać do takiego Poda.

kubectl get pods --selector app=frontend

Wyświetlone zostaną tylko Pody z labelem app: frontend.

ReplicaSet odwołująca się do Poda

Replica Set odwołuje się do konkretnego Poda utworzonego poniżej, ale posiadającego te same Labele, co w sekcji spec.selector.

apiVersion: apps/v1
kind: ReplicaSet
metadata:
    name: <rs_name>
    labels:
        <labele_własne, brak_wpływu_na_rs>
spec:
    replicas: <liczba_replik>
    selector:
        <labele_do_ktorych_odwoluje_sie_rs>
        <np.>
        app: frontend
    template:
        metadata:
            labels:
                <labele_Poda_do_nich_odwoluje_sie_rs>
                <np.>
                app: frontend
        spec:
            containers:
                - name: <container_name>
                  image: <container_image>