К сожалению, если вы используете istio
, изменить тип службы не так просто.Вы должны настроить Istio VirtualService
и создать Gateway
.
Я публикую этот ответ как вики сообщества, относящуюся к другому случаю стека: https://stackoverflow.com/a/56019381/11148139 Как уже упоминалось, вопрос имеет 1 понижение и может быть удален в будущем, который я публикую для будущего использования в этом случае.
=================================================
Вы можете создать Istio Gateway и VirtualService , чтобы пересылать ваши запросы в службу grafana
, работающую по умолчанию на порт 3000
Во-первых, давайте проверим grafana
и istio-ingressgateway
service
kubectl get svc grafana istio-ingressgateway -n istio-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
grafana ClusterIP 100.71.67.105 <none> 3000/TCP 18h
istio-ingressgateway LoadBalancer 100.64.42.106 <Public IP address> 15020:31766/TCP,80:31380/TCP,443:31390/TCP,31400:31400/TCP,15029:32576/TCP,15030:30728/TCP,15031:31037/TCP,15032:31613/TCP,15443:32501/TCP 18h
Итак, у нас grafana
запущена служба, прослушивающая порт 3000, и по умолчанию istio-ingressgateway
Служба LoadBalancer работает с назначенным общедоступным IP-адресом.
Затем мы создаем gateway
для использования этого LoadBalancer по умолчанию.
$ kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: grafana-gateway
namespace: istio-system # Use same namespace with backend service
spec:
selector:
istio: ingressgateway # use Istio default gateway implementation
servers:
- port:
number: 80
name: HTTP
protocol: HTTP
hosts:
- "*"
EOF
Затем настройте маршрут на grafana service
для трафика, входящего через этот шлюз:
$ kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: grafana
namespace: istio-system # Use same namespace with backend service
spec:
hosts:
- "*"
gateways:
- grafana-gateway # define gateway name
http:
- match:
- uri:
prefix: "/"
route:
- destination:
port:
number: 3000 # Backend service port
host: grafana # Backend service name
EOF
Затем нажмите http://<public_ip_istio_ingressgateway>
, вы должнысм. панель управления графаной
Надеюсь, она вам пригодится.