来自关于使用 mysql部署应用程序的文档站点的官方示例:Kubernetes
Wordpress
的服务定义mysql
:
apiVersion: v1
kind: Service
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
ports:
- port: 3306
selector:
app: wordpress
tier: mysql
clusterIP: None
部署定义mysql
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
tier: mysql
我的问题如下:
该Deployment
定义具有matchLabel
selector
, 以便它将匹配下面定义的具有app: wordpress
和 tier:mysql
标签的 pod。
为什么Service
selector
不需要matchLabel
出于相同目的的指令?服务的“选择”是什么?