web-dev-qa-db-fra.com

Comment puis-je déterminer l'utilisation actuelle du stockage éphémère d'un pod Kubernetes en cours d'exécution?

Comment savoir avec kubectl combien stockage éphémère un pod utilise actuellement?

Dans une spécification de pod Kubernetes, je peux spécifier des demandes de ressources et des limites pour le processeur, la mémoire et le stockage éphémère:

resources:
  requests:
    memory: "60Mi"
    cpu: "70m"
    ephemeral-storage: "2Gi"
  limits:
    memory: "65Mi"
    cpu: "75m"
    ephemeral-storage: "4Gi"

Cependant, pour définir de bonnes demandes et des limites sur le stockage éphémère, j'ai besoin de savoir quelle est réellement cette valeur pour un pod en cours d'exécution, ce que je ne peux pas comprendre. Je peux obtenir l'utilisation du processeur et de la mémoire en utilisant kubectl top pod, mais, d'après ce que je peux dire, l'utilisation de stockage éphémère n'est réellement calculée que lors d'une décision réelle d'expulsion .

6
bskaggs

L'approche brute pure pour cela est d'utiliser la ligne de commande tilisation du disque (du) Unix.

Shell dans votre pod:

$ kubectl exec -it <pod-id> sh

Changez les dirs en point de montage de votre stockage éphémère:

$ mount # check mount points if you'd like
$ cd /mnt/of/ephemeral
$ du .

Il existe d'autres outils que vous pouvez utiliser pour obtenir des mesures:

  • cAdvisor également intégré dans le code kubelet, exposé sous le /stats/summary ou /metrics point final. Plus d'informations ici . Un exemple de sortie:

    $ curl -k -H 'Authorization: Bearer <Redacted>' \
    https://node-hostname:10250/stats/summary
    
    {
     "node": {
       "nodeName": "node-hostname",
       "systemContainers": [
        {
         "name": "kubelet",
        ...
        "volume": [
         {
          "time": "2018-11-08T23:52:03Z",
          "availableBytes": 1969168384,
          "capacityBytes": 1969180672,
          "usedBytes": 12288,
          "inodesFree": 480748,
          "inodes": 480757,
          "inodesUsed": 9,
          "name": "kube-proxy-token-pprwb"
         }
        ],
        "ephemeral-storage": {
         "time": "2018-11-09T00:05:10Z",
         "availableBytes": 31057477632,
         "capacityBytes": 41567858688,
         "inodesFree": 4873887,
         "inodes": 5120000
        }
    ...
    }
    

    De même:

    $ curl -k -H 'Authorization: Bearer <Redacted>' \
    https://node-hostname:10250/stats/summary
    
    # HELP apiserver_audit_event_total Counter of audit events generated and sent to the audit backend.
    # TYPE apiserver_audit_event_total counter
    apiserver_audit_event_total 0
    # HELP apiserver_client_certificate_expiration_seconds Distribution of the remaining lifetime on the certificate used to authenticate a request.
    # TYPE apiserver_client_certificate_expiration_seconds histogram
    apiserver_client_certificate_expiration_seconds_bucket{le="0"} 0
    apiserver_client_certificate_expiration_seconds_bucket{le="21600"} 0
    apiserver_client_certificate_expiration_seconds_bucket{le="43200"} 0
    ...
    

    Plus d'informations sur authentification/autorisation kubelet .

  • Prométhée

Plus d'informations sur les métriques K8s ici .

1
Rico