Skip to content

Lab4 Deployment & DaemonSet Solution

Deployment

Créer un deploiement nommé web (avec 4 replicas) basé sur l’image httpd

Terminal window
vi deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app3-web
spec:
replicas: 4
selector:
matchLabels:
app3: web
template:
metadata:
labels:
app3: web
spec:
containers:
- name: nginx
image: nginx:1.17-alpine

Créer un service nommé web de type NodePort rassemblant les pods du deploiment web sur le nodePort 30001

Terminal window
vi service.yml
apiVersion: v1
kind: Service
metadata:
name: web
spec:
selector:
app3: web
type: NodePort
ports:
- port: 80
targetPort: 80
nodePort: 30001

Appliquer les spécifications

Terminal window
kubectl apply -f .

Visualiser le résultat

Terminal window
kubectl get deploy,rs,pods,svc -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
deployment.apps/web 4/4 4 4 5m20s apache httpd:2.4-alpine app3=web
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR
replicaset.apps/web-66bcf7cf77 4 4 4 5m20s apache httpd:2.4-alpine app3=web,pod-template-hash=66bcf7cf77
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/app3-ds-7ldcc 1/1 Terminating 0 3m25s 192.168.0.145 host13 <none> <none>
pod/app3-ds-vkt88 1/1 Terminating 0 3m25s 192.168.0.72 host12 <none> <none>
pod/web-66bcf7cf77-2q644 1/1 Running 0 5m20s 192.168.0.143 host13 <none> <none>
pod/web-66bcf7cf77-bnchn 1/1 Running 0 5m20s 192.168.0.144 host13 <none> <none>
pod/web-66bcf7cf77-kmmfk 1/1 Running 0 5m20s 192.168.0.71 host12 <none> <none>
pod/web-66bcf7cf77-pwnnq 1/1 Running 0 5m20s 192.168.0.70 host12 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/web NodePort 10.97.155.18 <none> 80:30001/TCP 5m20s app3=web

DaemonSet

Créer un DaemonSet nommé debug basé sur l’image alpine

Terminal window
vi daemonset.yml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: app3-ds
spec:
selector:
matchLabels:
app3: daemon
template:
metadata:
labels:
app3: daemon
spec:
containers:
- name: daemon
image: alpine:3.12
command: ["sleep","3600"]

Appliquer la spécification

kubectl apply -f daemonset.yml

Visualiser le résultat

Terminal window
kubectl get ds,pods -o wide
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE CONTAINERS IMAGES SELECTOR
daemonset.apps/app3-ds 2 2 2 2 2 <none> 47s daemon alpine:3.12 app3=daemon
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/app3-ds-l6gcv 1/1 Running 0 47s 192.168.0.146 host13 <none> <none>
pod/app3-ds-tr6z2 1/1 Running 0 47s 192.168.0.73 host12 <none> <none>