forked from neodexter/Kubernetes
-
Notifications
You must be signed in to change notification settings - Fork 33
/
label-deployment.yaml
38 lines (29 loc) · 1.89 KB
/
label-deployment.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Introduction:
# This YAML is a Kubernetes configuration for a 'Deployment'. It's a blueprint that tells Kubernetes how to deploy and manage an application, in this case, an Nginx web server.
apiVersion: apps/v1 # Specifies the API version of Kubernetes being used for this deployment.
kind: Deployment # 'Deployment' is a type of resource in Kubernetes that manages a set of replica Pods.
metadata:
name: nginx-deployment # The name of the deployment, here it's 'nginx-deployment'.
labels:
app: nginx # These are labels, like tags, used to identify and organize Kubernetes resources.
spec:
replicas: 2 # Indicates the number of Nginx server instances (replicas) that should be running.
selector:
matchLabels:
app: nginx # This selector tells the Deployment which Pods it should manage, identified by labels.
template: # Defines the blueprint for creating the Pods.
metadata:
labels:
app: nginx # Labels for the Pods; these should match the selector's matchLabels.
spec:
containers:
- name: nginx # Name of the container inside each Pod.
image: nginx:1.12 # The Docker image to use for the container.
ports:
- containerPort: 80 # The port that the Nginx server listens on.
nodeSelector:
disktype: ssd # This line is a key-value pair label. It tells K8s Scheduler to place these Pods only on nodes labeled with 'disktype: ssd'. It's a way to select specific nodes for these Pods.
# Conclusion:
# In summary, this deployment configuration sets up 2 instances of an Nginx web server in the Kubernetes cluster.
# The 'nodeSelector' is used to ensure that these instances run on specific nodes labeled 'disktype: ssd'.
# This setup is crucial for distributing the application to the appropriate resources in the cluster.