如何取消公开(撤消公开)服务?

wvx*_*xvw 14 service kubernetes

在Kubernetes中,可以通过运行使集群中的服务可从外部访问kubectl expose deployment.为什么部署而不是服务超出了我对傻瓜的理解.除此之外,我希望之后能够撤消此操作.想想一个场景,我需要访问通常只能在集群内部访问的服务以进行调试,然后恢复原始状态.

有没有办法做到这一点,删除部署并重新创建它?


PS.实际上删除服务和部署没有帮助.使用相同名称重新创建服务和部署将导致服务被公开.

Lin*_*dry 19

假设您有一个名为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

现在您的部署未公开.

  • 您还可以与部署分开编写服务。如果要将部署公开到 Internet,请创建 LoadBalancer 类型的服务。这将创建一个具有外部 IP 的服务。然后要访问您的程序,请“curl http://<external-ip>:<port>”。该文档可能会帮助您:https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/ (2认同)