2016-11-17 30 views
0

我使用AWS上的kubernetes與CoreOS & flannel VLAN網絡。 (遵循本指南https://coreos.com/kubernetes/docs/latest/getting-started.html) k8s版本爲1.4.6kube-controller-manager輸出錯誤「無法更改NodeName」

而且我有以下節點出口程序守護進程集。

apiVersion: extensions/v1beta1 
kind: DaemonSet 
metadata: 
    name: node-exporter 
    labels: 
    app: node-exporter 
    tier: monitor 
    category: platform 
spec: 
    template: 
    metadata: 
     labels: 
     app: node-exporter 
     tier: monitor 
     category: platform 
     name: node-exporter 
    spec: 
     containers: 
     - image: prom/node-exporter:0.12.0 
     name: node-exporter 
     ports: 
     - containerPort: 9100 
      hostPort: 9100 
      name: scrape 
     hostNetwork: true 
     hostPID: true 

當運行此,KUBE控制器的管理器重複地輸出誤差如下:

E1117 18:31:23.197206  1 endpoints_controller.go:513] 
Endpoints "node-exporter" is invalid: 
[subsets[0].addresses[0].nodeName: Forbidden: Cannot change NodeName for 172.17.64.5 to ip-172-17-64-5.ec2.internal, 
subsets[0].addresses[1].nodeName: Forbidden: Cannot change NodeName for 172.17.64.6 to ip-172-17-64-6.ec2.internal, 
subsets[0].addresses[2].nodeName: Forbidden: Cannot change NodeName for 172.17.80.5 to ip-172-17-80-5.ec2.internal, 
subsets[0].addresses[3].nodeName: Forbidden: Cannot change NodeName for 172.17.80.6 to ip-172-17-80-6.ec2.internal, 
subsets[0].addresses[4].nodeName: Forbidden: Cannot change NodeName for 172.17.96.6 to ip-172-17-96-6.ec2.internal] 

只爲信息,儘管此錯誤消息,node_exporter是例如訪問)172-17-96-6:9100。我的節點位於包含k8s主站的專用網絡中。

但是,這些日誌輸出太多,並很難從我們的日誌控制檯看到其他日誌。我可以看到如何解決這個錯誤?

由於我從頭構建了我的k8s羣集,cloud-provider=aws標誌一開始並未激活,最近我打開了它,但不確定它是否與此問題有關。

+0

如果你剛開始,我推薦'kops'。如果你需要CoreOS,你可以試試'kube-aws'。 – kichik

+0

不幸的是,我們已經在生產環境中運行集羣,並且在這種情況發生之前它工作得很好。我實際上使用了CoreOS的多節點腳本,這是他們推薦的'kube-aws'之一。我想在'kubeadm'成熟時移動它,但是它與這個問題是不同的話題。 –

回答

0

它看起來這是我的另一個清單文件引起

apiVersion: v1 
kind: Service 
metadata: 
    name: node-exporter 
    labels: 
    app: node-exporter 
    tier: monitor 
    category: platform 
    annotations: 
    prometheus.io/scrape: 'true' 
spec: 
    clusterIP: None 
    ports: 
    - name: scrape 
    port: 9100 
    protocol: TCP 
    selector: 
    app: node-exporter 
    type: ClusterIP 

我認爲這是必要的暴露節點出口商以上守護程序設定,但它可能相當引入某種衝突時,我在設置hostNetwork: true一個守護進程集(實際上是一個pod)清單。雖然我不是100%確定的,但在刪除此服務後,錯誤消失,但仍可從k8s羣集外部訪問172-17-96-6:9100

我只是跟着這個崗位設置普羅米修斯和節點出口時, https://coreos.com/blog/prometheus-and-kubernetes-up-and-running.html

的情況下,其他人面臨着同樣的問題,我在這裏留下我的意見。