Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Why Kubernetes services can not be resolved?

In my namespace I have services

k get svc
NAME              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
blue-service      NodePort    10.107.127.118   <none>        80:32092/TCP     60m
demo              ClusterIP   10.111.134.22    <none>        80/TCP           3d

I added blue-service to /etc/hosts
It failes again

wget -O- blue-service
--2022-06-13 11:11:32--  http://blue-service/
Resolving blue-service (blue-service)... 10.107.127.118
Connecting to blue-service (blue-service)|10.107.127.118|:80... failed: Connection timed out.
Retrying.

I decided to chech with describe

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

Name:                     blue-service
Namespace:                default
Labels:                   app=blue
Annotations:              <none>
Selector:                 app=blue
Type:                     NodePort
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       10.107.127.118
IPs:                      10.107.127.118
Port:                     <unset>  80/TCP
TargetPort:               8080/TCP
NodePort:                 <unset>  32092/TCP
Endpoints:                172.17.0.39:8080,172.17.0.40:8080,172.17.0.41:8080
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

Why?

>Solution :

The services you are referring to do not have an external IP (the External IP field is empty) so you cannot access those services.

If you want to access those services, you either need to

  1. Make them a LoadBalancer service type which will give them an external IP

or

  1. Use kubectl port-forward to connect a local port on your machine to the service then use localhost:xxxx to access the service

If you want to map a DNS name to the service, you should look at the External DNS project as mentioned in this answer which will allow you to create DNS entries in your provider’s DNS service (if you are running the cluster on a managed platform)

OR, use nip.io if you’re only testing

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading