Key Components Of YAML In Kubernetes
1. Indentation Matters
Structure through Whitespace: YAML doesn’t use curly braces or other delimiters to define structure. Instead, it relies solely on indentation, similar to Python. This means spaces or tabs (consistently used) create a hierarchy of elements within the document.
For Example:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: container1
image: nginx
- name: container2
image: busybox
- The indentation clearly shows that containers is nested within spec, and the two containers are members of the list within containers.
2.Key-Value Pairs
- Fundamental Data Unit: YAML uses key-value pairs to represent data. Each key is followed by a colon (:), and the value is placed on the next line.
- Common Keys In Kubernetes
- apiVersion: It specifies with what version the Kubernetes API configuration is compatible with.
- kind: It is used to identify the type of Kubernetes resource being defined .
- metadata: It contains information about the resource itself, such as its name, labels, and annotations.
3.Lists And Arrays
- Hyphenated Lists: In Kubernetes, Lists are created using hyphens (-), with each item starting on a new line and indented at the same level.
- Examples In Kubernetes:
- Container Specifications: A pod’s spec section includes a list of containers which are to be run within the pod.
- Deployment Containers: A deployment manifest includes a list of containers to be deployed and managed as a group.
Example Of YAML Creating A Simple Kubernetes Pod
Let’s break down a basic YAML example that creates a pod running an Nginx container.
apiVersion: v1
kind: Pod
metadata:
name: my-nginx-pod
spec:
containers:
- name: nginx-container
image: nginx:latest
Explanation
- ‘apiVersion‘ and ‘kind’ specify the Kubernetes API version and the type of resource (Pod, in this case).
- ‘metadata’ holds information like the name of the pod (‘my-nginx-pod‘).
- ‘spec’ contains the specifications for the pod, including the container details.
- ‘containers‘ is a list that includes details of the Nginx container, such as its name and the Docker image (nginx:latest).
What Is YAML In Kubernetes ?
Kubernetes is dependent on YAML (YAML Ain’t Markup Language) as its configuration language. YAML makes managing and deploying Kubernetes more easy and simple. In this article, we’ll cover all the aspects of using YAML in Kubernetes.