Kubernetes in a Nutshell
minikube start && minikube addons enable ingresseval $(minikube docker-env)docker build -t app .echo -e "add to /etc/hosts:\n$(minikube ip) app.example.com\n"kubectl apply -f app.yamlcurl http://app.example.com
| apiVersion: apps/v1 | |
| kind: Deployment | |
| metadata: | |
| name: app-deployment | |
| labels: | |
| app: app | |
| spec: | |
| replicas: 1 | |
| selector: | |
| matchLabels: | |
| app: app | |
| template: | |
| metadata: | |
| labels: | |
| app: app | |
| spec: | |
| containers: | |
| - name: app | |
| image: app | |
| imagePullPolicy: Never # we need to build it (see step #2) | |
| ports: | |
| - containerPort: 8000 | |
| --- | |
| kind: Service | |
| apiVersion: v1 | |
| metadata: | |
| name: app | |
| spec: | |
| selector: | |
| app: app | |
| ports: | |
| - protocol: TCP | |
| port: 80 | |
| targetPort: 8000 | |
| --- | |
| apiVersion: networking.k8s.io/v1 | |
| kind: Ingress | |
| metadata: | |
| name: app | |
| spec: | |
| rules: | |
| - host: app.example.com | |
| http: | |
| paths: | |
| - backend: | |
| serviceName: app | |
| servicePort: 80 |
| FROM debian:stable | |
| RUN apt-get update \ | |
| && apt-get -y --no-install-recommends install \ | |
| python \ | |
| && apt-get clean \ | |
| && rm -rf /var/lib/apt/lists/* | |
| EXPOSE "8000" | |
| ENTRYPOINT ["python", "-m", "SimpleHTTPServer"] |