Балансировщик нагрузки GCP возвращает 404 даже после прохождения проверки работоспособности - PullRequest
0 голосов
/ 05 октября 2018

У меня есть следующая конфигурация входа

kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: dev-ingress
  namespace: dev
  annotations:
    kubernetes.io/ingress.class: "gce"
    kubernetes.io/ingress.global-static-ip-name: "dev-ingress"
spec:
  tls:
    - secretName: something-net-tls
      hosts: 
        - something.net
    - host: myworking.something.net
      http:
        paths:
        - path: /rpc
          backend:
            serviceName: myworking-dev-service
            servicePort: 80

    - host: mynotworking.something.net
      http:
        paths:
        - path: /rpc/*
          backend:
            serviceName: mynotworking-dev-service
            servicePort: mainnet

mynotworking.yml сервис

 kind: Service
  apiVersion: v1
  metadata:
    name: mynotworking-dev-service
    namespace: dev
  spec:
    selector:
      app: mynotworking-node
    ports:
    - name: mainnet
      protocol: TCP
      port: 80
      targetPort: 8332
    type: NodePort

mynotworking statefulset

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mynotworking-stateful
  namespace: dev
spec:
  serviceName: mynotworking-dev-service
  replicas: 1
  selector:
    matchLabels:
      app: mynotworking-node
  template:
    metadata:
      labels:
        app: mynotworking-node
    spec:
      containers:
      - name: mynotworking-node
        image: asia.gcr.io/indiesquare-dev/bitcoin-node:v0.13.2-addrindex
        imagePullPolicy: Always
        ports:
        - containerPort: 8332 
        livenessProbe:
          httpGet:
              path: /rest/chaininfo.json
              port: 8332
          initialDelaySeconds: 60 #wait this period after staring fist time
          periodSeconds: 15  # polling interval
          timeoutSeconds: 15    # wish to receive response within this time period
        readinessProbe: 
          httpGet:
              path: /rest/chaininfo.json
              port: 8332
          initialDelaySeconds: 60 #wait this period after staring fist time
          periodSeconds: 15    # polling interval
          timeoutSeconds: 15  
        command: ["/bin/bash"]
        args: ["-c","some service"]
      nodeSelector:
        moduleName: mynotworking

Все проверки работоспособности проходят.

Однако, когда я нажимаю на URL https://mynotworking.something.net/rpc/rest/chaininfo.json, выдается ошибка 404.

Кажется, что другая служба работает нормально myworking.something.net/rpc

Единственная разница вСлужба заключается в том, что GET myworking.something.net/rpc возвращает код ответа 200, в то время как https://mynotworking.something.net/rpc/rest/chaininfo.json должен возвращать код ответа 200

Я попытался установить путь для mynotworking.something.net в /rpc/*.

Не могу найти, что не так с входной конфигурацией.

РЕДАКТИРОВАТЬ

$gcloud compute  health-checks  describe k8s-be-32354--a7c308fd8694dead
checkIntervalSec: 75
creationTimestamp: '2018-10-05T03:37:19.335-07:00'
description: Kubernetes L7 health check generated with readiness probe settings.
healthyThreshold: 1
httpHealthCheck:
  port: 32354
  proxyHeader: NONE
  requestPath: /rest/chaininfo.json
id: '8793382711098769456'
kind: compute#healthCheck
name: k8s-be-32354--a7c308fd8694dead
selfLink: https://www.googleapis.com/compute/v1/projects/myproject/global/healthChecks/k8s-be-32354--a7c308fd8694dead
timeoutSec: 15
type: HTTP
unhealthyThreshold: 10

1 Ответ

0 голосов
/ 05 октября 2018

В вашем входе, для хоста: mynotworking.something.net

Пожалуйста, отредактируйте - путь: / rpc / *, чтобы определить https://mynotworking.something.net/rpc/rest/chaininfo.json

.

...