kubectl expose --type = LoadBalancer无效

Cip*_*her 6 kubernetes

在发布以下json对象(排除变量)后,我遇到了一些外部ip地址的问题:

$json= '{
          "kind": "Service",
          "apiVersion": "v1",
          "metadata": {
            "name": ""
          },
          "spec": {
            "ports": [{
              "port": 80,
              "targetPort": 80
            }],
            "selector": {
              "app": ""
            },
            "type": "LoadBalancer"
          }
}';
Run Code Online (Sandbox Code Playgroud)

该服务已创建,但没有给出外部IP.

由于无法确定问题所在,我继续使用文档(V1 kubernetes/examples/simple-nginx.md)中提供的以下命令安装kubernetes(以及定义为要安装的集群)的干净副本:

curl -sS https://get.k8s.io | bash
Run Code Online (Sandbox Code Playgroud)

这当然会自动设置.然后我运行以下命令来测试LoadBalancer函数是否正常工作:

kubectl run my-nginx --image=nginx --replicas=2 --port=80
Run Code Online (Sandbox Code Playgroud)

跑完后kubectl get pods确认他们已经准备好了,我暴露了这项服务:

kubectl expose rc my-nginx --port=80 --type=LoadBalancer
Run Code Online (Sandbox Code Playgroud)

然后我跑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: {}
Run Code Online (Sandbox Code Playgroud)

运行后(感谢GameScripting):

kubectl describe service my-nginx
Run Code Online (Sandbox Code Playgroud)

我看到以下错误:

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
Run Code Online (Sandbox Code Playgroud)

Cip*_*her 4

手动删除“网络->负载平衡->网络负载平衡”下的转发规则(或者您可以使用gcloud compute forwarding-rules delete)后,我能够再次获得公共IP。不知何故,转发规则似乎没有被删除并达到了限制。奇怪的是,当我运行时,Kubectl stop service它为我删除了转发规则。