What is an Ingress Resource in Kubernetes?

Question
What is an Ingress resource in Kubernetes?

Answer
It is a Kubernetes technique of exposing services via an individual IP address (page 135 of Kubernetes in Action by Luksa). In TCP/IP networking, the Ingress port allows inbound traffic to route somewhere. Kubernetes supports other IP address to service mapping methods (e.g., NodePort or LoadBalancer). NodePort operates on layer 4 of the OSI seven-layer model (according to this posting).

What is a Deployment in Kubernetes?

Question
What is a deployment in Kubernetes?

Answer
A deployment is a resource that is designed for “deploying applications and updating them declaratively” (page 261 of Kubernetes in Action by Luksa). You may hear the phrase “Deployment controller.” This is a reference to a component of the Controller Manager in the Kubernetes Control Plane (page 262 of Kubernetes in Action by Luksa).

What are Higher-level Resources and Constructs Compared to Lower-level Resources and Constructs?

Question
You have read about high/low level or higher-level (or lower-level) resources and constructs in the context of Kubernetes. What does this designation mean?

Answer
From a high level to a low level we may see a data center, filled with racks, which hold physical servers. Similarly from a high level to a low level we may see Kubernetes nodes supporting pods that have individual Docker containers.

What is a Service in Kubernetes?

Question
A Kubernetes cluster will have a pod running on a node. The ReplicationController will create a copy (or copies) of a pod to ensure it is available. What is a service in the context of a Kubernetes cluster?

Answer
“A Service in Kubernetes is an abstraction which defines a logical set of Pods and a policy by which to access them.” This quote was taken from https://kubernetes.io/docs/tutorials/kubernetes-basics/expose/expose-intro/

A service is a networking service with a static IP address that connects requests to pods in the Kubernetes cluster (page 48 of Kubernetes in Action by Luksa).

What is the Difference between a Readiness Probe and a Liveness Probe in Kubernetes?

Question
What is a difference between a readinessprobe and a livenessprobe besides how the corresponding fields are used in defining a Pod using YAML?

Answer
At most a failed liveness probe will result in the restarting of a container. At most a failed readiness probe will result in the removing a pod from the endpoint of a service (page 150 of Kubernetes in Action).

How Do You Troubleshoot the kubectl Message “Error from server (NotAcceptable): the server was unable to respond with a content type that the client supports”?

Problem scenario
You run a kubectl command, but you see this message:
Error from server (NotAcceptable): the server was unable to respond with a content type that the client supports

What should you do?

Solution
1. Run this command: kubectl version

There should be a “Client Version” and a “Server Version”. The two are probably different.

How Do You Delete a Kubernetes Cluster in AWS?

Problem scenario
You try to manually delete EC-2 instances (both worker nodes and the master node of Kubernetes), but this does not work. The EC-2 instances are re-created. How do you delete the cluster?

Solution
Prerequisite
Install and configure the AWS CLI; if you need assistance, see this posting.

Procedures
Run these three commands but substitute “contint.k8s.local” with the name of your cluster:

export KOPS_CLUSTER_NAME=contint.k8s.local
export KOPS_STATE_STORE=s3://$KOPS_CLUSTER_NAME-state
kops delete cluster –name contint.k8s.local –yes …

How Do You Find the URL (or HTTP Endpoint) of a Kubernetes Cluster Running in Amazon EKS?

Problem scenario
You have a Kubernetes cluster in AWS. You have the AWS CLI installed. How do you find the URL for the Kubernetes cluster?

Solution
1. Run this command: aws eks list-clusters

2. Run this command: aws eks describe-cluster foobar # where “foobar” was name determined in above command

How Do You Use the aws update-kubeconfig Command?

Problem scenario
You want to manage your Amazon Kubernetes (i.e., EKS) cluster. You have installed the AWS CLI version on a Linux server, and you want to use the update-config or update-kubeconfig command.

But when you try you see messages like “error argument command: Invalid choice…” or “update-config: command not found”. You could not readily find an example. What should you do?

Solution
Background
The command is update-kubeconfig,