我正在为k8s中的Sidekiq和Rails配置Redis。通过IP地址使用Google Cloud Memory Store。
我有一个类似以下的头盔模板(单独指定了gcpRedisMemorystore)-我的问题是Service对象向系统添加了什么?端点是否必须提供所有必需的访问权限?
图表/ app /模板/app-memorystore.service.yaml
kind: Service
apiVersion: v1
metadata:
name: app-memorystore
spec:
type: ClusterIP
clusterIP: None
ports:
- name: redis
port: {{ .Values.gcpredis.port }}
protocol: TCP
---
kind: Endpoints
apiVersion: v1
metadata:
name: app-memorystore
subsets:
- addresses:
- ip: {{ .Values.gcpredis.ip }}
ports:
- port: {{ .Values.gcpredis.port }}
name: redis
protocol: TCP
答案 0 :(得分:3)
是的,您仍然需要它。
通常来说,服务是应用程序用来连接到端点的名称。通常,带有选择器的服务会使用选择器找到的Pod的IP地址自动创建相应的端点。
当您定义不带选择器的服务时,您需要提供具有相同名称的相应端点,以便该服务可以使用。这些信息包含在文档中,但有些隐蔽。在https://kubernetes.io/docs/concepts/services-networking/service/#without-selectors中,第二个要点提到了无选择器的无头服务:
对于没有定义选择器的无头服务,端点控制器不会创建端点记录。但是,DNS系统将查找并配置以下任一项:
- ExternalName类型服务的CNAME记录。
- A记录所有与服务共享名称的所有其他类型的端点。