See the following links if you'd like to skip to specific sections.
- Types of Kubernetes Services
- Before Beginning
- Obtaining access to services that are operating on the cluster
- Methods to Connect
A Kubernetes service is a conceptual representation for a group of pods that have been deployed in a cluster and are all doing the same task.
We may think of a Kubernetes service as an idealized approach to demand balance among the pods and publish an application that has been installed on a group of Pods.
Furthermore, by utilizing the built-in service methodology in Kubernetes, it is no longer necessary to develop a different service discovery mechanism in your application.
Types of Kubernetes Services
- NodePort: It is a service that exposes itself via a static channel on each node's IP address.
- LoadBalancer: This service is exposed through the load balancer of the cloud provider.
- ExternalName: A service's externalName field is mapped to a preset externalName field by returning a value for the CNAME record associated with the service.
- ClusterIP: Exposed service that is only accessible from within the cluster is called the clusterIP.
In this article, we will be talking in detail about how to get connected with the Kubernetes services so that you can use them to their fullest.
It would be great if you had a kubectl command-line application along with the Kubernetes cluster, since they need to be set up together to connect with your grouping in order to complete this tutorial.
It is advised that you perform this instruction on a cluster that has at least two nodes that are not operating as control plane hosts when completing this course.
If you don’t have a cluster already, you can establish one by using minikube, or you can use one of these Kubernetes playgrounds:
- Play with Kubernetes
Obtaining access to services that are operating on the cluster
Nodes, pods, and services all have their IP addresses in Kubernetes.
When a cluster is configured with routing protocol node and pod IPs, as well as some service IPs, it is likely that these addresses will not be available from a machine outside the cluster, such as your desktop computer or a server.
Methods to Connect
When connecting to nodes, pods, and services from outside the cluster, you have a number of choices to choose from:
Method 1: Access the Kubernetes Services using the Proxy Verb
- Make sure that you have completed the API server authentication and authorization steps before connecting to the remote service. This should be used if the Kubernetes services are not safe enough to be exposed to the internet, if you need access to ports on the node's IP address, or if you need to debug something.
- Some web apps may experience difficulties when using proxies.
- It only works with HTTP/HTTPS protocols
Method 2: Access the Kubernetes Services using the Public IPs
- To make the service reachable from outside the cluster, a service of type LoadBalancer or NodePort should be used. Ensure to check the documentation for the services and kubectl expose commands.
- In some cases, this may merely expose the service to your business network, while in others; this can include exposing it to the public internet through your cluster environment. Consider whether the service that is being exposed is safe to use and accessible. Is it accountable for its verification?
- Pods should be placed behind services. In order to access one specific pod from a series of replicas for debugging purposes, construct a new service that picks the label of the pod in question.
- In the vast majority of circumstances, it is not at all essential for application developers to easily and properly access nodes via their node IPs.
Method 3: Access the Kubernetes Services using the Cluster
- Launch a pod and then connect to a shell in it with kubectl exec to see what you're up to in there. Using that shell, you can communicate with other nodes, pods, and services.
- The ability to connect to a node in a cluster through SSH is available on some clusters. Access to cluster services may be possible from this location. This non-standard method will certainly work on some clusters but might not be eligible for others, and it is not recommended. Browsers and other tools may be installed or not. It is possible that cluster DNS will not function.
Method 4: Access the Kubernetes Services using the Web Browser
An API server proxy URL may be entered into the address bar of a web browser if one is available. However, web browsers are not typically capable of passing tokens, and hence, you may be forced to use basic password authentication.
However, while your API server may be configured to accept simple authentication, it is possible that your cluster is not.
The following articles are related to 4 simple ways how to connect to kubernetes services.