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 .
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 .
Plus d'informations sur les métriques K8s ici .