我正在尝试使用kubernetes python客户机来管理集群,但是我找不到如何在不破坏集群的情况下更新集群。我的输入是一个微服务的通用列表,我将其转换为kubernetes部署和服务。
此时,我生成了一个V1Deployment
和V1Service
的列表。如何对这些对象执行kubectl apply
的等价操作?你知道吗
我试过这个:
def apply(self, api, cur_deploy_names: List[str]):
from .kubernetes_impl import KubernetesImpl
if self.deployment.metadata.name in cur_deploy_names:
api.patch_namespaced_deployment(name=self.deployment.metadata.name,
namespace=KubernetesImpl.namespace,
body=self.deployment)
logging.info(f"KUBERNETES: Deployment '{self.deployment.metadata.name}' updated")
else:
api.create_namespaced_deployment(namespace=KubernetesImpl.namespace, body=self.deployment)
logging.info(f"KUBERNETES: Deployment '{self.deployment.metadata.name}' created")
这里的主要问题是,如果在我的新配置中,只删除了一个环境变量,例如patch_namespaced_deployment
不更新部署。有没有一种有效的方法来知道新配置和旧配置之间是否有区别,如果有,如果需要,可以使用replace_namespaced_deployment
?你知道吗
我对所有的答案都持开放态度,因为我对kubernetesapi还很陌生。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐