2017-05-24 70 views
0

我Kubernetes版本是::Kuberntes /普羅米修斯 - 無法在服務文件註釋

# kubectl --version 
Kubernetes v1.4.0 

我打算用普羅米修斯監控我的庫貝集羣。爲此,我需要註解指標網址。

我目前的指標URL是這樣的:

http://172.16.33.7:8080/metrics 

但我想它想:

http://172.16.33.7:8080/websocket/metrics 

首先我試圖做這個手工::

kubectl annotate pods websocket-backend-controller-db83999c5b534b277b82badf6c152cb9m1 prometheus.io/path=/websocket/metrics 
kubectl annotate pods websocket-backend-controller-db83999c5b534b277b82badf6c152cb9m1 prometheus.io/scrape='true' 
kubectl annotate pods websocket-backend-controller-db83999c5b534b277b82badf6c152cb9m1 prometheus.io/port='8080' 

所有這些命令工作得很好,我可以看到註釋。

{ 
    "metadata": { 
    "name": "websocket-backend-controller-v1krf", 
    "generateName": "websocket-backend-controller-", 
    "namespace": "default", 
    "selfLink": "/api/v1/namespaces/default/pods/websocket-backend-controller-v1krf", 
    "uid": "e323994b-4081-11e7-8bd0-0050569b6f44", 
    "resourceVersion": "27534379", 
    "creationTimestamp": "2017-05-24T13:07:06Z", 
    "labels": { 
     "name": "websocket-backend" 
    }, 
    "annotations": { 
     "kubernetes.io/created-by": "{\"kind\":\"SerializedReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"ReplicationController\",\"namespace\":\"default\",\"name\":\"websocket-backend-controller\",\"uid\":\"e321f1a8-4081-11e7-8bd0-0050569b6f44\",\"apiVersion\":\"v1\",\"resourceVersion\":\"27531840\"}}\n", 
     "prometheus.io/path": "/websocket/metrics", 
     "prometheus.io/port": "8080", 
     "prometheus.io/scrape": "true" 
    } 

但由於我希望這些配置保持不變,所以我將它們配置在我的服務文件中。

# cat websocket-service.yaml 
apiVersion: v1 
kind: Service 
metadata: 
    name: websocket-service 
    labels: 
    baseApi: websocket 
    annotations: 
    prometheus.io/scrape: 'true' 
    prometheus.io/path: /websocket/metrics 
    prometheus.io/port: '8080' 
spec: 
    selector: 
    name: websocket-backend 
    ports: 
    - port: 8080 
     targetPort: 8080 
     nodePort: 30800 
     protocol: TCP 
    type: NodePort 
    clusterIP: 10.100.10.45 

我重新啓動了我的websocket服務和相應的pod,但是這些配置似乎沒有生效。

kubectl create -f websocket-service.yaml 
kubectl create -f ../controllers/websocket-replication-controller.yaml 

結果不顯示配置的註釋。

{ 
     "metadata": { 
     "name": "websocket-backend-controller-v1krf", 
     "generateName": "websocket-backend-controller-", 
     "namespace": "default", 
     "selfLink": "/api/v1/namespaces/default/pods/websocket-backend-controller-v1krf", 
     "uid": "e323994b-4081-11e7-8bd0-0050569b6f44", 
     "resourceVersion": "27531879", 
     "creationTimestamp": "2017-05-24T13:07:06Z", 
     "labels": { 
      "name": "websocket-backend" 
     }, 
     "annotations": { 
      "kubernetes.io/created-by": "{\"kind\":\"SerializedReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"ReplicationController\",\"namespace\":\"default\",\"name\":\"websocket-backend-controller\",\"uid\":\"e321f1a8-4081-11e7-8bd0-0050569b6f44\",\"apiVersion\":\"v1\",\"resourceVersion\":\"27531840\"}}\n" 
     } 

的所有IM做的是,而不是使用命令行中,我使用的服務配置設置CONFIGS但它似乎並不奏效。

回答

2

如果您註釋該服務,它不會對可能匹配的窗格產生任何影響。您的Pod可以通過ReplicationController進行管理,也可以通過ReplicaSet/Deployment進行管理。在這種情況下,請註釋這些資源以使註釋到達吊艙。在部署示例中,您必須使用模板部分,例如:

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    # Unique key of the Deployment instance 
    name: deployment-example 
spec: 
    # 3 Pods should exist at all times. 
    replicas: 3 
    # Keep record of 2 revisions for rollback 
    revisionHistoryLimit: 2 
    template: 
    metadata: 
     annotations: 
     prometheus.io/scrape: 'true' 
     prometheus.io/path: /websocket/metrics 
     prometheus.io/port: '8080'