diff --git a/kubernetes/app/.dashboard-ingress.yaml.swp b/kubernetes/app/.dashboard-ingress.yaml.swp new file mode 100644 index 0000000..92a36ca Binary files /dev/null and b/kubernetes/app/.dashboard-ingress.yaml.swp differ diff --git a/kubernetes/app/.mongo-express.yml.swp b/kubernetes/app/.mongo-express.yml.swp new file mode 100644 index 0000000..e728ac1 Binary files /dev/null and b/kubernetes/app/.mongo-express.yml.swp differ 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