首页 > 解决方案 > 如何使用 IstioOperator 为 Istio Ingress Gateway 分配外部 IP?[GKE]

问题描述

我想为 Istio 的 Ingress Gateway 分配一个外部 IP。

我想使用 Istio Operator Spec。到目前为止,我得到了这个:

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  namespace: istio-system
  name: istiocontrolplane
spec:
  profile: demo
  components:
    ingressGateways:
    - name: istio-ingressgateway
      enabled: true
      loadBalancerIP: 1.2.3.4
  addonComponents:
    grafana:
      enabled: false
    prometheus:
      enabled: true

它为服务自动分配 IP:

kubectl get svc -n istio-system

未显示 1.2.3.4。对于外部 IP

只有当我真的通过 GCP 拥有这个 IP 时才有可能吗?

标签: istio

解决方案


首先您必须在 GCP 中创建一个 IP 资源,然后您可以在下面的 yaml 中提供该 IP。

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    ingressGateways:
      - enabled: true
        k8s:
          overlays:
            - api_version: autoscaling/v1
              kind: HorizontalPodAutoscaler
              name: istio-ingressgateway
              patches:
                - path: spec.minReplicas
                  value: 3
                - path: spec.maxReplicas
                  value: 5
                - path: spec.metrics[0].resource.targetAverageUtilization
                  value: 60
          service:
            loadBalancerIP: XXX.XXX.XXX.XXX
            loadBalancerSourceRanges: []
            ports:
              - name: status-port
                port: 15020
                targetPort: 15020
              - name: http2
                port: 80
                targetPort: 80
              - name: https
                port: 443
              - name: tcp
                port: 31400
                targetPort: 31400
              - name: tls
                port: 15443
                targetPort: 15443
        label:
          app: istio-ingressgateway
          istio: ingressgateway
        name: istio-ingressgateway


推荐阅读