diff --git a/README.md b/README.md index 042e8bc..b728ca6 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,10 @@ # kubernetes-learn +## Minikube + +- minikube start --driver=kvm2 --nodes=3 --kvm-qemu-uri=qemu:///system --kvm-network=default --cpus=8 --memory=8g +- minikube delete --purge +- minikube addons enable metrics-server +- minikube dashboard +- minikube addons enable ingress +- curl --resolve "nginx.example:80:$( minikube ip )" -i http://nginx.example \ No newline at end of file diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..982dda5 --- /dev/null +++ b/flake.lock @@ -0,0 +1,57 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 0, + "narHash": "sha256-WGaHVAjcrv+Cun7zPlI41SerRtfknGQap281+AakSAw=", + "path": "/nix/store/593xvgv994xlkm5mb7w4p1xxnzrs9wv6-source", + "type": "path" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..d41a237 --- /dev/null +++ b/flake.nix @@ -0,0 +1,29 @@ +{ + description = "Environnement de développement pour kubernetes pour apprendre"; + + inputs = { + nixpkgs.url = "nixpkgs"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { + nixpkgs, + flake-utils, + ... + }: flake-utils.lib.eachSystem flake-utils.lib.allSystems (system: + let + pkgs = import nixpkgs { inherit system; }; + in { + devShells = rec { + default = pkgs.mkShell { + packages = with pkgs; [ + minikube + kubectl + docker-machine-kvm2 # Required for run on NixOS + ]; + }; + }; + } + ); +} + diff --git a/nginx/deployment.yaml b/nginx/deployment.yaml new file mode 100644 index 0000000..303e401 --- /dev/null +++ b/nginx/deployment.yaml @@ -0,0 +1,21 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-deployment + labels: + app: nginx +spec: + replicas: 2 + selector: + matchLabels: + app: nginx + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx:1.14.2 + ports: + - containerPort: 80 diff --git a/nginx/ingress.yml b/nginx/ingress.yml new file mode 100644 index 0000000..e7de830 --- /dev/null +++ b/nginx/ingress.yml @@ -0,0 +1,18 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: nginx-ingress + annotations: + nginx.ingress.kubernetes.io/rewrite-target: / +spec: + ingressClassName: nginx + rules: + - http: + paths: + - path: /nginx + pathType: Prefix + backend: + service: + name: nginx-service + port: + number: 8000 \ No newline at end of file diff --git a/nginx/service.yaml b/nginx/service.yaml new file mode 100644 index 0000000..241de6a --- /dev/null +++ b/nginx/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: nginx-service +spec: + type: ClusterIP + selector: + app: nginx + ports: + - protocol: TCP + port: 8000 + targetPort: 80 \ No newline at end of file