Kubernetes Kubectl封锁和排水命令期间涉及哪些api?

Kubernetes Kubectl封锁和排水命令期间涉及哪些api?,kubernetes,kubectl,Kubernetes,Kubectl,我正在Kubernetes集群上进行自动化工作,需要创建一个API来连接节点。基本上,此API不应允许任何新的POD进入封锁节点 我进行了下面的堆栈溢出讨论,但无法找出封锁(然后排空)节点所需的API: 要查找特定kubectl命令中涉及的API,请使用带有标志--v=9的kubectl,该标志显示向API服务器发出的HTTP请求及其响应() kubectl警戒线节点名称中涉及的API: 在HTTP补丁请求中, 请求正文:{“spec”:{“unschedulable”:true} 内容类型:“

我正在Kubernetes集群上进行自动化工作,需要创建一个API来连接节点。基本上,此API不应允许任何新的POD进入封锁节点

我进行了下面的堆栈溢出讨论,但无法找出封锁(然后排空)节点所需的API:

要查找特定kubectl命令中涉及的API,请使用带有标志
--v=9的kubectl,该标志显示向API服务器发出的HTTP请求及其响应()

kubectl警戒线节点名称中涉及的API
: 在HTTP补丁请求中,
请求正文:{“spec”:{“unschedulable”:true}
内容类型:“应用程序/战略合并补丁+json”

在后台,Golang客户端将简单地进行类似的HTTP调用。请参阅在golang客户端中发出HTTP修补程序请求

kubectl排水中涉及的API--忽略守护程序:
基本上,drain命令首先封锁该节点,然后从该节点驱逐守护程序Pod。

为了查找特定kubectl命令中涉及的API,请使用带有标志的kubectl
--v=9
,该标志显示对API服务器发出的HTTP请求及其响应()

kubectl警戒线节点名称中涉及的API: 在HTTP补丁请求中,
请求正文:{“spec”:{“unschedulable”:true}
内容类型:“应用程序/战略合并补丁+json”

在后台,Golang客户端将简单地进行类似的HTTP调用。请参阅在golang客户端中发出HTTP修补程序请求

kubectl排水中涉及的API--忽略守护程序: 基本上,drain命令首先封锁节点,然后从该节点退出守护程序集Pod。

--ignore daemonsets
不会退出守护程序集Pod。请参阅:
kubectl drain-h
:[…]
如果存在守护程序管理的pod,则在没有--ignore守护程序的情况下,drain将不会继续,并且无论如何,它不会删除任何守护程序管理的pod,因为这些pod将立即被守护程序控制器替换,后者将忽略不可调度的标记。
[…]
--忽略守护程序
不会逐出守护程序吊舱。请参阅:
kubectl drain-h
:[…]
如果存在守护程序管理的pod,则在没有--ignore守护程序的情况下,drain将不会继续,并且无论如何,它不会删除任何守护程序管理的pod,因为这些pod将立即被守护程序控制器替换,后者将忽略不可调度的标记。
[…]
GET /api/v1/nodes/node-name
PATCH /api/v1/nodes/node-name
PATCH /api/v1/nodes/node-name -> Request Body: {"spec":{"unschedulable":true}}
GET /api/v1/pods?fieldSelector=spec.nodeName%3Dnode-name -> Get Podlist
POST /api/v1/namespaces/kube-system/pods/coredns-7b5c8bfcfc-s94bs/eviction
GET /api/v1/namespaces/kube-system/pods/coredns-7b5c8bfcfc-s94bs -> If API call returns 404 means Pod is successfully evicted.