From c6763a6ff83e0b39ae3b4976ee3b501e95becf05 Mon Sep 17 00:00:00 2001 From: gwen Date: Mon, 12 Jan 2026 16:44:24 +0100 Subject: [PATCH] kubernetes --- kubernetes/app/.dashboard-ingress.yaml.swp | Bin 0 -> 12288 bytes kubernetes/app/.mongo-express.yml.swp | Bin 0 -> 12288 bytes kubernetes/app/dashboard-ingress.yaml | 20 ++++++ kubernetes/app/mongo-express.yml | 54 +++++++++++++++ kubernetes/app/mongodb-configmap.yml | 7 ++ kubernetes/app/mongodb-depl.yaml | 45 +++++++++++++ kubernetes/app/mongodb-secret.yaml | 9 +++ kubernetes/debut/mongo-depl.yaml | 62 ++++++++++++++++++ kubernetes/debut/nginx-deployment.yaml | 19 ++++++ kubernetes/debut/nginx-service.yaml | 19 ++++++ .../kubernetes_last/bribes/ingress.yaml | 16 +++++ .../kubernetes_last/configmap-example.yaml | 11 ++++ kubernetes/kubernetes_last/configmap2.yaml | 12 ++++ kubernetes/kubernetes_last/intro.txt | 38 +++++++++++ kubernetes/kubernetes_last/manifest.txt | 41 ++++++++++++ .../kubernetes_last/monprojet-namespace.yaml | 4 ++ kubernetes/kubernetes_last/secret.yaml | 8 +++ kubernetes/kubernetes_last/secret2.yaml | 15 +++++ kubernetes/kubernetes_last/service.yaml | 13 ++++ kubernetes/new/alpine.yml | 15 +++++ kubernetes/new/job.yaml | 13 ++++ .../nginx/nginx-deployment-service.yaml | 42 ++++++++++++ kubernetes/nginx/nginx-deployment.yaml | 19 ++++++ 23 files changed, 482 insertions(+) create mode 100644 kubernetes/app/.dashboard-ingress.yaml.swp create mode 100644 kubernetes/app/.mongo-express.yml.swp create mode 100644 kubernetes/app/dashboard-ingress.yaml create mode 100644 kubernetes/app/mongo-express.yml create mode 100644 kubernetes/app/mongodb-configmap.yml create mode 100644 kubernetes/app/mongodb-depl.yaml create mode 100644 kubernetes/app/mongodb-secret.yaml create mode 100644 kubernetes/debut/mongo-depl.yaml create mode 100644 kubernetes/debut/nginx-deployment.yaml create mode 100644 kubernetes/debut/nginx-service.yaml create mode 100644 kubernetes/kubernetes_last/bribes/ingress.yaml create mode 100644 kubernetes/kubernetes_last/configmap-example.yaml create mode 100644 kubernetes/kubernetes_last/configmap2.yaml create mode 100644 kubernetes/kubernetes_last/intro.txt create mode 100644 kubernetes/kubernetes_last/manifest.txt create mode 100644 kubernetes/kubernetes_last/monprojet-namespace.yaml create mode 100644 kubernetes/kubernetes_last/secret.yaml create mode 100644 kubernetes/kubernetes_last/secret2.yaml create mode 100644 kubernetes/kubernetes_last/service.yaml create mode 100644 kubernetes/new/alpine.yml create mode 100644 kubernetes/new/job.yaml create mode 100644 kubernetes/nginx/nginx-deployment-service.yaml create mode 100644 kubernetes/nginx/nginx-deployment.yaml diff --git a/kubernetes/app/.dashboard-ingress.yaml.swp b/kubernetes/app/.dashboard-ingress.yaml.swp new file mode 100644 index 0000000000000000000000000000000000000000..92a36ca19a96a6f47043fb65de3ac011ed9124bf GIT binary patch literal 12288 zcmeI&zi!kp90zb0b)-juK7e~&kWiBApCQT&Lo0Oxx;u$`i7v4%+c~Zh5)Z&b@C0l; zLzx*_VDH|YUz()XD^iiVo%D_LRWAOQpFi6vPA6x_r#uc17+u?pjYi+I>*r6IdBvF3 z+PBUByXM9P`O#q-PqL$j#zuv%Wz?jN@=YX+iE`nJR12F2rJ7plTzDbs>Y*jj2LT8? zMxgQMLA=Ed5B4YR^u6&efBE9WV^+c(2tWV=5P$##AOHafKwwP;yxCx%srDy*{X6}A z%vfB*y_009U<00Izz00bZafi)BmIb*-K7&{qJ@$~(F`2YXs8Dl>wKPcZQ zUnrj_?N~8rq;_2tWV=5P$##AOHafKmY;| z_(y=>zf@DF(k48fu)AGGTc7ZiradKUnebYxsSf1AwCBJBC+)n<mGqL% zoDavx?+oiFCbvzg$YxUI%LXHS@&3ZlE8i|e=J`-fz}udLNBz|H$#v5T?@jwF;DvTn zzmd7sm8cpe!*fd=wy7kIbw+00jAfN!siWa^dsYeO5HV%7>BPQ7NF&8MdF}K2izoWRRu4oG@+_!(x{Jk_BUog-Yo-{I}5vBEz1VtmU)T)PA{{4duy9y;k>iJtKl3<0*e# z8S+jL$|xFddhUKt(>*dk1`ceXuGftGFq@pnW#by7moD;iXO|CLjvgcfWPl8i0Wv@a z$N(8217zUv8PLHHdx*A=q^(b<*P(%H`YT@JW z7w{3h0WZM=(3;~RTqA0k43GgbKnBPF86X2>;Quhd8E=hIU)i#vLT&QNEJhmMJ*q{x zE_ITf&*pP!a?pCb6EJuXDy=N#n*8Q$1xay2Wa5WW-3+A3XWe?FWjJ5qaT`f&K?(bs zaD{KluodPUpXr*s?>k*&N79v+R-wtFKw5E8UwEk5muEyWY&e!=p47q?T9|Cp@oke= z)3^wn6&Xg3@=e~zF~cxWsCR72rpfKv>V}H+z^$J5*)_vb{+hGyiJ&hliIzlgLpGP> zTHI!PG=y81*F)u*?KR-sNGDM$uFfu&ug}k|mKMu%i-l{e)#B1hajBb`RB3gW%sBo~ z+6Y7x-BzK^+Am42{hdbA3T6LflF)uVb}H`O;!L45U#`qltG5=H3Z49CTDB*#M*&Z0Yh$5PqkD`v4`tvwmWWKA>l~^* gPG7f)o+WF4MZe>;6;N0;J?U%Kd*IMvl) literal 0 HcmV?d00001 diff --git a/kubernetes/app/dashboard-ingress.yaml b/kubernetes/app/dashboard-ingress.yaml new file mode 100644 index 0000000..d31d774 --- /dev/null +++ b/kubernetes/app/dashboard-ingress.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: dashboard-ingress + namespace: kubernetes-dashboard + annotations: + kubernetes.io/ingress.class: "nginx" +spec: + rules: + - host: pedrolalune.fr + http: + paths: + - path: / + pathType: Exact + backend: + service: + name: kubernetes-dashboard + #name: mongo-express-service + port: + number: 80 diff --git a/kubernetes/app/mongo-express.yml b/kubernetes/app/mongo-express.yml new file mode 100644 index 0000000..af37aa3 --- /dev/null +++ b/kubernetes/app/mongo-express.yml @@ -0,0 +1,54 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mongo-express + labels: + app: mongo-express +spec: + replicas: 1 + selector: + matchLabels: + app: mongo-express + template: + metadata: + labels: + app: mongo-express + spec: + containers: + - name: mongo-express + image: mongo-express + ports: + - containerPort: 8081 + env: + - name: ME_CONFIG_MONGODB_ADMINUSERNAME + valueFrom: + secretKeyRef: + name: mongodb-secret + key: mongo-root-username + - name: ME_CONFIG_MONGODB_ADMINPASSWORD + valueFrom: + secretKeyRef: + name: mongodb-secret + key: mongo-root-password + - name: ME_CONFIG_MONGODB_SERVER + valueFrom: + configMapKeyRef: + name: mongodb-configmap + key: db_host +--- +apiVersion: v1 +kind: Service +metadata: + name: mongo-express-service +spec: + selector: + app: mongo-express + type: LoadBalancer + #type: ClusterIP + ports: + - protocol: TCP + port: 8081 + targetPort: 8081 + nodePort: 30000 + #nodePort: 30000 + diff --git a/kubernetes/app/mongodb-configmap.yml b/kubernetes/app/mongodb-configmap.yml new file mode 100644 index 0000000..43bcf20 --- /dev/null +++ b/kubernetes/app/mongodb-configmap.yml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: mongodb-configmap +data: + db_host: mongodb-service + diff --git a/kubernetes/app/mongodb-depl.yaml b/kubernetes/app/mongodb-depl.yaml new file mode 100644 index 0000000..4449324 --- /dev/null +++ b/kubernetes/app/mongodb-depl.yaml @@ -0,0 +1,45 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mongodb-deployment + labels: + app: mongodb +spec: + selector: + matchLabels: + app: mongodb + template: + metadata: + labels: + app: mongodb + spec: + containers: + - name: mongodb + image: mongo + ports: + - containerPort: 27017 + env: + - name: MONGO_INITDB_ROOT_USERNAME + valueFrom: + secretKeyRef: + name: mongodb-secret + key: mongo-root-username + - name: MONGO_INITDB_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: mongodb-secret + key: mongo-root-password +--- +apiVersion: v1 +kind: Service +metadata: + name: mongodb-service +spec: + selector: + app: mongodb + ports: + - protocol: TCP + port: 27017 + targetPort: 27017 + + diff --git a/kubernetes/app/mongodb-secret.yaml b/kubernetes/app/mongodb-secret.yaml new file mode 100644 index 0000000..0772992 --- /dev/null +++ b/kubernetes/app/mongodb-secret.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Secret +metadata: + name: mongodb-secret +type: Opaque +data: + mongo-root-username: dXNlcm5hbWU= + mongo-root-password: cGFzc3dvcmQ= + diff --git a/kubernetes/debut/mongo-depl.yaml b/kubernetes/debut/mongo-depl.yaml new file mode 100644 index 0000000..ac1ab93 --- /dev/null +++ b/kubernetes/debut/mongo-depl.yaml @@ -0,0 +1,62 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + deployment.kubernetes.io/revision: "1" + creationTimestamp: "2023-01-02T14:44:40Z" + generation: 1 + labels: + app: mongo-depl + name: mongo-depl + namespace: default + resourceVersion: "13911" + uid: 3c5120a0-9cf8-4112-89f4-39da30df18d3 +spec: + progressDeadlineSeconds: 600 + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app: mongo-depl + strategy: + rollingUpdate: + maxSurge: 25% + maxUnavailable: 25% + type: RollingUpdate + template: + metadata: + creationTimestamp: null + labels: + app: mongo-depl + spec: + containers: + - image: mongo + imagePullPolicy: Always + name: mongo + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + dnsPolicy: ClusterFirst + restartPolicy: Always + schedulerName: default-scheduler + securityContext: {} + terminationGracePeriodSeconds: 30 +status: + availableReplicas: 1 + conditions: + - lastTransitionTime: "2023-01-02T14:44:42Z" + lastUpdateTime: "2023-01-02T14:44:42Z" + message: Deployment has minimum availability. + reason: MinimumReplicasAvailable + status: "True" + type: Available + - lastTransitionTime: "2023-01-02T14:44:40Z" + lastUpdateTime: "2023-01-02T14:44:42Z" + message: ReplicaSet "mongo-depl-8fbdb868c" has successfully progressed. + reason: NewReplicaSetAvailable + status: "True" + type: Progressing + observedGeneration: 1 + readyReplicas: 1 + replicas: 1 + updatedReplicas: 1 diff --git a/kubernetes/debut/nginx-deployment.yaml b/kubernetes/debut/nginx-deployment.yaml new file mode 100644 index 0000000..dbed8bc --- /dev/null +++ b/kubernetes/debut/nginx-deployment.yaml @@ -0,0 +1,19 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-deployment +spec: + selector: + matchLabels: + app: nginx + replicas: 2 # tells deployment to run 2 pods matching the template + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx:1.14.2 + ports: + - containerPort: 80 diff --git a/kubernetes/debut/nginx-service.yaml b/kubernetes/debut/nginx-service.yaml new file mode 100644 index 0000000..51d729e --- /dev/null +++ b/kubernetes/debut/nginx-service.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + name: nginx + namespace: default + labels: + app: nginx + annotations: + service.beta.kubernetes.io/aws-load-balancer-type: "nlb" +spec: + externalTrafficPolicy: Local + ports: + - name: http + port: 80 + protocol: TCP + targetPort: 80 + selector: + app: nginx + type: LoadBalancer diff --git a/kubernetes/kubernetes_last/bribes/ingress.yaml b/kubernetes/kubernetes_last/bribes/ingress.yaml new file mode 100644 index 0000000..adc921c --- /dev/null +++ b/kubernetes/kubernetes_last/bribes/ingress.yaml @@ -0,0 +1,16 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: name-virtual-host-ingress +spec: + rules: + - host: mistergwen.site + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: service1 + port: + number: 80 diff --git a/kubernetes/kubernetes_last/configmap-example.yaml b/kubernetes/kubernetes_last/configmap-example.yaml new file mode 100644 index 0000000..5d29527 --- /dev/null +++ b/kubernetes/kubernetes_last/configmap-example.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: exemple-configmap + namespace: monprojet +data: + config.json: | + { + "param1": "valeur1", + "param2": "valeur2" + } diff --git a/kubernetes/kubernetes_last/configmap2.yaml b/kubernetes/kubernetes_last/configmap2.yaml new file mode 100644 index 0000000..4a5b92d --- /dev/null +++ b/kubernetes/kubernetes_last/configmap2.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Pod +metadata: + name: pod-configmap + namespace: monprojet +spec: + containers: + - name: mon-conteneur + image: nginx + envFrom: + - configMapRef: + name: exemple-configmap diff --git a/kubernetes/kubernetes_last/intro.txt b/kubernetes/kubernetes_last/intro.txt new file mode 100644 index 0000000..e625340 --- /dev/null +++ b/kubernetes/kubernetes_last/intro.txt @@ -0,0 +1,38 @@ +snap install microk8s --classic +microk8s kubectl get nodes + +microk8s kubectl create deployment nginx-deployment --image=nginx +microk8s kubectl get pod +kubectl get replicaset +microk8s kubectl edit deployment nginx-deployment +kubectl describe deployment nginx-deployment + + +alias k="microk8s kubectl" + +k -n default # -n : namespaces +kubectl run pod --help + +#autodoc: +k explain pod +# documenter un sous-objet: +k explain pods.spec.affinity +# toutes les docs des sous-objets +k explain pods.spec.affinity --recursive +# toutes les ressources pouvant être déclarées +k api-resources +# les versions doivent être identiques +k version +Client Version: v1.28.7 +Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3 +Server Version: v1.28.7 +k get + + + +---- + +microk8s enable ingress +daemonset.apps/nginx-ingress-microk8s-controller created +Ingress is enabled + diff --git a/kubernetes/kubernetes_last/manifest.txt b/kubernetes/kubernetes_last/manifest.txt new file mode 100644 index 0000000..c3ce3e8 --- /dev/null +++ b/kubernetes/kubernetes_last/manifest.txt @@ -0,0 +1,41 @@ +Les manifestes +------------------ + +k apply -f monprojet-namespace.yaml +k get namespaces + +k get pods -n default +NAME READY STATUS RESTARTS AGE +nginx-deployment-6d6565499c-rgfqj 1/1 Running 3 (9d ago) 18d + +- apply (qu'on peut faire plusieurs fois) +- get +- describe +- edit + + +scaling +------------- + +k scale deployment nginx-deployment --replicas 2 +deployment.apps/nginx-deployment scaled +root@vps-d5f0bb47:~# k get deploy +NAME READY UP-TO-DATE AVAILABLE AGE +nginx-deployment 1/2 2 1 18d +root@vps-d5f0bb47:~# k get deploy +NAME READY UP-TO-DATE AVAILABLE AGE +nginx-deployment 2/2 2 2 18d + +services +------------- + + +k get all +k logs + +delete +---------- + +kubectl delete all --all + + diff --git a/kubernetes/kubernetes_last/monprojet-namespace.yaml b/kubernetes/kubernetes_last/monprojet-namespace.yaml new file mode 100644 index 0000000..44f7de2 --- /dev/null +++ b/kubernetes/kubernetes_last/monprojet-namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: monprojet diff --git a/kubernetes/kubernetes_last/secret.yaml b/kubernetes/kubernetes_last/secret.yaml new file mode 100644 index 0000000..5355507 --- /dev/null +++ b/kubernetes/kubernetes_last/secret.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: exemple-secret + namespace: monprojet +type: Opaque +data: + password: cGFzc3dvcmQ= diff --git a/kubernetes/kubernetes_last/secret2.yaml b/kubernetes/kubernetes_last/secret2.yaml new file mode 100644 index 0000000..c06abe3 --- /dev/null +++ b/kubernetes/kubernetes_last/secret2.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: pod-secret + namespace: monprojet +spec: + containers: + - name: mon-conteneur + image: nginx + env: + - name: PASSWORD + valueFrom: + secretKeyRef: + name: exemple-secret + key: password diff --git a/kubernetes/kubernetes_last/service.yaml b/kubernetes/kubernetes_last/service.yaml new file mode 100644 index 0000000..06ec0c9 --- /dev/null +++ b/kubernetes/kubernetes_last/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: nginx-service + namespace: monprojet +spec: + type: NodePort + selector: + app: nginx + ports: + - protocol: TCP + port: 80 + nodePort: 30007 diff --git a/kubernetes/new/alpine.yml b/kubernetes/new/alpine.yml new file mode 100644 index 0000000..19e1346 --- /dev/null +++ b/kubernetes/new/alpine.yml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: alpine + namespace: default +spec: + containers: + - image: alpine:3.2 + command: + - /bin/sh + - "-c" + - "sleep 60m" + imagePullPolicy: IfNotPresent + name: alpine + restartPolicy: Always diff --git a/kubernetes/new/job.yaml b/kubernetes/new/job.yaml new file mode 100644 index 0000000..2755c1e --- /dev/null +++ b/kubernetes/new/job.yaml @@ -0,0 +1,13 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: pi +spec: + template: + spec: + containers: + - name: pi + image: perl:5.34.0 + command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"] + restartPolicy: Never + backoffLimit: 4 diff --git a/kubernetes/nginx/nginx-deployment-service.yaml b/kubernetes/nginx/nginx-deployment-service.yaml new file mode 100644 index 0000000..b5ac48f --- /dev/null +++ b/kubernetes/nginx/nginx-deployment-service.yaml @@ -0,0 +1,42 @@ +--- +apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2 +kind: Deployment +metadata: + name: nginx +spec: + strategy: + type: Recreate + selector: + matchLabels: + app: nginx + replicas: 3 # tells deployment to run 1 pods matching the template + template: # create pods using pod definition in this template + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx + ports: + - containerPort: 80 +--- +apiVersion: v1 +kind: Service +metadata: + name: nginx + namespace: default + labels: + app: nginx + annotations: + service.beta.kubernetes.io/aws-load-balancer-type: "nlb" +spec: + externalTrafficPolicy: Local + ports: + - name: http + port: 80 + protocol: TCP + targetPort: 80 + selector: + app: nginx + type: LoadBalancer diff --git a/kubernetes/nginx/nginx-deployment.yaml b/kubernetes/nginx/nginx-deployment.yaml new file mode 100644 index 0000000..a5f1997 --- /dev/null +++ b/kubernetes/nginx/nginx-deployment.yaml @@ -0,0 +1,19 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-deployment +spec: + selector: + matchLabels: + app: nginx + replicas: 1 # tells deployment to run 2 pods matching the template + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx:1.14.2 + ports: + - containerPort: 80