Python客户端euqivelent'kubectl rollout restart<;部署>;
我正在尝试用Python运行一个自动化作业,该作业将重新启动Kubernetes集群中的部署。由于权限有限,我无法在机箱上安装Python客户端euqivelent'kubectl rollout restart<;部署>;,python,kubernetes,Python,Kubernetes,我正在尝试用Python运行一个自动化作业,该作业将重新启动Kubernetes集群中的部署。由于权限有限,我无法在机箱上安装kubectl。有人对此有什么建议或解决方案吗 谢谢。Kubernetes客户端中的kubectl卷展栏重新启动没有对应的原子操作。这是一个由多个API调用组成的操作 做什么,取决于你想要什么。要仅获取相同部署的新Pod,您可以删除Pod,或者您可以在部署上添加或更改注释以触发新的滚动部署。Kubernetes客户端中的kubectl卷展栏重新启动没有原子对应操作。这是一
kubectl
。有人对此有什么建议或解决方案吗
谢谢。Kubernetes客户端中的
kubectl卷展栏重新启动
没有对应的原子操作。这是一个由多个API调用组成的操作
做什么,取决于你想要什么。要仅获取相同
部署的新Pod
,您可以删除Pod
,或者您可以在部署
上添加或更改注释以触发新的滚动部署。Kubernetes客户端中的kubectl卷展栏重新启动
没有原子对应操作。这是一个由多个API调用组成的操作
做什么,取决于你想要什么。要仅获取相同部署的新Pod,您可以删除一个
Pod
,或者您可以在部署上添加或更改注释,以触发新的滚动部署。有关配置,请遵循-
有关配置,请参见-
非常感谢你。我试图修改现有部署上的注释,更改成功应用,但没有触发POD重启。我正在使用Python客户端进行Kubernetes和
patch\u namespaced\u部署
API调用。虽然这有一个force
选项,但当我将其值设置为True
时,它返回了一个错误禁止:不能为非应用补丁指定。我做错了什么?我在谷歌搜索中找不到任何与此相关的资源。您可能需要更改模板中的注释:
,部署的一部分,以触发新的POD。非常感谢。那很有帮助。非常感谢。我试图修改现有部署上的注释,更改成功应用,但没有触发POD重启。我正在使用Python客户端进行Kubernetes和patch\u namespaced\u部署
API调用。虽然这有一个force
选项,但当我将其值设置为True
时,它返回了一个错误禁止:不能为非应用补丁指定。我做错了什么?我在谷歌搜索中找不到任何与此相关的资源。您可能需要更改模板中的注释:
,部署的一部分,以触发新的POD。非常感谢。这很有帮助。
# This is equivalent to `kubectl rollout restart deployment/dashboard-kubernetes-dashboard -n default`
from kubernetes import client, config
from kubernetes.client.rest import ApiException
import datetime
def restart_deployment(v1_apps, deployment, namespace):
now = datetime.datetime.utcnow()
now = str(now.isoformat("T") + "Z")
body = {
'spec': {
'template':{
'metadata': {
'annotations': {
'kubectl.kubernetes.io/restartedAt': now
}
}
}
}
}
try:
v1_apps.patch_namespaced_deployment(deployment, namespace, body, pretty='true')
except ApiException as e:
print("Exception when calling AppsV1Api->read_namespaced_deployment_status: %s\n" % e)
def main():
config.load_kube_config(context="minikube")
# Enter name of deployment and "namespace"
deployment = "dashboard-kubernetes-dashboard"
namespace = "default"
v1_apps = client.AppsV1Api()
restart_deployment(v1_apps, deployment, namespace)
if __name__ == '__main__':
main()