Кто-нибудь знает, как это сделать на клиенте, или ресурсы API, которые kubectl описывает использование pod?

Я не могу найти подходящий метод для этого.

Кто-нибудь знает, как это сделать на клиенте, или ресурсы API, которые kubectl описывает использование pod?

Ответ на каждый вопрос «что делает kubectl» — kubectl --v=1000 describe pod 2>the_api_calls.log, а затем посмотрите на его http-методы.

mdaniel 14.05.2022 18:19
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
1
26
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

вы можете увидеть это в коде описания kubectl команда

Вот пример кода получения пода с помощью client-go:

/*
A demonstration of get pod using client-go
Based on client-go examples: https://github.com/kubernetes/client-go/tree/master/examples
To demonstrate, run this file with `go run <filename> --help` to see usage
*/

package main

import (
    "context"
    "flag"
    "fmt"
    "os"
    "path/filepath"

    v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    "k8s.io/client-go/kubernetes"
    "k8s.io/client-go/tools/clientcmd"
    "k8s.io/client-go/util/homedir"
)

func main() {
    podName := flag.String("pod-name", "", "name of the required pod")
    namespaceName := flag.String("namespace", "", "namespace of the required pod")
    var kubeconfig *string
    if config, exist := os.LookupEnv("KUBECONFIG"); exist {
        kubeconfig = &config
    } else if home := homedir.HomeDir(); home != "" {
        kubeconfig = flag.String("kubeconfig", filepath.Join(home, ".kube", "config"), "(optional) absolute path to the kubeconfig file")
    } else {
        kubeconfig = flag.String("kubeconfig", "", "absolute path to the kubeconfig file")
    }
    flag.Parse()

    config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig)
    if err != nil {
        panic(err)
    }
    clientset, err := kubernetes.NewForConfig(config)
    if err != nil {
        panic(err)
    }

    podClient := clientset.CoreV1().Pods(*namespaceName)
    fmt.Println("Getting pod...")
    result, err := podClient.Get(context.TODO(), *podName, v1.GetOptions{})
    if err != nil {
        panic(err)
    }
    // Example fields
    fmt.Printf("%+v\n", result.Name)
    fmt.Printf("%+v\n", result.Namespace)
    fmt.Printf("%+v\n", result.Spec.ServiceAccountName)
}

Другие вопросы по теме