首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubernetes:选择器在服务和部署中的作用

kubernetes:选择器在服务和部署中的作用
EN

Stack Overflow用户
提问于 2018-09-27 14:39:58
回答 2查看 2.6K关注 0票数 0

来自官方例子 of Kubernetes文档站点,介绍如何使用mysql部署Wordpress应用程序:

mysql的服务定义

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: wordpress-mysql
  labels:
    app: wordpress
spec:
  ports:
    - port: 3306
  selector:
    app: wordpress
    tier: mysql
  clusterIP: None

mysql的部署定义

代码语言:javascript
复制
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指令?服务的“选择”是什么?

EN

回答 2

Stack Overflow用户

发布于 2018-09-27 16:41:05

根据K8S关于标签和选择器的文档。

API目前支持两种类型的选择器:基于等式的选择器和基于集的选择器。 较新的资源,如作业、部署、复制集和守护进程集,也支持基于集合的需求。

看起来像新的资源,比如部署支持,更多的基于功能集的资源(使用matchLabels),而旧的资源,比如服务,则遵循旧的基于等式的资源(没有matchLabels)。

票数 2
EN

Stack Overflow用户

发布于 2018-09-27 14:46:15

Service是一个概念,它使您的容器(在本例中是承载wordpress)可以在给定的端口上使用。它将外部端口( Node's端口)映射到和内部端口(容器/荚的端口)。它通过使用Pod's网络功能来做到这一点。选择器是一种在服务中指定应该打开端口的Pod的方法。实际上,Deployment只是将事物组合在一起的一种方式-- Pod本身持有Wordpress容器,服务中定义的端口可以通过Pod网络获得。

这是一个简单的解释,有不同的服务种类。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52539553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档