Я новичок в kubernetes и istio. На GKE я создал ingress-gateway и две виртуальные службы. Первый - это интерфейсный шлюз, который направляет в хипстерский магазин, а второй - фиктивный сервис, который направляет на мой сервер hello world. Но когда я звоню с

curl -v http://35.223.232.224/dummy

, он показывает ошибку Cannot GET / dummy. Я уверен, что моя фиктивная служба работает, так как я тестировал внешний IP-адрес Loadbalancer. Но я могу позвонить в hipstershop с помощью http: // ingress_ip. Кто-нибудь может мне помочь?

Вот мой файл конфигурации istio

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: frontend-gateway
spec:
  selector:
    istio: ingressgateway # use Istio default gateway implementation
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: dummy-ingress
spec:
  hosts:
  - "*"
  gateways:
  - frontend-gateway                
  http:
  - match:
    - uri:
        exact: /dummy
    route:
    - destination:
        host: dummyservice            
        port:
          number: 80

---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: dummy-ingress2
spec:
  hosts:
  - "*"
  gateways:
  - frontend-gateway                
  http:
  - match:
    - uri:
        exact: /dummy2
    route:
    - destination:
        host: dummyservice            
        port:
          number: 80

---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: frontend-ingress
spec:
  hosts:
  - "*"
  gateways:
  - frontend-gateway
  http:
  - route:
    - destination:
        host: frontend
        port:
          number: 80
1
Min Htet Oo 20 Ноя 2019 в 06:40

2 ответа

Мой сервер dummyservice node.js обслуживает только URL-адрес "/". Таким образом, ошибка 404 возвращается не из-за входа, а с моего сервера node.js. Изменение моего базового маршрута на сервере node решило проблему.

'use strict';

const express = require('express');

// Constants
const PORT = 80;
const HOST = '0.0.0.0';

// App
const app = express();
app.get('/dummy', (req, res) => {
  res.send('Hello world\n');
});

app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);
2
Min Htet Oo 20 Ноя 2019 в 07:50

К вашему сведению: Kaili и Jaeger могут быть установлены с Istio и могут предоставить вам информацию о трафике в вашей сервисной сети.

0
Peter Claes 22 Ноя 2019 в 14:56