0

metalLB を使用して、ロードバランサー IP を ingressgateway に割り当てることは可能ですか? この yaml を指定すると、loadBalancerIP (「io.istio.networking.v1alpha3.Gateway.spec の不明なフィールド "loadBalancerIP"」) に関するエラーがスローされます。「--validate=false」フラグを使用して回避できますが、metalLB は正しい IP アドレスを割り当てていませんか?

test.yaml:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: httpbin-gateway
spec:
  loadBalancerIP: 10.0.0.242
  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: httpbin
spec:
  hosts:
  - "*"
  gateways:
  - httpbin-gateway
  http:
  - match:
    - uri:
        prefix: /headers
    route:
    - destination:
        port:
          number: 8000
        host: httpbin

layer2.yaml:

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: nips
      protocol: layer2
      addresses:
      - 10.0.0.206-10.0.0.225
      auto-assign: true
    - name: mainips
      protocol: layer2
      addresses:
      - 10.0.0.230-10.0.0.239
      auto-assign: false
    - name: cheapips
      protocol: layer2
      addresses:
      - 10.0.0.240-10.0.0.249
      auto-assign: false
    - name: web 
      protocol: layer2
      addresses:
      - 10.0.0.203-10.0.0.205
      auto-assign: false

kubectl コマンドの実行:

$ kubectl apply -f /tmp/test.yaml
error: error validating "/tmp/test.yaml": error validating data: ValidationError(Gateway.spec): unknown field "loadBalancerIP" in io.istio.networking.v1alpha3.Gateway.spec; if you choose to ignore these errors, turn validation off with --validate=false
$ kubectl apply --validate=false -f /tmp/test.yaml
gateway.networking.istio.io/httpbin-gateway created
virtualservice.networking.istio.io/httpbin created

$ kubectl get svc -n istio-system -o wide istio-ingressgateway
NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                                      AGE   SELECTOR
istio-ingressgateway   LoadBalancer   10.108.199.32   10.0.0.206   15021:31659/TCP,80:30780/TCP,443:30769/TCP   17h   app=istio-ingressgateway,istio=ingressgateway

MetalLB から間違った EXTERNAL-IP アドレスを取得していることに注意してください。

4

1 に答える 1