Posts

Study guide

   Go Study Plan — Complete Curriculum for Controller Development Scope: every Go concept you'll actually touch in controller-runtime code, in the order client-go/kubebuilder code assumes you already know them. Format: each topic has (1) what it is, (2) why it matters specifically for controllers, (3) a program to write yourself. Solutions aren't included on purpose — writing it wrong first and fixing it is where the learning happens. Length: 14 focused sessions. At ~45–60 min/session that's 2–3 weeks; compress to the original 1-week slot by doing 2 sessions/day. Session 1 — Variables, Types, Constants Concepts: var , := , basic types (int, string, bool, float64), const , iota , type conversion Why it matters: k8s API types are just structs full of these primitives. iota shows up in enum-like constants (e.g. resource phases). Program to write: resource_status.go Define constants for a resource's phase using iota : Pending , Running , Failed , Succeeded Write a fu...

K8s01

Image
 Kubernetes is an orchestration platform Kubernetes takes care of the lost nodes and containers Architecture:

useful blog

https://jvns.ca/blog/2017/06/04/learning-about-kubernetes/ http://kamalmarhubi.com/blog/2015/08/27/what-even-is-a-kubelet/ http://kamalmarhubi.com/blog http://kamalmarhubi.com/blog/2015/09/06/kubernetes-from-the-ground-up-the-api-server/ http://kamalmarhubi.com/blog/2015/11/17/kubernetes-from-the-ground-up-the-scheduler/

Create Small and Secure Container Images

Thanks to docker. We are able to prepare small and secure container images Specify your base images, add your changes and build your container. Most images use Debian or ubuntu as base images These base images add hundreds of megabytes as the overhead Application is usually a few MB Methods: 1) Using small base images 2) Using the builder pattern Going from node 8 to node 8-alpine reduces our image size by 10 times To move to a smaller base image, update your docker file to a smaller base image. Unlike the old onbuild build image, you have to copy your code into the container and install the dependencies In the new docker file, the container users alpine base image Using the small base image gives you the flexibility to use small images But using the small containers, you might go even small by using the builder pattern. With interpreted languages - inter compiled languages, the source code is compiled code before hand Compilation step requires code, tha...

Basics - k8s

Kubernetes is a platform It can work with any type of container, not only docker At its core, its gives you a platform that can 1) Scale easily 2) Easy to do monitoring 3) Means to do deployments Master node is the kubernetes Master You decide how to do stuff You talk to Kubernetes and tell it what kind of image you want to use to create a container from and give it other critereon It creates a deployment Deployment can say a bunch of different things i need a certain amount of RAM, cpu ram filestorage All of the above things are part of the deployment K8s will keep track of it Deployment is something that keeps on going. It has a Deployment controller, that in essense If a container goes down, K8s will know about it will try to do anything to auto heal it It iwll spin an another container up and will try to auto heal it. So Deployment is not something of initial launch of a container, but something that keeps on going. Scaling: -------- If we are g...

Core Concepts

What is kubernetes: Its an opensource orchestration system for containers, that helps the end users to Build, Deploy and Maintain distrubuted systems in a "Reliable"  and  "Scalable"  way Software to build, deploy and maintain  reliable, scalable distributed systems in ContainersHow does it do it ? It does this using Application oridnted APIs   Why do we use containers and APIs like kubernetes ? For  Velocity Scaling Agility Abstracting your infrastructure Efficiency Velocity is measured in terms of # of things you can ship to a customer while maintaining a highly available Service The core concepts that make this possible are possible - Immutability - Declarative Configuration - Online self healing systems These concepts will all interrelate and improve the speed with which you can reliably deploy software Value of Immutability: Once an artifact is created, it doesnt change via users modifications Mu...

Another Explanation

Kubernetes: ----------- #======================================================== Kubernetes is a open source orchestration system to manage docker containers It manages the scheduling of the containers on to the compute cluster and actively manages the workloads so that the STATE manages the users declared intentions USING the Concepts of LABELS and PODS , it groups up the containers that make up an Application into logical units for easy management and Discovery Kubernetes uses LABELS as nametags to identify things IT can query based on these labels LABELS are open ended We can use labels to specify roles,Stability or other important attributes PODS: Pods are where the containers live in the kubernetes Cluster In Kubernetes a POD represents a runnable unit of WORK Usually you will run a single container inside a POD BUT for cases like, where few containers are tightly coupled, you may opt to run more than one container inside of the same pod Kubernets t...