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