在Kubernetes中,可以通过运行{{1}}在外部访问集群中运行的服务。为什么部署而不是服务超出了我对简单的理解。除此之外,我希望之后能够撤消此操作。想想一个场景,我需要访问通常只能在集群内部访问的服务,以便进行调试,然后恢复原始状态。
有没有办法做到这一点,没有删除部署并重新创建它?
PS。实际上删除服务和部署并没有帮助。使用相同名称重新创建服务和部署将导致服务被暴露。
答案 0 :(得分:11)
假设您有一个名为hello-world的部署,并按如下方式进行kubectl公开:
kubectl expose deployment hello-world --type=ClusterIP --name=my-service
这将创建一个名为my-service的服务,使您的部署可以进行调试,如您所述。
显示有关服务的信息:
kubectl get services my-service
完成调试后删除此服务:
kubectl delete service my-service
现在您的部署未公开。