Kubernetes 1.15 引入了命令
kubectl rollout restart deployment my-deployment
Run Code Online (Sandbox Code Playgroud)
哪个是通过 API 调用的端点?例如,如果我想扩展部署,我可以调用
PATCH /apis/apps/v1/namespaces/my-namespace/deployments/my-deployment/scale
Run Code Online (Sandbox Code Playgroud)
Dav*_*aze 22
如果你在kubectl源代码中挖掘,你最终可以找到(k8s.io/kubectl/pkg/polymorphichelpers).defaultObjectRestarter. 所做的只是更改注释:
apiVersion: apps/v1
kind: Deployment
spec:
template:
metadata:
annotations:
kubectl.kubernetes.io/restartedAt: '2006-01-02T15:04:05Z07:00'
Run Code Online (Sandbox Code Playgroud)
任何更改部署对象中嵌入的 pod 规范的属性都将导致重新启动;没有特定的 API 调用来执行此操作。
对此有用的推论是,如果您的kubectl版本和集群版本不同步,您可以kubectl rollout restart在kubectl1.14 中针对旧集群使用,因为它实际上并不依赖于 Kubernetes API 中的任何更改。
DB.*_*ull 17
总长DR
curl --location --request PATCH 'https://kubernetes.docker.internal:6443/apis/apps/v1/namespaces/default/deployments/keycloak?fieldManager=kubectl-rollout&pretty=true' \
--header 'Content-Type: application/strategic-merge-patch+json' \
--data-raw '{
"spec": {
"template": {
"metadata": {
"annotations": {
"kubectl.kubernetes.io/restartedAt": <time.Now()>
}
}
}
}
}'
Run Code Online (Sandbox Code Playgroud)
如果有的话,您可以通过为命令kubectl提供额外的标志来调试本地 minikube 上的调用。--v 9也就是说,您可以尝试在本地集群上进行虚拟部署重启以查看结果。
对于未来的读者:这可能因版本而异,但如果您使用apps/v1它应该没问题。
| 归档时间: |
|
| 查看次数: |
3820 次 |
| 最近记录: |