All Projects → theJaxon → Kontainerd

theJaxon / Kontainerd

Licence: other
Creating a kubernetes kubeadm cluster using Vagrant machines as nodes and Containerd as a container runtime

Projects that are alternatives of or similar to Kontainerd

kubernetes-cluster
Vagrant As Automation Script
Stars: ✭ 34 (+112.5%)
Mutual labels:  vagrant, kubernetes-cluster, kubeadm
kubeadm-vagrant
Setup Kubernetes Cluster with Kubeadm and Vagrant
Stars: ✭ 49 (+206.25%)
Mutual labels:  vagrant, kubernetes-cluster, kubeadm
Kurl
Production-grade, airgapped Kubernetes installer combining upstream k8s with overlays and popular components
Stars: ✭ 391 (+2343.75%)
Mutual labels:  kubernetes-cluster, kubeadm
Kubeadm Ansible
Build a Kubernetes cluster using kubeadm via Ansible.
Stars: ✭ 479 (+2893.75%)
Mutual labels:  kubernetes-cluster, kubeadm
Kainstall
Use shell scripts to install kubernetes(k8s) high availability clusters and addon components based on kubeadmin with one click.使用shell脚本基于kubeadmin一键安装kubernetes 高可用集群和addon组件。
Stars: ✭ 198 (+1137.5%)
Mutual labels:  kubernetes-cluster, kubeadm
Kubenow
Deploy Kubernetes. Now!
Stars: ✭ 285 (+1681.25%)
Mutual labels:  kubernetes-cluster, kubeadm
Kubekey
Provides a flexible, rapid and convenient way to install Kubernetes only, both Kubernetes and KubeSphere, and related cloud-native add-ons. It is also an efficient tool to scale and upgrade your cluster.
Stars: ✭ 288 (+1700%)
Mutual labels:  kubernetes-cluster, kubeadm
Terraform Aws Kubernetes
Terraform module for Kubernetes setup on AWS
Stars: ✭ 159 (+893.75%)
Mutual labels:  kubernetes-cluster, kubeadm
K8s Digitalocean Terraform
Deploy latest Kubernetes cluster on DigitalOcean using Terraform
Stars: ✭ 33 (+106.25%)
Mutual labels:  kubernetes-cluster, kubeadm
kubeadm-tf
PoC; terraform + kubeadm
Stars: ✭ 25 (+56.25%)
Mutual labels:  kubernetes-cluster, kubeadm
kainstall-offline
kainstall tools offline file
Stars: ✭ 31 (+93.75%)
Mutual labels:  kubernetes-cluster, kubeadm
terraform-provider-kubeadm
A Terraform provider/provisioner for deploying Kubernetes with kubeadm
Stars: ✭ 60 (+275%)
Mutual labels:  kubernetes-cluster, kubeadm
rak8s
Stand up a Raspberry Pi based Kubernetes cluster with Ansible
Stars: ✭ 362 (+2162.5%)
Mutual labels:  kubernetes-cluster, kubeadm
Rak8s
Stand up a Raspberry Pi based Kubernetes cluster with Ansible
Stars: ✭ 354 (+2112.5%)
Mutual labels:  kubernetes-cluster, kubeadm
GPU-Kubernetes-Guide
How to setup a production-grade Kubernetes GPU cluster on Paperspace in 10 minutes for $10
Stars: ✭ 34 (+112.5%)
Mutual labels:  kubernetes-cluster, kubeadm
Kubernetes Vagrant Centos Cluster
Setting up a distributed Kubernetes cluster along with Istio service mesh locally with Vagrant and VirtualBox, only PoC or Demo use.
Stars: ✭ 1,750 (+10837.5%)
Mutual labels:  vagrant, kubernetes-cluster
kubernetes the easy way
Automating Kubernetes the hard way with Vagrant and scripts
Stars: ✭ 22 (+37.5%)
Mutual labels:  vagrant, kubernetes-cluster
aws-kubernetes
Kubernetes cluster setup in AWS using Terraform and kubeadm
Stars: ✭ 32 (+100%)
Mutual labels:  kubernetes-cluster, kubeadm
terraform-aws-eks-node-group
Terraform module to provision EKS Managed Node Group
Stars: ✭ 14 (-12.5%)
Mutual labels:  kubernetes-cluster
docker-case
这个项目主要是为了快速拉起docker服务
Stars: ✭ 31 (+93.75%)
Mutual labels:  vagrant

Kontainer8

Kubeadm Vagrant Ansible Ubuntu

Ingress Locl-path-provisioner

Table of Contents generated with DocToc

Creating a kubernetes cluster using Vagrant machines as nodes and Containerd as a container runtime

  • This role is just an automation for the steps of aCloudGuru CKS Lesson Building a Kubernetes Cluster

  • Parts of the roles are also borrowed from my previous projects for creating K8s cluster

  • Vagrant ansible local provisioner is used to execute the roles on the target hosts

  • Kubernetes version to be used can be modified by changing the fact inside kontainerd role

- set_fact:
    k8s_version: 1.24.0-00 # Change to whatever desired version

Vagrant Machines details

Machine Address FQDN
master 192.168.100.11 master master.com
worker 192.168.100.10 worker worker.com

How to use

# Clone the repo
git clone https://github.com/theJaxon/Kontainer8.git

cd Kontainerd

# Start the machines 
vagrant up 

# SSH into any of the machines 
vagrant ssh < master | worker >

Locally building images

  • Start by installing podman
# Assuming there's a Dockerfile in the current working directory
podman build --tag jenkins-local .

# Save the image into tar file
podman save jenkins-local -o jenkins-local.tar

# Use ctr to import the image 
sudo ctr -n=k8s.io images import jenkins-local.tar

# Verify that the image is now available for k8s to use 
sudo crictl image ls

> localhost/jenkins-local

Accessing the Ingress from the Host OS

  • Nginx Ingress controller is configured to use nodeport 30000 so that we end up with a fixed port number for the controller
  • Using the controller as a proxy can be done by calling any of the 2 machines
curl --proxy http://192.168.100.10:30000 http://jellyfin.media/web/index.html
curl --proxy http://192.168.100.11:30000 http://jellyfin.media/web/index.html
  • On the host OS one can take advantage of Firefox by setting the proxy to point to the ingress controller

Firefox_proxy

  • You can take this one step further and install a plugin like Proxy Toggle to easily use the controller and revert back to the regular browser settings
  • Once the Ingress controller is set up as the proxy, you can reach the needed services using the configured ingress Jellyfin

Extras

  • Extras role defines additional resources that will be deployed to the kubernetes cluster, it's responsible for creating 2 new namespaces
    1. ingress-nginx - where nginx ingress controller will be deployed
    2. local-path-storage - where local path provisioner will be deployed (local path is the default storage class)

  • One of the quirks i've faced was with installing kubernetes packages (kubeadm, kubectl and kubelet), the problem has to do with the order so i started first by installing kubelet which in turn installed kubectl (and this was breaking the installation since it was installing latest kubectl version not the version i'm specifying) so upon continuing the task another attempt to install kubectl is made with a downgraded version thus ansible errors.
  • The workaround was to change the sequence and start by installing the desired kubectl version

Useful Resources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].