I executed the following command: % kubectl get service
It returned this list of services that were created at one point in time with kubectl:
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE car-example-service 10.0.0.129 <nodes> 8025:31564/TCP,1025:31764/TCP 10h circle-example-service 10.0.0.48 <nodes> 9000:30362/TCP 9h demo-service 10.0.0.9 <nodes> 8025:30696/TCP,1025:32047/TCP 10h example-servic 10.0.0.168 <nodes> 8080:30231/TCP 1d example-service 10.0.0.68 <nodes> 8080:32308/TCP 1d example-service2 10.0.0.184 <nodes> 9000:32727/TCP 13h example-webservice 10.0.0.35 <nodes> 9000:32256/TCP 1d hello-node 10.0.0.224 <pending> 8080:32393/TCP 120d kubernetes 10.0.0.1 <none> 443/TCP 120d mouse-example-service 10.0.0.40 <nodes> 9000:30189/TCP 9h spring-boot-web 10.0.0.171 <nodes> 8080:32311/TCP 9h spring-boot-web-purple 10.0.0.42 <nodes> 8080:31740/TCP 9h I no longer want any of these services listed, because when I list resources: % kubectl get rs
I am expecting that I only see the spring-boot-web resource listed.
NAME DESIRED CURRENT READY AGE spring-boot-web-1175758536 1 1 0 18m Please help clarify why I am seeing services that are listed , when the resources only show 1 resource.
15 Answers
Simply call this command.
1/Get all available services:
kubectl get service -o wide 2/ Then you can delete any services like this:
kubectl delete svc <YourServiceName> 1show deployment
$ kubectl get deployments; NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE spring-hello 1 1 1 1 22h spring-world 1 1 1 1 22h vfe-hello-wrold 1 1 1 1 14m show services
$kubectl get services; NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d spring-hello NodePort 10.103.27.226 <none> 8081:30812/TCP 23h spring-world NodePort 10.102.21.165 <none> 8082:31557/TCP 23h vfe-hello-wrold NodePort 10.101.23.36 <none> 8083:31532/TCP 14m delete deployment
$ kubectl delete deployments vfe-hello-wrold deployment.extensions "vfe-hello-wrold" deleted delete services
$ kubectl delete service vfe-hello-wrold service "vfe-hello-wrold" deleted Kubernetes objects like Service and Deployment/ReplicaSet/Pod are independent and their deletions do not cascade to each other (like it does between say Deployment/RS/Pod). You need to manage your services independently from other objects, so you just need to delete the ones that are still lingering behind.
5If you want to delete multiple related or non related objects at the same time
kubectl delete <objType>/objname <objType>/objname <objType>/objname Example
kubectl delete service/myhttpd-clusterip service/myhttpd-nodeport kubectl delete service/myhttpd-lb deployment/myhttpd This also works
kubectl delete deploy/httpenv svc/httpenv-np To delete ALL services in ALL namespaces just run:
kubectl delete --all services --namespace=*here-you-enter-namespace The other option is to delete the deployment with:
kubectl delete deployment deployment-name That will delete the service as well!
IMPORTANT: And watch out when you run this command in production!
Cheers!
3