問題タブ [bare-metal-server]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
42 参照

kubernetes - K8s ノードからアクセスできないサービス (MetalLB Layer2)

VMware vSphere プライベート クラウドにベアメタル デプロイされた Kubernetes クラスターがあります。

仕様:

  • OS: Ubuntu 20.04.3 Cloud Image (18.04 と 21.04 も試しています)
  • Kubernetes: 1.23.1 (1.21.8 も試行中) - kubeadm および kube-proxy でデプロイ (strictARP および ipvs モードを使用)
  • CRI: ドッカー 20.10.12
  • MetalLB v0.11.0 (レイヤー 2 モード)
  • 繊毛虫 1.11.1
  • 192.168.50.0/24 サブネット内のすべてのノード

単純に展開を追加すると:
kubectl create deployment nginx --image k8s.gcr.io/nginx:latest

そしてそれを公開しました:
kubectl expose deployment nginx --type=LoadBalancer --port=80

すべて良さそうです。サービスは MetalLB プールから ExternalIP を取得しました:
nginx LoadBalancer 10.96.56.118 198.168.50.152 80:32325/TCP 4s

kube-ipvs0 インターフェイスで公開された新しい IP アドレス:

kube-ipvs0: <BROADCAST,NOARP> mtu 1500 qdisc noop 状態 DOWN グループ デフォルト
...
inet 198.168.50.152/32 スコープ グローバル kube-ipvs0
valid_lft 永遠に Preferred_lft 永遠に
...

しかし、ExternalIP を介してすべての K8s ノードからサービスにアクセスできず、他の LAN からもアクセスできません。curl は次のように返します。
curl: (7) Failed to connect to 192.168.50.152 port 80: No route to host

ClusterIP は正常に動作し、ノードからアクセスできます。