Может ли кто-нибудь дать мне пример о том, как использовать
kubectl rollout pause xxx
kubectl rollout update xxx
в клиент-го? Я не могу найти ни одного примера об этом. Спасибо~
Может ли кто-нибудь дать мне пример о том, как использовать
kubectl rollout pause xxx
kubectl rollout update xxx
в клиент-го? Я не могу найти ни одного примера об этом. Спасибо~
может быть .
data := fmt.Sprintf(`{"spec":{"template":{"metadata":{"annotations":{"kubectl.kubernetes.io/restartedAt":"%s"}}}}}`, time.Now().String())
resultDeployment, err = p.Client.AppsV1().Deployments(p.Namespace).Patch(context.Background(), deployment.Name, types.StrategicMergePatchType, []byte(data), metav1.PatchOptions{FieldManager: "kubectl-rollout"})
вы можете использовать kubectl
с --v=6, чтобы просмотреть журналы, например kubectl get pods --v=6
, и построить запрос с использованием go-client.
Как мы можем прочитать в документации Kubernetes Приостановка и Возобновление развертывания.
Вы можете приостановить развертывание перед запуском одного или нескольких обновлений, а затем возобновить его. Это позволяет применять несколько исправлений между приостановкой и возобновлением без запуска ненужных развертываний.
Обновить Deployment
с помощью Go-Client легко, потому что вы просто обновляете поля, которые хотите изменить, и после этого фиксируете их. Поэтому, пока вы не отправляете изменения в кластер, вы все равно можете добавлять новые обновления.
Вот статья о том, как написать пользовательскую контроллеры в Go и еще один об обновлении и откате развертывание.