Skip to main content

Kubernetes: Node Time Like Show Time

The title was initially 'Bring Back the Node', but I didn't think people would get the reference. Applause if you did!




Making a deployment in the previous post made a POD for our application to be hosted in.

($POD_NAME variable)

Pods are an abstraction that represent 1 or more containers and shared resources for them, like Volumes, what the page describes as

‘Networking, as a unique cluster IP address’ (Sounds exciting, like a distant relative of subnetting or vlans)

 and instructions on  how to actually run the containers.





A Pod can hold the application and something that is closely coupled to it. The example given is a Node.js app and the data to be read by it.

Pods hold containers, and the containers share an IP address / Port space
Are co-located and scheduled, and
Run in a shared context on the same Node.

When we create a Deployment, that Deployment creates Pods with Containers inside of them.

The hierarchy reminds me a bit of Forests/Trees. Or Matryoshka dolls.

Pods run on Nodes, a virtual or physical worker machine in Kubernetes, and is managed by the Master.

Nodes = Multiple pods, Master schedules pods automatically across Nodes in the cluster.

Every Node runs at least a Kubelet and a container runtime, that pulls the container image from a registry, unpackets it, and runs it.

I’m just going to link to the image they provide. It looks like a cell.

So;

* Nodes hold pods and pods hold volumes and containerized apps.
* and there are some processes on the node.

Let’s troubleshoot with kubectl.

The syntax is kubectl [action]

- get [resource]; Lists resources
- describe; Show details about a resource
- logs; Print logs from a container
- exec; Execute a command on a podded container.
And those are what we’re going to be using in today’s tutorial!

Just putting in kubectl get with no specifics lists a lot of things.

Whoa nelly. 

adding pods gives us just the one.



But what’s in our pod? Describe it.


That’s not even all of the information!

Time to debug through a proxy in another terminal window.


We’re going to store this into the POD_NAME variable.

the curl request shows the output
{curl http://localhost:8001/api/vi/namespaces/default/pods/$POD_NAME/proxy}
The very long Pod name is in that variable, we don’t have to type it out, just $POD_NAME. Nice.

If there was more than one Pod, it wouldn't work.

What about our container logs? Let’s use
kubectl logs $POD_NAME


"Where are you running? WHERE are you running?"

Cool, now let’s execute a command.

The pod should be up and running, and we use the exec variable instead of get.



(env = enviroment variables, I think. I looked it up.)
(using SSL port 443)

Let’s start a bash in the Pod container with kubectl exec -ti $POD_NAME bash

Oh, we’ve moved to the root of our container! See the prompt over there?


 Now we can run the application with cat [where the source code is stored].
And check it again with a curl command. Close the container with an exit command.

Comments

Popular posts from this blog

What Do You Need? [AKA; List of Offered Services / My Next Role] (2020)

UPDATED 2021 I am a trusted outsourced remote consultant for your company.   I enjoy having the flexibility to take on temporary projects from time to time! I start at part-time, temp work for now. If we like each other, we can renegotiate. If anything sounds weird, out there, or unusual - Feel free to e-mail me .  3 Services Offered Technical: Cloud Technician     Azure [ See tag ] WORKING ON: Infrastructure As Code (Specifically Terraform/Azure and CloudFormation/AWS)  Support [Web: Example Job Description ] [Text : Example Description ]     I help you with adjustments in HTML, CSS, and Javascript.     When you email a business a question and they answer? That's me.   IT Operations Tech [ Example Job Description ]     Hardware and SaaS support.     Cisco routing and switching (Networking). CCNA, A+, Sec+, Azure certified WORKING ON: Junos Networking  Writing :      You want to pay me to write more of *waves hand* this blog? I am game .     I write B2C e-mails going out to o

Contactless Tech’s Role in the New Guest Experience ft. Intelity and The George

 Contactless hospitality technology is growing. You want to get away, and you'll be damned if a little thing like a deadly virus will stop you! But you still don't want to touch things. Ew. During the chat between INTELITY CEO Robert Stevenson and THE GEORGE Director of Operations Kerrie Hunter, you’ll learn how the historic boutique hotel has adapted a mobile-first guest experience in the wake of COVID-19—and how they see contactless technology affecting the future of hospitality. I don't remember how I found INTELITY (probably hoping to score a position with them), but I liked them enough to stay on the e-mail lists.  

Connecting IoT Devices to a Registration Server (Packet Tracer, Cisco)

In Packet Tracer, a demo software made by Cisco Systems. It certainly has changed a lot since 2016. It's almost an Olympic feat to even get started with it now, but it does look snazzy. This is for the new CCNA, that integrates, among other things, IoT and Automation, which I've worked on here before. Instructions here . I don't know if this is an aspect of "Let's make sure people are paying attention and not simply following blindly", or an oversight - The instructions indicate a Meraki Server, when a regular one is the working option here. I have to enable the IoT service on this server. Also, we assign the server an IPv4 address from a DHCP pool instead of giving it a static one. For something that handles our IoT business, perhaps that's safer; Getting a new IPv4 address every week or so is a minimal step against an intruder, but it is a step. There are no devices associated with this new server; In an earlier lab (not shown), I attached them to 'H