Найти экземпляр pod / VM, который обслуживает службу kubernetes - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть устаревшая система (парень, который ее построил, подал в отставку и с ним нельзя связаться).Так что это микросервисное приложение, размещенное в GKE.Есть одна специфическая услуга, которая довольно странная.Это служба redis (поскольку другие модули, которые используют эту службу через свой внутренний IP-адрес, могут использовать службу redis и выполнять PIS-PONG redis).Однако я вижу, что для этой услуги нет стручков 0/0.Любая идея, как это может произойти?

Ниже приведен YAML-файл службы:

Я не вижу ни служб, ни развертываний, ни модулей, называемых узлом-1, узлом-2 илиузел-3 в нашем кластере kubernetes.ТАК это довольно странно для меня.Кто-нибудь знает об этом?

Я прочитал документацию 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.

1 Ответ

0 голосов
/ 25 апреля 2019

Вы можете легко найти IP-адреса модулей, которые обслуживают эту службу, с помощью этой команды:

kubectl get endpoints dispatchcache-shard

После этого вы можете найти действительные модули по IP-адресам с помощью этой команды:

kubectl get pod -o wide

Хочу добавить, что должна быть очень веская причина определять сервис без селекторов меток. Не уверен, что это ваш случай.

...