2017-05-24 6 views
0

マイKubernetesバージョンに注釈を付けることができない::私は私のKUBEクラスタを監視するためにプロメテウスを使用する予定ですKuberntes /プロメテウス - サービスファイルに

# kubectl --version 
Kubernetes v1.4.0 

。そのためには、指標URLに注釈を付ける必要があります。

私の現在のメトリックの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サービスと対応するポッドを再起動しましたが、これらの設定は有効にならないようです。

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" 
     } 

ではなく、私はサービスの設定を使用してコンフィグを設定していますが、それは動作していないようです、コマンドラインを使用するよりもです。

答えて

2

サービスに注釈を付けると、一致した可能性のあるポッドには影響しません。ポッドは、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' 
関連する問題