Diferencia entre las API del cliente C# de Kubernetes.
Tengo código de KubernetesClient ejecutando mi aplicación en el Orquestador K3s.
Quiero entender la diferencia (caso de uso) entre dos APIs de K3s, PatchNamespacedServiceWithHttpMessagesAsync
y ReplaceNamespacedServiceWithHttpMessagesAsync
[enlace a estas APIs]. Aparte de este enlace no puedo encontrar ningún lugar donde leer sobre los casos de uso de las APIs de K3s. Por favor, ayúdeme aquí.
PD:
1. Básicamente estoy tratando de actualizar el Servicio existente, así que quiero entender la diferencia entre las dos APIs anteriores, cualquiera de las cuales llamaré con el cuerpo de parche actualizado (implementación de servicio actualizada).
2. Esta pregunta es una extensión de mi pregunta anterior.
davy.ai
Después de leer la documentación y el código de las dos APIs, a continuación se encuentra la comprensión de la diferencia y del caso de uso entre
PatchNamespacedServiceWithHttpMessagesAsync
yReplaceNamespacedServiceWithHttpMessagesAsync
.PatchNamespacedServiceWithHttpMessagesAsync
Esta API se utiliza para actualizar parcialmente el objeto del Servicio utilizando JSON Patch. JSON Patch es un formato para describir cambios en un documento JSON.
Algunos escenarios posibles para la actualización parcial podrían incluir:
ReplaceNamespacedServiceWithHttpMessagesAsync
Esta API se utiliza para actualizar completamente el objeto del Servicio reemplazando el objeto del Servicio existente con el actualizado. Esta API espera el objeto completo del Servicio en la solicitud.
Algunos escenarios posibles para la actualización completa podrían incluir:
Por lo tanto, la diferencia entre las dos APIs es que
PatchNamespacedServiceWithHttpMessagesAsync
se usa para actualizaciones parciales mientras queReplaceNamespacedServiceWithHttpMessagesAsync
se usa para actualizaciones completas. Si solo necesita actualizar una o dos propiedades del Servicio, entonces usaríaPatchNamespacedServiceWithHttpMessagesAsync
. Por otro lado, si necesita actualizar todo el objeto del Servicio, entonces usaríaReplaceNamespacedServiceWithHttpMessagesAsync
.