Kubernetes in a Nutshell
minikube start && minikube addons enable ingress
eval $(minikube docker-env)
docker build -t app .
echo -e "add to /etc/hosts:\n$(minikube ip) app.example.com\n"
kubectl apply -f app.yaml
curl 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"] |