我正在尝试按照Just Me And Opensource 的本教程设置 K3s、MetalLB 和 Traefik。我安装了没有 servicelb 或 traefik 的 K3s。
curl -sfL https://get.k3s.io | sh -s - server --disable traefik --disable servicelb
我按照教程进行了部署,并部署了 Nginx LoadBalancer 以测试 MetalLB 是否会从 configmap 的范围内传递一个 IP。但是,LoadBalancer 服务 EXTERNAL-IP 仍处于挂起状态。
我不确定如何解决此问题。我检查了组件,它们看起来都很开心,我没有看到错误或警告。我已验证我配置的 IP 范围在网络中可用。
我可以采取哪些步骤来解决此问题?
$ k get all --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system pod/metrics-server-86cbb8457f-zhswd 1/1 Running 0 17h
kube-system pod/local-path-provisioner-5ff76fc89d-mh6mv 1/1 Running 0 17h
kube-system pod/coredns-7448499f4d-n95rh 1/1 Running 0 17h
metallb-system pod/controller-7dcc8764f4-8xrbb 1/1 Running 0 123m
metallb-system pod/speaker-dc6kv 1/1 Running 0 123m
default pod/nginx-6799fc88d8-x4m6v 1/1 Running 0 119m
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 17h
kube-system service/kube-dns ClusterIP 10.43.0.10 <none> 53/UDP,53/TCP,9153/TCP 17h
kube-system service/metrics-server ClusterIP 10.43.33.248 <none> 443/TCP 17h
default service/nginx LoadBalancer 10.43.119.71 <pending> 80:30762/TCP 118m
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
metallb-system daemonset.apps/speaker 1 1 1 1 1 kubernetes.io/os=linux 123m
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
kube-system deployment.apps/metrics-server 1/1 1 1 17h
kube-system deployment.apps/local-path-provisioner 1/1 1 1 17h
kube-system deployment.apps/coredns 1/1 1 1 17h
metallb-system deployment.apps/controller 1/1 1 1 123m
default deployment.apps/nginx 1/1 1 1 119m
NAMESPACE NAME DESIRED CURRENT READY AGE
kube-system replicaset.apps/metrics-server-86cbb8457f 1 1 1 17h
kube-system replicaset.apps/local-path-provisioner-5ff76fc89d 1 1 1 17h
kube-system replicaset.apps/coredns-7448499f4d 1 1 1 17h
metallb-system replicaset.apps/controller-7dcc8764f4 1 1 1 123m
default replicaset.apps/nginx-6799fc88d8 1 1 1 119m
这是配置映射的内容。
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 10.1.3.160-10.1.3-161