Kubernetes - Fichiers YAML
Alasta 20 Juillet 2024 kubernetes kubernetes yaml cli
Description : Fichiers YAML et quelques commandes
Kubernetes
POD
Description
C’est la plus petite unité que l’on peut déployer dans Kubernetes.
Le Pod contient le/les containers.
CLI
kubectl run myapp-pod --image=nginx [--port=80]YAML
pod-definition.yml
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
type: front-end
spec:
containers:
- name: nginx-container
image: nginxApplication
kubectl create -f pod-definition.ymlReplication Controller
Description
C’est le prédécesseur du ReplicaSet, il s’assure que le nombre de replica de pod dans le cluster soit respecté.
Son abréviation est rc dans les commandes.
YAML
replicationcontroller-def.yml
apiVersion: v1
kind: ReplicationController
metadata:
name: nginx
spec:
replicas: 3
selector:
app: nginx
template:
metadata:
name: nginx
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginxNote: c’est l’ajout dans la section spec/template (du ReplicationController) de la section metadata et spec du pod.

Application
kubectl create -f replicationcontroller-def.ymlReplicaSet
Description
Un ReplicaSet maintient le nombre de replica de pod dans le cluster. Son abréviation est rs.
YAML
replicaset-def.yml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx
labels:
app: nginx
spec:
containers:
- name: nginx
imahe: nginxNote: c’est l’ajout dans la section spec/template (du ReplicaSet) de la section metadata et spec du pod.

Application
kubectl create -f replicaset-def.ymlDeployment
YAML
deployment-def.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80Application
kubectl create -f deployment-def.ymlNamespace
Description
Séparer les objets dans des namespaces dédiés.
CLI
kubectl create namespace <my_namespace>YAML
namespace-def.yml
apiVersion: v1
kind: Namespace
metadata:
name: my_namespaceApplication
kubectl create -f namespace-def.ymlResource Quota
YAML
resourcequota-def.yml
apiVersion: v1
kind: ResourceQuota
metadata:
name: my_resourcequota
namespace: dev
spec:
hard:
pods: "10"
requests.cpu: "4"
requests.memory: 5Gi
limits.cpu: "10"
limits.memory: 10GiApplication
kubectl create -f resourcequota-def.yml