Google容器引擎自动删除服务/容器

时间:2016-02-11 04:12:47

标签: kubernetes google-kubernetes-engine

我正在测试goolge容器引擎,一切都很好,直到我发现这个非常奇怪的问题。

bash-3.2# kubectl get services --namespace=es

NAME                    CLUSTER_IP      EXTERNAL_IP   PORT(S)    SELECTOR                     AGE
elasticsearch-logging   10.67.244.176   <none>        9200/TCP   name=elasticsearch-logging   5m

bash-3.2# kubectl describe service elasticsearch-logging --namespace=es

Name:           elasticsearch-logging
Namespace:      es
Labels:         k8s-app=elasticsearch-logging,kubernetes.io/cluster-service=true,kubernetes.io/name=Elasticsearch
Selector:       name=elasticsearch-logging
Type:           ClusterIP
IP:         10.67.248.242
Port:           <unnamed>   9200/TCP
Endpoints:      <none>
Session Affinity:   None
No events.

在5分钟后,该服务被自动删除。

kubectl get events --namespace=es

1m          1m         1         elasticsearch-logging                Service                                                          DeletingLoadBalancer   {service-controller }                                  Deleting load balancer
1m          1m         1         elasticsearch-logging                Service                                                          DeletedLoadBalancer    {service-controller }                                  Deleted load balancer

任何人都知道为什么?感谢。

2 个答案:

答案 0 :(得分:0)

标签kubernetes.io/cluster-service=true是一个特殊的保留标签,不应由用户资源使用。这是由管理群集插件的系统进程使用的,例如您将在群集的kube-system命名空间中看到的DNS和kube-ui pod。

您的服务被删除的原因是因为系统进程正在检查具有该标签的资源,看到它不知道的资源,并假设它之前已经启动的东西不再存在。这在this doc about cluster addons中有所解释。

通常,您的资源上不应该有任何带有kubernetes.io/前缀的标签,因为这是一个保留的命名空间。

答案 1 :(得分:0)

从yaml文件中的元数据/标签中删除以下内容后,问题就消失了。

**kubernetes.io/cluster-service: "true"
kubernetes.io/name: "Elasticsearch"**