我知道服务使用选择器来确定哪些 Pod 通过它们的标签将流量路由到。
apiVersion: v1
kind: Service
metadata:
name: svc
spec:
ports:
- name: tcp
protocol: TCP
port: 443
targetPort: 443
selector:
app: nginx
Run Code Online (Sandbox Code Playgroud)
这一切都很好。
现在这个选择器和spec.selector来自部署的选择器有什么区别。我知道使用它是为了使部署可以匹配和管理其 pod。
但是我不明白为什么我需要额外的matchLabels声明并且不能像在服务中那样做。这在语义上有什么用?
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
selector:
matchLabels:
app: nginx
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
Run Code Online (Sandbox Code Playgroud)
提前致谢
kubernetes ×1