大使服务仍处于“待定”状态

大使服务仍处于“待定”状态

v1.21.1-00目前在 Ubuntu Server 20 LTS 上运行全新的“一体化虚拟机”(堆叠主/工作器方法)kubernetes ,使用

  • cri-o 作为容器运行时接口
  • calico 用于网络/安全

还安装了 kubernetes-dashboard(但我想这对我的问题并不重要

答案1

type当您更改为时,它会获取 IP 地址,NodePort因为它使用节点的 IP 地址。它无法执行此操作,LoadBalancer因为您正在 VM 上运行 kubernetes 集群,并且它没有任何LoadBalancers可用资源。本教程专为云用户设计minikube。您可以在此处查看:

注意:如果您是 Minikube 用户,Minikube 本身不支持负载均衡器。请改用 minikube 服务列表

我也在我的虚拟机上设置的集群上重现了这个问题kubeadm

kubectl get services -n ambassador

NAME               TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                      AGE
ambassador         LoadBalancer   10.105.124.148   <pending>       80:30000/TCP,443:31375/TCP   1m15s
ambassador-admin   ClusterIP      10.101.160.245   <none>          8877/TCP,8005/TCP            1m15s
ambassador-redis   ClusterIP      10.110.123.244   <none>          6379/TCP                     1m15s

可以帮助您的最简单的解决方案之一是使用metal load balancer。它专为裸机集群设计,以使其具有负载平衡能力。

这是一个关联安装metallb

请记住:

安装清单不包含配置文件。MetalLB 的组件仍将启动,但将保持空闲状态,直到您定义并部署配置映射。

下一步是设置配置图。为此,您需要创建一个具有要使用的适当协议的 ConfigMap。我使用了一个简单的layer 2配置:

metallb-配置图.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 192.168.1.240-192.168.1.250

并将其应用kubectl apply -f metallb-configmap.yaml

我这样做之后,大使服务立即收到了 IP 地址:

NAME               TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                      AGE
ambassador         LoadBalancer   10.105.124.148   192.168.1.241   80:30000/TCP,443:31375/TCP   4m2s
ambassador-admin   ClusterIP      10.101.160.245   <none>          8877/TCP,8005/TCP            4m2s
ambassador-redis   ClusterIP      10.110.123.244   <none>          6379/TCP                     4m2s

简单测试,curl 192.168.1.241有效!

如果您对不起作用有任何疑问ingress,请考虑在另一个问题中提问。请参阅Stack 社区的最佳实践

相关内容