kubernetes:选择器在服务与部署中的角色
从kubernetes:选择器在服务与部署中的角色,kubernetes,kubernetes-service,kubernetes-deployment,Kubernetes,Kubernetes Service,Kubernetes Deployment,从Kubernetes文档站点关于使用mysql部署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的部
Kubernetes
文档站点关于使用mysql部署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
我的问题如下:
部署
定义有一个匹配标签
选择器
,因此它将匹配下面定义的pod,该pod具有app:wordpress
和层:mysql
标签
为什么服务
选择器
不需要匹配标签
指令来达到相同的目的?执行服务的“选择”是什么?服务是一个概念,它使您的容器(在本例中承载wordpress)在给定的端口上可用。它将外部端口(节点的
端口)映射到内部端口(容器/吊舱的端口)。它通过使用Pod的
网络功能来实现这一点。选择器是在服务中指定端口应在哪个Pod
上打开的一种方式。Deployment
实际上只是一种将事物组合在一起的方式,Pod
本身包含Wordpress容器,服务中定义的端口可通过Pod
网络使用
这是一个简单的解释,有不同种类的服务。服务是一个概念,它使您的容器(在本例中承载wordpress)在给定的端口上可用。它将外部端口(节点的端口)映射到内部端口(容器/吊舱的端口)。它通过使用
Pod的
网络功能来实现这一点。选择器是在服务中指定端口应在哪个Pod
上打开的一种方式。Deployment
实际上只是一种将事物组合在一起的方式,Pod
本身包含Wordpress容器,服务中定义的端口可通过Pod
网络使用
这是一个简单的解释,有不同种类的服务。根据上的K8S文档 API目前支持两种类型的选择器:基于相等的选择器和基于集合的选择器 较新的资源(如作业、部署、副本集和守护程序集)也支持基于集合的需求
看起来新资源(如部署)支持更具特色的基于集合的(带有匹配标签)和旧资源(如服务)遵循旧的基于平等的(没有匹配标签)。根据上的K8S文档 API目前支持两种类型的选择器:基于相等的选择器和基于集合的选择器 较新的资源(如作业、部署、副本集和守护程序集)也支持基于集合的需求
看起来新的资源(如部署)支持更具特色的基于集合的(带有匹配标签)和旧的资源(如服务)遵循旧的基于平等的(没有匹配标签)。顺便说一句,了解这一点的最好方法就是建立一个集群,并使用kubectl命令来执行诸如描述吊舱、描述服务之类的操作。并使用telnet或openssl来确认您的服务公开的开放端口。顺便说一句,了解这一点的最佳方法就是建立一个集群,并使用kubectl命令来执行描述POD、描述服务等操作。并使用telnet或openssl确认服务公开的开放端口。