Search⌘ K

Accessing the Cluster: Understanding the Protocol

Explore the role of AWS Elastic Load Balancer in establishing secure access to the Kubernetes API server, understand DNS configurations for kubectl access, and identify the need for additional load balancing to reach worker nodes.

Exploring the AWS ELB

We need a way to access the cluster. So far, we have seen that we can interact with the Kubernetes API. Every time we executed kubectl, it communicated with the cluster through the API server. That communication is established through AWS Elastic Load Balancer (ELB). Let’s take a quick look at it.

Shell
aws elb describe-load-balancers

The output (limited to the relevant parts) is as follows:

Shell
{
"LoadBalancerDescriptions": [
{
...
"ListenerDescriptions": [
{
"Listener": {
"InstancePort": 443,
"LoadBalancerPort": 443,
"Protocol": "TCP",
"InstanceProtocol": "TCP"
},
...
"Instances": [
{
"InstanceId": "i-01f5c2ca47168b248"
},
{
"InstanceId": "i-0305e3b2d3da6e1ce"
},
{
"InstanceId": "i-04291ef2432b462f2"
}
],
"DNSName": "api-devops23-k8s-local-ivnbim-1190013982.us-east-2.elb.amazonaws.com",
...
"LoadBalancerName": "api-devops23-k8s-local-ivnbim",
...

Judging from the Listener section, we can see ...