在发布以下json对象(不包括变量)后,我在获取外部ip地址时遇到了一些问题:
$json= '{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": ""
},
"spec": {
"ports": [{
"port": 80,
"targetPort": 80
}],
"selector": {
"app": ""
},
"type": "LoadBalancer"
}
}';该服务是创建的,但从来没有给出外部ip。
由于无法确定问题的所在,我使用文档中提供的以下命令(V1 kubernetes /examples/Simpl-nginx.md)安装了kubernetes的干净副本(以及它定义安装的集群):
curl -sS https://get.k8s.io | bash当然,这是自动设置的。然后运行以下命令来测试LoadBalancer函数是否正常工作:
kubectl run my-nginx --image=nginx --replicas=2 --port=80在运行kubectl get pods以确认它们已经准备好之后,我公开了该服务:
kubectl expose rc my-nginx --port=80 --type=LoadBalancer然后我在过去几分钟运行了kubectl get service,没有提供任何公共ip。
这不对吗?
编辑
kubectl get services
NAME LABELS SELECTOR IP(S) PORT(S)
kubernetes component=apiserver,provider=kubernetes <none> 10.0.0.1 443/TCP
my-nginx run=my-nginx run=my-nginx 10.0.136.163 80/TCP
kubectl get service my-nginx -o yaml
apiVersion: v1
kind: Service
metadata:
creationTimestamp: 2015-08-11T11:44:02Z
labels:
run: my-nginx
name: my-nginx
namespace: default
resourceVersion: "1795"
selfLink: /api/v1/namespaces/default/services/my-nginx
uid: 434751be-401e-11e5-a219-42010af0da43
spec:
clusterIP: 10.x.xxx.xxx
ports:
- nodePort: 31146
port: 80
protocol: TCP
targetPort: 80
selector:
run: my-nginx
sessionAffinity: None
type: LoadBalancer
status:
loadBalancer: {}运行后(谢谢GameScripting):
kubectl describe service my-nginx我看到了以下错误:
FirstSeen LastSeen Count From SubobjectPath Reason Message
Tue, 11 Aug 2015 14:00:00 +0200 Tue, 11 Aug 2015 14:02:41 +0200 9 {service-controller } creating loadbalancer failed failed to create external load balancer for service default/my-nginx: googleapi: Error 403: Quota 'FORWARDING_RULES' exceeded. Limit: 15.0发布于 2015-08-11 13:03:43
在手动删除“Network->负载平衡->网络负载平衡”(或者您可以使用gcloud compute forwarding-rules delete)下的转发规则之后,我再次获得了公共Ip。似乎转发规则没有被删除,并达到了极限。奇怪的是,当我运行Kubectl stop service时,它为我删除了转发规则。
https://stackoverflow.com/questions/31854554
复制相似问题