Skip to content

Kubernetes теги

Текст написан при использовании ChatGPT.

Рассмотрим простой манифест развёртывания в Kubernetes, обратите внимания на несколько раз использованный тег app: deployment1.

---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: deployment1
  name: name1
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: deployment1
  template:
    metadata:
      labels:
        app: deployment1
    spec:
      containers:
        - name: nginx
          image: nginx:latest

В этом YAML манифесте для развертывания Kubernetes метка app: deployment1 используется в трех разных частях. Вот объяснение того, что делает каждая из них:

  • В разделе metadata.labels: эта метка применяется к самому ресурсу развертывания. Она помогает идентифицировать и организовать развертывание в кластере Kubernetes. Это может быть полезно при выполнении операций над ресурсами с определенными метками, таких как фильтрация, обновление или удаление развертываний на основе их меток.
metadata:
  labels:
    app: deployment1
  • В разделе spec.selector.matchLabels: эта метка используется в качестве критерия для определения того, какие поды должны управляться этим развертыванием. Наборы реплик развертывания будут управлять только теми подами, у которых совпадают метки. Очень важно убедиться, что этот селектор меток соответствует меткам, примененным к подам в шаблоне развертывания, иначе развертывание не будет работать правильно.
spec:
  selector:
    matchLabels:
      app: deployment1
  • В разделе spec.template.metadata.labels: Эта метка применяется к подам, которые создаются как часть этого развёртывания. Каждый под, созданный этим развертыванием, будет иметь эту метку. Это позволяет наборам реплик развертывания управлять и обновлять поды, поскольку эта метка соответствует селектору, упомянутому ранее.
spec:
  template:
    metadata:
      labels:
        app: deployment1