Kubernetes python客户端:删除缺少的variab

2024-10-01 11:20:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用kubernetes python客户机来管理集群,但是我找不到如何在不破坏集群的情况下更新集群。我的输入是一个微服务的通用列表,我将其转换为kubernetes部署和服务。
此时,我生成了一个V1DeploymentV1Service的列表。如何对这些对象执行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还很陌生。你知道吗


Tags: nameselfapi列表部署deployment集群namespace