Обычно мы удаляем метку, подобную этой: 'kubectl label namespace namespace_name labelname -'
Но я хочу удалить ее с помощью kubernetes api, что мне делать?
Насколько я знаю, вы не сможете удалить ярлык, но замените / переименуйте его.
Это может быть сделано с использованием опции patch, о которой вы можете прочитать на Обновление API-объектов на месте Использование патча kubectl .
patch
Существует также несколько вопросов о переполнении стека по этому вопросу. - Как удалить метку для модуля 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)
Kubectl внутренне вызывает REST API, предоставляемый Kubernetes API Server, чтобы выполнить любую операцию, включая удаление метки. Но если вы хотите сделать это программно, тогда вы можете использовать клиентские библиотеки kubernetes на разных языках.
Вы также можете свернуть API REST Kubernetes самостоятельно.
https://kubernetes.io/docs/tasks/access-application-cluster/access-cluster/