작성
·
266
1
apiVersion: apps/v1
kind: Deployment
metadata:
name: httpd-frontend
spec:
replicas: 3
selector:
matchLabels:
app: httpd-frontend
template:
metadata:
labels:
app: httpd-frontend
spec:
containers:
- name: httpd-frontend
image: httpd:2.4-alpine
# 올바른 문법
apiVersion: apps/v1
kind: Deployment
metadata:
name: httpd-frontend
spec:
replicas: 3
selector:
matchLabels:
name: httpd-frontend
template:
metadata:
labels:
name: httpd-frontend
spec:
containers:
- name: httpd-frontend
image: httpd:2.4-alpine
이 경우 matchLabels 가 어떤 의미를 내포하고 내부 속성값들로 어떤 것들을 기입할 수 있는지 궁금하며
왜 selector → matchLabels 내 app이 아닌 name을 기입해야하는지
어떤 상관관계를 가지는지 궁금합니다.
즉, 최상위 속성값들을 제한 하위 속성값들에 대한 관계 및 의미를 알고 싶은데 어디서 알 수 있는지 궁금합니다.
답변 1
0
안녕하세요!
k8s의 spec에 대해 문의하신것 같습니다.
상세한 spec은 다음 페이지에서 확인하실 수 있습니다.
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#deployment-v1-apps
위 링크를 보면 Deployment 오브젝트는 DeploymentSpec을 참조하고 해당 Spec은 링크를 눌러서 상세하게 확인할 수 있습니다.
보시면 굉장히 다양하고 자세하게 설명된 것을 보실 수 있습니다.
참고로 matchLabels는 key-value 형태로 정해진 형태없이 다양하게 사용하실 수 있습니다.
감사합니다!