kubernetes Client-go пример развертывания kubectl

Может ли кто-нибудь дать мне пример о том, как использовать

kubectl rollout pause xxx

kubectl rollout update xxx

в клиент-го? Я не могу найти ни одного примера об этом. Спасибо~


person edselwang    schedule 11.11.2019    source источник


Ответы (2)


может быть .

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.

person Yoonga    schedule 01.04.2021

Как мы можем прочитать в документации Kubernetes Приостановка и Возобновление развертывания.

Вы можете приостановить развертывание перед запуском одного или нескольких обновлений, а затем возобновить его. Это позволяет применять несколько исправлений между приостановкой и возобновлением без запуска ненужных развертываний.

Обновить Deployment с помощью Go-Client легко, потому что вы просто обновляете поля, которые хотите изменить, и после этого фиксируете их. Поэтому, пока вы не отправляете изменения в кластер, вы все равно можете добавлять новые обновления.

Вот статья о том, как написать пользовательскую контроллеры в Go и еще один об обновлении и откате развертывание.

person Crou    schedule 12.11.2019