Learning iin Public

Learning in public is a great way to solidify new ideas and concepts. I’m excited to share what I am currently studying.

Drum Roll Please

I am learning Oracle Cloud Infrastructure (OCI) and Kubernetes this week.

Last week I began the OCI journey and passed the Oracle Cloud Infrastructure Foundations certification test.

Cert Details

You may have heard of a few of the popular cloud providers like Amazon AWS, Google Cloud, and Microsoft Azure.

Oracle is making it’s way into the cloud space. In fact they are looking to train people up and are currently offering free cloud certifications for their platform.

This is a great opportunity to learn more about the cloud space and you can click this –> link to learn more.

This week I am learning about OCI Development practices. Creating containers for applications in the cloud.

One of the modules is on Kubernetes (K8s) and I had NO idea what it was.

I have a general idea or very high level understanding of K8s, but it felt like proceeding in the course without the foundation knowledge was a mistake.

*searches* youtube “Kubernetes for beginners”

I picked this Freecodecamp course from the results.

I cloned one of my ubuntu desktop virtual machines, installed the required software, and got started.

For ubuntu based machines:

  • Docker or Docker Community Edition
  • minikube
  • kubectl (command line interface tool)
  • hypervisor of some sort. (I used kvm)
  #install Docker Community Edition 
  $ sudo apt -y install apt-transport-https ca-certificates curl software-properties-common
  $  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  $  sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  
  $ sudo apt update
  $ sudo apt -y install docker-ce docker-ce-cli containerd.io
  $ sudo usermod -aG docker $USER
  $ docker version
  
#install minikube 
  $  curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
  $  sudo install minikube-linux-amd64 /usr/local/bin/minikube
  $  minikube version
#install kubectl
  $  curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
  $  chmod +x kubectl
  $  sudo mv kubectl /usr/local/bin
  $  kubectl version -o json

(I made a small mistake and had to start over)

When I cloned the ubuntu vm it had a small disk image (15gb). And I ran out of space while installing containers.

Easy simple fix right?

The filesystem actually borked when I went to expand it. it was no longer bootable.

So I deleted the clone, then expand the disk image for the clone again, and installed those apps again.

It’s a good idea to have plenty of disk space. for this

TIL Kubernetes basics

Some background on K8s

K8s - is a container orchestartion system. That allow you to create multiple containers on different servers

K8s’ have many benefits:

  • Automatic deployment of containerized apps accross different servers
    • on baremetal servers or virtual machines
  • Automatic load distribution across multiple servers
  • Auto-scaling of the deployed applications
  • Monitoring and health checking for containers
  • Auto-replacement of failed containers

Conclusion

I will be sharing more information on Kubernetes.

The next article will dive deeper on the concepts learned, the commandline interface, and more.

The main idea in learning this is to use this information to deploy a few projects. So more content coming soon!

I’d love to connect with you as I learn in public.

You can find me on twitter or linkedin.