eolab:crunchy_cloud:platform
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| eolab:crunchy_cloud:platform [2024/12/18 11:25] – removed - external edit (Unknown date) 127.0.0.1 | eolab:crunchy_cloud:platform [2024/12/18 11:25] (current) – ↷ Links adapted because of a move operation jan.sonntag | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Platform Technologies ====== | ||
| + | |||
| + | ===== Table of Contents ===== | ||
| + | * [[platform# | ||
| + | * [[platform# | ||
| + | * [[platform# | ||
| + | * [[platform# | ||
| + | * [[platform# | ||
| + | * [[platform# | ||
| + | * [[platform# | ||
| + | |||
| + | |||
| + | ===== Kubernetes ===== | ||
| + | Kubernetes is an open-source container orchestration system designed for automating the deployment, scaling, and management of containerized applications and services. Originally developed by Google, Kubernetes provides a portable, extensible platform that facilitates the efficient orchestration of workloads across clusters of machines. It allows users to abstract the underlying infrastructure, | ||
| + | |||
| + | Kubernetes automates tasks such as load balancing, scaling, and rolling updates, enhancing the efficiency and reliability of containerized applications. Its architecture includes key components like Pods, Nodes, and a Master Control Plane, ensuring seamless coordination and communication among containers. Kubernetes plays a crucial role in modern cloud-native application development, | ||
| + | |||
| + | ==== Distributions ==== | ||
| + | As Kubernetes gained popularity, many companies started providing add-on services, features, and capabilities to help their customers achieve their business goals more quickly. Each of these offerings is known as a distribution; | ||
| + | |||
| + | * Opinionated distributions build the vendor' | ||
| + | * Upstream and open-source distributions are simpler open-source Kubernetes distributions that make installation easier without add-ons. Some of these distributions use upstream Kubernetes and others do not. | ||
| + | * Cloud-managed distributions are offered by cloud platforms like AWS, GCP, and Azure. With these distributions, | ||
| + | * Single-node distributions have control plane and worker nodes on the same server. These Kubernetes distributions are often used as learning environments and can be beneficial for use cases like running an application in Raspberry Pi, edge, and IoT devices. | ||
| + | |||
| + | ==== Microk8s ==== | ||
| + | MicroK8s is a low-ops, minimal production Kubernetes. | ||
| + | |||
| + | MicroK8s is an open-source system for automating deployment, scaling, and management of containerized applications. It provides the functionality of core Kubernetes components, in a small footprint, scalable from a single node to a high-availability production cluster. | ||
| + | |||
| + | === Addons === | ||
| + | MicroK8s uses the minimum amount of components for a pure, lightweight Kubernetes. However, plenty of extra features are available as add-ons. Add-ons are pre-packaged components that will provide extra capabilities for your Kubernetes. | ||
| + | |||
| + | To see the list of available and installed add-ons at any time run: | ||
| + | < | ||
| + | microk8s status | ||
| + | </ | ||
| + | |||
| + | The add-ons required for our setup are dns, hostpath-storage, | ||
| + | < | ||
| + | microk8s enable [add-on name] | ||
| + | </ | ||
| + | |||
| + | ===== NFS Storage ===== | ||
| + | Network File System (NFS) is a distributed file system protocol that enables a client to access files over a network as if they were locally stored. In Kubernetes, NFS storage can be utilized as a backend for Persistent Volumes (PVs), allowing shared storage across multiple nodes in a cluster. | ||
| + | |||
| + | ==== NFS Provisioner ==== | ||
| + | Before using NFS as storage we need to install the NFS CSI driver on MicroK8s. This assumes that NFS is completely and correctly set up on a separate server. | ||
| + | |||
| + | ==== Storage Class ==== | ||
| + | Storage Classes define the characteristics and properties of applications' | ||
| + | |||
| + | In Kubernetes, StorageClass is an API object that allows users to define storage classes and dynamically provision Persistent Volumes (PVs) with specific properties. These properties may include performance levels, redundancy, and other features. This abstraction simplifies the management of storage resources in a Kubernetes cluster, providing flexibility to match application requirements with the appropriate storage backend. | ||
| + | |||
| + | ===== Helm Chart ===== | ||
| + | Helm is a tool that automates the creation, packaging, configuration, | ||
| + | |||
| + | For a step by step guide for installing and running your cluster follow the step by step guide [[eolab: | ||