Kubernetes Bare-Metal: Troubleshooting

Recover MySQL Cluster After Unexpected Shutdown When MySQL Server shutdown unexpectedly there will be possibility the cluster will be broken and MySQL Server becomes read only. Get rid of MySQL read only status kubectl exec -it -n myapp -c mysql mysql-0 — mysql -u root -p show variables like ‘%read_only%’; +———————–+——-+ | Variable_name | Value …

Kubernetes Bare-Metal: Apps Deployment

To benefit Kubernetes flexible deployment scaling, consider the following conditions: Do not rely on Nginx Ingress load balance method, specifically the ip-hash for balanced loads An app should use shared storage accessible through all its instances, such for session storage or persistent files The following deployment shows typical usage for containerized app which includes MySQL, …

Kubernetes Bare-Metal: Operator and Provisioner Deployment

Operators are software extensions to Kubernetes that make use of custom resources to manage applications and their components. Operators follow Kubernetes principles, notably the control loop. Operator gives simplification to deploy common application such as database servers. In this example, there are MySQL Operator and MongoDB Community Operator. For shared storage, a NFS is used …

Kubernetes Bare-Metal: Accessing Cluster using Dashboard

Dashboard is a web-based Kubernetes user interface. You can use Dashboard to deploy containerized applications to a Kubernetes cluster, troubleshoot your containerized application, and manage the cluster resources. You can use Dashboard to get an overview of applications running on your cluster, as well as for creating or modifying individual Kubernetes resources (such as Deployments, …

Kubernetes Bare-Metal: Load Balancer and Ingress

Load Balancer and Ingress A configuration directory layout used in this page is shown as follows: > kubernetes > config <- configurations > metallb-operator <- MetalLB operator repository > nginx-ingress-helm-operator <- Nginx Ingress operator repository MetalLB Load Balancer Bare-metal cluster operators are left with two lesser tools to bring user traffic into their clusters, “NodePort” …

Kubernetes Bare-Metal: Initialize or Upgrade Cluster

The bare metal deployment of Kubernetes is described as follows: The container runtime is containerd and systemd as cgroup driver Cluster is deployed using kubeadm A configuration directory layout used in this page is shown as follows: > kubernetes > cert <- etcd peer certificate > cni <- calico configuration > config <- configurations > …

Kubernetes Bare-Metal: ETCD Cluster Setup

ETCD is a distributed, reliable key-value store for the most critical data of a distributed system. Bootstrap ETCD Cluster Node To setup an ETCD cluster node, use the following steps: Install etcd package sudo apt-get install etcd Certificates must be already generated sudo mkdir /etc/cert sudo cp ~/cert/ca.crt /etc/cert/ sudo cp ~/cert/etcd-one.crt /etc/cert/ sudo cp …

Kubernetes Bare-Metal: Resources Preparation

Virtual Machines The following Kubernetes infrastructure is using 3 physical servers which each runs virtual machines. The virtual machine servers can be any VM server of your choice such as Oracle VM. With Oracle VM server, there is one additional server needed to run Oracle VM Manager, so total of 4 physical servers need to …

Kubernetes Bare-Metal: Getting Started

Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications. To achieve containerized applications in Kubernetes requires a significant hardware resources such as servers and storages. A minimum of 3 servers is recommended. Also a deep understanding of Kubernetes concepts is preferred for smooth operation of each …