【kubernetes】Kubernetes SVC LoadBalancer出现external-ip pending
Kubernetes SVC LoadBalancer出现external-ip pending
问题概述
部署nginx.yaml
1 | apiVersion: v1 |
观察svc
,发现EXTERNAL-IP
一直处于pending
1 | $ kubectl get svc |
如果你使用自建的 Kubernetes 集群(minikube、kubeadm 等)。在这种情况下,没有集成 LoadBalancer(与 AWS、Google Cloud、阿里云等云厂商不同)。使用此默认设置,你只能使用 NodePort 或 Ingress Controller。
这时,如果你部署 LoadBalancer 则会出现 External-IP 一直处于 pending 的问题。
问题解决
minikube
https://minikube.sigs.k8s.io/docs/start/#loadbalancer-deployments
1 | minikube tunnel |
观察SVC
1 | $ kubectl get svc |
访问
1 | curl http://10.106.164.16 |
kubeadm
如果是使用的是 kubeadm,可以参考 使用 kubeadm 和 MetalLB 搭建 Kubernetes & Istio 环境 使用 MetalLB 来解决本问题。
patch手动指定
添加patch
1 | kubectl patch svc nginx-svc -n default -p '{"spec": {"type": "LoadBalancer", "externalIPs":["10.106.164.16"]}}' |
参考文档
Service Mesh - Kubernetes LoadBalancer Service External IP 一直处于 pending 状态