我有一个遗留系统(构建它的人已经辞职,无法联系)。所以它是在GKE中托管的微服务应用程序。有一项特别的服务很奇怪。这是一个redis服务(因为通过其内部IP地址使用此服务的其他pod可以使用redis服务并执行redis PING-PONG)。但是,我发现此服务0/0没有pod。知道怎么会这样吗?
该服务的YAML文件如下:
在我们的kubernetes集群中,我没有看到任何名为node-1,node-2和node-3的服务,部署或pod。所以对我来说这很奇怪。谁知道这个?
我已阅读kubernetes文档并搜索解决方案,但我找不到任何解释。
apiVersion: v1
kind: Service
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{"kubernetes.io/change-cause":"kubectl apply --record=true --filename=production/svc/dispatchcache-shard-service.yaml"},"name":"dispatchcache-shard","namespace":"default"},"spec":{"ports":[{"name":"node-1","port":7000,"protocol":"TCP","targetPort":7000},{"name":"node-2","port":7001,"protocol":"TCP","targetPort":7000},{"name":"node-3","port":7002,"protocol":"TCP","targetPort":7000}],"type":"ClusterIP"}}
kubernetes.io/change-cause: kubectl apply --record=true --filename=production/svc/dispatchcache-shard-service.yaml
creationTimestamp: 2018-10-03T08:11:41Z
name: dispatchcache-shard
namespace: default
resourceVersion: "297308103"
selfLink: /api/v1/namespaces/default/services/dispatchcache-shard
uid: f55bd4d0-c6e3-11e8-9489-42010af00219
spec:
clusterIP: 10.171.255.152
ports:
- name: node-1
port: 7000
protocol: TCP
targetPort: 7000
- name: node-2
port: 7001
protocol: TCP
targetPort: 7000
- name: node-3
port: 7002
protocol: TCP
targetPort: 7000
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
我希望我能找到实际为redis服务提供服务的pods / deployment /或实例。
您可以使用以下命令轻松找到为此服务提供服务的pod的IP:
kubectl get endpoints dispatchcache-shard
之后,您可以使用以下命令通过IP地址找到实际的pod:
kubectl get pod -o wide
我想补充说,应该有非常强大的理由来定义没有标签选择器的服务。不确定这是你的情况。