大使服務保持“待定”
目前在 Ubuntu Server 20 LTS 上執行全新的“多合一 VM”(堆疊的主/從方法)kubernetes
v1.21.1-00
,使用
- cri-o 作為容器執行時介面
- calico 用於網路/安全
還安裝了 kubernetes-dashboard(但我想這對我的問題並不重要😉)。使用本指南安裝大使:https ://www.getambassador.io/docs/edge-stack/latest/topics/install/yaml-install/我遇到了服務卡在“待定”狀態的問題。
kubectl get svc -n ambassador
列印出以下內容NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ambassador LoadBalancer 10.97.117.249 <pending> 80:30925/TCP,443:32259/TCP 5h ambassador-admin ClusterIP 10.101.161.169 <none> 8877/TCP,8005/TCP 5h ambassador-redis ClusterIP 10.110.32.231 <none> 6379/TCP 5h quote ClusterIP 10.104.150.137 <none> 80/TCP 5h
雖然將服務中的
type
fromLoadBalancer
更改為NodePort
正確設置,但我不確定隨之而來的影響。同樣,我想在這裡使用大使作為入口組件 - 使用我的設置(只有一台機器),可能不需要“真正的”負載平衡。為了覆蓋所有子域內容,我設置了一個萬用字元記錄以指向我的機器,這意味著我有一個
*.k8s.my-domain.com
指向該主機的 CNAME。不知道,這種方法對於設置入口是否那麼聰明。
當您更改為時,它會獲取 IP 地址
type
,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 之前將保持空閒狀態。
下一部分是設置一個ConfigMap。為此,您需要使用要使用的適當協議創建一個 ConfigMap。我使用了一個簡單的
layer 2
配置:metallb-configmap.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
,請考慮在不同的問題中提出此問題。查看堆棧社區的最佳實踐。