DEV Community

Cover image for Learn Kubernetes, Part I, Basics, Deployment and Minikube

Learn Kubernetes, Part I, Basics, Deployment and Minikube

Chris Noring on May 18, 2019

Follow me on Twitter, happy to take your suggestions on topics or improvements /Chris Kubernetes is about orchestrating containerized apps. Docke...
Collapse
 
thorstenhirsch profile image
Thorsten Hirsch

It's Also called K8s so Kubernete*s*, 8 characters in the middle are removed. Now you can impress your friends that you know why it's referred to as K8.

I always thought the reason for this is that "ete" in "Kubernetes" sounds like an 8, so we have "Kubern8s". What kind of eights? Well, "Kubern" eights are not a real thing, so we skip the "ubern", and now we have "K'8s", which just becomes "K8s".

Collapse
 
softchris profile image
Chris Noring

Hi Thorsten. This is what Google themselves say..

kubernetes.io/docs/concepts/overvi...

But who knows what else is true ;)

Collapse
 
sambenskin profile image
Sam Benskin

Yeah it's a similar principle to internationalisation being shortened to i11n as it has 11 letters in the middle and just makes it quicker to type and slightly quicker to say

Thread Thread
 
thorstenhirsch profile image
Thorsten Hirsch

But... it's i18n, because 18 letters have been dropped.

Thread Thread
 
sambenskin profile image
Sam Benskin

...doh!

Collapse
 
jayendran profile image
Jayendran Arumugam

After running the below

kubectl run kubernetes-first-app --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080

When I run kubectl get deployments its gives back like No resources found in default namespace.

So I ran like
kubectl create deployment kubernetes-first-app --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080

Then the deployment list can able to work. Not sure whether I missed any earlier steps.

Collapse
 
dendihandian profile image
Dendi Handian

It's failed to start on my machine:

C:\Users\dendi>minikube start
* minikube v1.15.1 on Microsoft Windows 10 Home Single Language 10.0.19041 Build 19041
* Using the hyperv driver based on existing profile
* minikube 1.16.0 is available! Download it: https://github.com/kubernetes/minikube/releases/tag/v1.16.0
* To disable this notice, run: 'minikube config set WantUpdateNotification false'

* Starting control plane node minikube in cluster minikube
* Creating hyperv VM (CPUs=2, Memory=3000MB, Disk=20000MB) ...
! StartHost failed, but will try again: creating host: create: precreate: Hyper-V PowerShell Module is not available
* Creating hyperv VM (CPUs=2, Memory=3000MB, Disk=20000MB) ...
* Failed to start hyperv VM. Running "minikube delete" may fix it: creating host: create: precreate: Hyper-V PowerShell Module is not available

X Exiting due to PR_HYPERV_MODULE_NOT_INSTALLED: Failed to start host: creating host: create: precreate: Hyper-V PowerShell Module is not available
* Suggestion: Run: 'Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Tools-All'
* Documentation: https://www.altaro.com/hyper-v/install-hyper-v-powershell-module/
* Related issue: https://github.com/kubernetes/minikube/issues/9040
Enter fullscreen mode Exit fullscreen mode
Collapse
 
softchris profile image
Chris Noring

Seems like the error message is saying what's wrong

Hyper-V PowerShell Module is not installed
Enter fullscreen mode Exit fullscreen mode

Here's a thread where people seem to have a similar issue, maybe that helps?
github.com/kubernetes/minikube/iss...

Collapse
 
shaijut profile image
Shaiju T

Hi Chris,

I have a doubt whether Its worth for .NET developers to learn kubernetes. Can you explain by adding some comment on below post. I have posted it long ago but no answers.

dev.to/shaijut/kubernetes-vs-azure...

Collapse
 
softchris profile image
Chris Noring

hi Shaijut. In trying to answer you I must make some assumptions. When you say .NET you mean .NET and not .NET Core.. Let's assume you are doing .NET Core, so you can easily containerize. Otherwise I think App Service is your only option. For me, Kubernetes vs App Service is a matter of what architecture I have. If I have several Microservices rather than a Monolith then I need an orchestrator like Docker Swarm, Kubernetes or similar. The reason is to be able to scale easily, load balance and whatever else you need. App Service does a decent job of scaling as it is a PaaS but I would say if you have a very large operation 500k users and a Microservice Architecture it makes sense to look further into Kubernetes and AKS for example . Azure Service Fabric is another option we have. For ppl already using it, keep using it. For others, look into AKS.. We support multiple ecosystems for containers but all indications I have says the future is Kubernetes. Don't take that as an official statement though

Collapse
 
shaijut profile image
Shaiju T • Edited

Thanks for detail explanation 😄, Actually I heard someone saying two points 1. For .NET Core Apps Azure Service Fabric is good choice. 2. Use Kubernetes for other stacks like Java, NodeJS etc...

So from your comments I am able conclude that I being a .NET Developer its worth to learn Kubernetes. Actually planning to do Kubernetes certification.

Thread Thread
 
softchris profile image
Chris Noring

np :). Here's some resources to get you started docs.microsoft.com/en-us/azure/aks... dotnet.microsoft.com/apps/aspnet/m...

Collapse
 
achoarnold profile image
Arnold Acho

Thanks for this awesome writeup. I think there's a little typo here

Instead of typing kubectl proxy we can now type curl http://localhost:8001/version and get the same results:

I think it should be

Instead of typing kubectl version we can now type curl http://localhost:8001/version and get the same results:

Collapse
 
softchris profile image
Chris Noring

Hi thanks. Appreciate you pointing that out :)

Collapse
 
sambenskin profile image
Sam Benskin

Great read, thanks for sharing your knowledge in an easy to understand way. Looking forward to part 3.

Just a small suggestion. A link to the next article in the series at the bottom helps the reader move on without having to scroll all the way back to the top to find the link

Collapse
 
softchris profile image
Chris Noring

Hi Sam. Thanks for that. Will update it

Collapse
 
sambenskin profile image
Sam Benskin

You're welcome 😀

Collapse
 
ehanlon profile image
Eammon Hanlon • Edited

Excellent post @softchris !

There are a couple of typos:

  • curl http://localhost:8001/api/v1/namespaces/default/pod/$POD_NAME should be curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME

  • curl http:localhost:8080 should be curl http://localhost:8080

Collapse
 
softchris profile image
Chris Noring

Thanks :) Appreciate your comments

Collapse
 
mgh87 profile image
Martin Huter

Really nice post.

I got a small setup at home for some local services with docker-compose. Do you think its worth it to switch to k8s with a single node (master)? Or is it to much overhead to maintain it?

Collapse
 
softchris profile image
Chris Noring

hi Martin.. I'd say it depends. If you are hosting it in the Cloud then horizontal scaling is enabled by default and that might be all you need. To me it sounds like it might be overkill but trying it out on a hobby basis is how most of us learn anything

Collapse
 
gwllmnn profile image
Grégoire Willmann

Excellent introduction! Thank you!

Collapse
 
softchris profile image
Chris Noring

Thank you :)

Collapse
 
jericomanapsal profile image
jericomanapsal

Great, soft, and effective introduction about k8s. I'm looking forward for part two. In fact, I'm looking forward to the entire series. Please do more ☸️

Collapse
 
softchris profile image
Chris Noring

part two is here dev.to/azure/kubernetes-part-ii-re... working on part 3 :)

Collapse
 
goranpaunovic profile image
Goran Paunović

For windows 10 users with HyperV, you must explicitly specify 'hyperv' as a driver since minikube use VirtualBox by default.

minikube start --vm-driver=hyperv

Collapse
 
wizardrogue profile image
Joseph Angelo Barrozo

Dang it. Take my heart. I appreciate that high quality gif.

Collapse
 
maurycyszmurlo profile image
Maurycy Szmurlo

Nice read, Chris. Looking for next part!

Collapse
 
theodesp profile image
Theofanis Despoudis

Awesome

Collapse
 
henrik_oliveira profile image
Henrique Oliveira

when will you do part 2. I am exciting about it.

Collapse
 
softchris profile image
Chris Noring
Collapse
 
samplezt profile image
Lucas Griotti

Thanks a lot. I learn so much of all your articles

Collapse
 
softchris profile image
Chris Noring

hi Lucas. That's very nice of you to say. Thank you.. :)

Collapse
 
sathyasarathi90 profile image
Sathyasarathi

Nodes were historically called Minions, but not so anymore. :(

Collapse
 
softchris profile image
Chris Noring

yea it's the most disappointing thing about K8s :)

Collapse
 
ariaseta profile image
Ariaseta Setia Alam

Wow awesome, can't wait for part 2

Collapse
 
softchris profile image
Chris Noring

hi Ariaseta. Thanks for the comment :). The 2nd part is gonna be published in the next week.

Collapse
 
realabbas profile image
Ali Abbas

Exceptional Post on Dev.to about Kubernetes a.k.a K8. Already looking forward to Part II

Collapse
 
softchris profile image
Chris Noring

hi Ali. Really appreciate that comment.. thank you.. Yes will work hard to release second part in the next few days :)