我在AWS中旋转了一个两节点集群,并使用helm安装了traefik。我看到服务外部IP处于待处理状态。检查了多个来源,但找不到任何解决问题的方法。感谢您的帮助
helm install stable/traefik
ubuntu@ip-172-31-34-78:~$ kubectl get pods -n default
NAME READY STATUS RESTARTS AGE
unhinged-prawn-traefik-67b67f55f4-tnz5w 1/1 Running 0 18m
ubuntu@ip-172-31-34-78:~$ kubectl get services -n default
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 55m
unhinged-prawn-traefik LoadBalancer 10.102.38.210 <pending> 80:30680/TCP,443:32404/TCP 18m
ubuntu@ip-172-31-34-78:~$ kubectl describe service unhinged-prawn-traefik
Name: unhinged-prawn-traefik
Namespace: default
Labels: app=traefik
chart=traefik-1.52.6
heritage=Tiller
release=unhinged-prawn
Annotations: <none>
Selector: app=traefik,release=unhinged-prawn
Type: LoadBalancer
IP: 10.102.38.210
Port: http 80/TCP
TargetPort: http/TCP
NodePort: http 30680/TCP
Endpoints: 10.32.0.6:80
Port: https 443/TCP
TargetPort: httpn/TCP
NodePort: https 32404/TCP
Endpoints: 10.32.0.6:8880
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
ubuntu@ip-172-31-34-78:~$ kubectl get svc unhinged-prawn-traefik --namespace default -w
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
unhinged-prawn-traefik LoadBalancer 10.102.38.210 <pending> 80:30680/TCP,443:32404/TCP 24m
答案 0 :(得分:2)
我不确定您是如何安装集群的,但基本上,kube-controller-manager/kubelet/kube-apiserver
无法与AWS API进行通信来创建负载均衡器来为您的Service服务。
就像您的实例缺少创建负载均衡器和路由的权限所需的instance profile一样简单。
还可能需要将此标志添加到所有kubelet,kube-apiserver和kube-controller-manager中:
--cloud-provider=aws
也可能是您的实例上缺少以下EC2 tags:
KubernetesCluster=<yourclustername>
kubernetes.io/cluster/kubernetes=owned
k8s.io/role/node=1
请注意,您可能还需要在节点所在的子网上的KubernetesCluster=<yourclustername>
标签。
还可能是您的K8s节点没有如下所示的ProviderID:
规范:
ProviderID: aws:///<aws-region>/<instance-id>
# You can add it with kubectl edit <node-name>
请注意,为了支持Cloud Providers控制器,不推荐使用--cloud-provider
标志。