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 は正常に動作し、ノードからアクセスできます。