Как удалить ярлык с помощью kubernetes api? - PullRequest
0 голосов
/ 10 марта 2020

Обычно мы удаляем метку, подобную этой: 'kubectl label namespace namespace_name labelname -'

Но я хочу удалить ее с помощью kubernetes api, что мне делать?

Ответы [ 2 ]

1 голос
/ 10 марта 2020

Насколько я знаю, вы не сможете удалить ярлык, но замените / переименуйте его.

Это может быть сделано с использованием опции patch, о которой вы можете прочитать на Обновление API-объектов на месте Использование патча kubectl .

Существует также несколько вопросов о переполнении стека по этому вопросу. - Как удалить метку для модуля kubernetes - API Kubernetes: Как добавить / удалить метку из узла - Как удалить метку узла с помощью API kubernetes

Также здесь приведен пример того, как с помощью Kubernetes Python Client вы можете исправить метку:

from pprint import pprint
from kubernetes import client, config

config.load_kube_config()
client.configuration.debug = True

api_instance = client.CoreV1Api()

body = {
    "metadata": {
        "labels": {
            "label-name": None}
        }
}

api_response = api_instance.patch_node("minikube", body)

print(api_response)
0 голосов
/ 10 марта 2020

Kubectl внутренне вызывает REST API, предоставляемый Kubernetes API Server, чтобы выполнить любую операцию, включая удаление метки. Но если вы хотите сделать это программно, тогда вы можете использовать клиентские библиотеки kubernetes на разных языках.

Вы также можете свернуть API REST Kubernetes самостоятельно.

https://kubernetes.io/docs/tasks/access-application-cluster/access-cluster/

...