Есть ли API или go программные логи c, чтобы получить емкость узла в кластере kubernetes? - PullRequest
1 голос
/ 06 марта 2020

Используя kubectl описывают узлы, я могу получить емкость ресурсов (память, процессор) узла. Я хочу получить то же самое с помощью go клиента или API Kube (если доступно). Может кто-нибудь мне помочь? Я использую версию Minikube: v1.7.2 версия kubectl: Клиент: GitVersion: "v1.16.3" Сервер: GitVersion: "v1.16.2" Я использую сервер metri c для доступа к ресурсу kubernetes. Ожидаемый результат: Емкость ресурсов должна быть доступна через go программу или kube API

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Нет никакого вызова API, который вы могли бы использовать для получения kubectl describe nodes, потому что эта команда генерирует весь вывод.

Kubectl извлекает все соответствующие модули (каждый модуль, который не вышел из строя или успешно) на узле и суммирует все их определения ресурсов.

Вы можете посмотреть код и найти функцию, ответственную за генерацию информации об узле здесь .

То же самое для сбора всех запросов и ограничений для модулей. Функция доступна здесь и называется getPodsTotalRequestsAndLimits

Наконец, можно увидеть функцию, которая собирает все это вместе здесь .

Есть действительно хорошая статья о Kubernetes API: выделяемые ресурсы узла? Автор делает именно то, что вы просите, но используете Python.

0 голосов
/ 06 марта 2020

Клиентские библиотеки Kubernetes - это те, которые вам нужны для просмотра https://kubernetes.io/docs/reference/using-api/client-libraries/#officially -supported-kubernetes-client-library

The following client libraries are officially maintained by Kubernetes SIG API Machinery.

Language    Client Library
Go          github.com/kubernetes/client-go/    
Python      github.com/kubernetes-client/python/
Java        github.com/kubernetes-client/java   
dotnet      github.com/kubernetes-client/csharp 
JavaScript  github.com/kubernetes-client/javascript 
Haskell     github.com/kubernetes-client/haskell    


Community-maintained client libraries
The following Kubernetes API client libraries are provided and maintained by their authors, not the Kubernetes team.

Language                Client Library
Clojure                 github.com/yanatan16/clj-kubernetes-api
Go                      github.com/ericchiang/k8s
Java (OSGi)             bitbucket.org/amdatulabs/amdatu-kubernetes
Java (Fabric8, OSGi)    github.com/fabric8io/kubernetes-client
Lisp                    github.com/brendandburns/cl-k8s
Lisp                    github.com/xh4/cube
Node.js (TypeScript)    github.com/Goyoo/node-k8s-client
Node.js                 github.com/tenxcloud/node-kubernetes-client
Node.js                 github.com/godaddy/kubernetes-client
Node.js                 github.com/ajpauwels/easy-k8s
Perl                    metacpan.org/pod/Net::Kubernetes
PHP                     github.com/maclof/kubernetes-client
PHP                     github.com/allansun/kubernetes-php-client
PHP                     github.com/travisghansen/kubernetes-client-php
Python                  github.com/eldarion-gondor/pykube
Python                  github.com/mnubo/kubernetes-py
Python                  github.com/tomplus/kubernetes_asyncio
Ruby                    github.com/Ch00k/kuber
Ruby                    github.com/abonas/kubeclient
Ruby                    github.com/kontena/k8s-client
Rust                    github.com/clux/kube-rs
Rust                    github.com/ynqa/kubernetes-rust
Scala                   github.com/doriordan/skuber
dotNet                  github.com/tonnyeremin/kubernetes_gen
DotNet (RestSharp)      github.com/masroorhasan/Kubernetes.DotNet
Elixir                  github.com/obmarg/kazan
Elixir                  github.com/coryodaniel/k8s
Haskell                 github.com/kubernetes-client/haskell

...