@@ -12,4 +12,130 @@ $ docker-compose up -d --build
1212
1313## Kubernetes
1414
15- WIP
15+ ### Minikube
16+
17+ Install and run [ Minikube] ( https://kubernetes.io/docs/setup/minikube/ ) .
18+
19+ #### [ Hyperkit] ( https://github.com/moby/hyperkit ) Example
20+
21+ Install:
22+
23+ ``` sh
24+ $ curl -Lo docker-machine-driver-hyperkit \
25+ https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-hyperkit \
26+ && chmod +x docker-machine-driver-hyperkit \
27+ && sudo cp docker-machine-driver-hyperkit /usr/local/bin/ \
28+ && rm docker-machine-driver-hyperkit \
29+ && sudo chown root:wheel /usr/local/bin/docker-machine-driver-hyperkit \
30+ && sudo chmod u+s /usr/local/bin/docker-machine-driver-hyperkit
31+ ```
32+
33+ Run:
34+
35+ ``` sh
36+ $ minikube start --vm-driver=hyperkit
37+ $ eval $( minikube docker-env)
38+ $ minikube dashboard
39+ ```
40+
41+ ### Postgres
42+
43+ Create deployment:
44+
45+ ``` sh
46+ $ kubectl create -f ./kubernetes/postgres-deployment.yml
47+ ```
48+
49+ Create the service:
50+
51+ ``` sh
52+ $ kubectl create -f ./kubernetes/postgres-service.yml
53+ ```
54+
55+ Create the database:
56+
57+ ``` sh
58+ $ kubectl get pods
59+ $ kubectl exec postgres-< POD_IDENTIFIER> \
60+ --stdin --tty -- createdb -U postgres books
61+ ```
62+
63+ ### Flask
64+
65+ Build and push the image to Docker Hub:
66+
67+ ``` sh
68+ $ docker build -t mjhea0/flask-kubernetes ./services/server
69+ $ docker push mjhea0/flask-kubernetes
70+ ```
71+
72+ > Make sure to replace ` mjhea0 ` with your Docker Hub namespace in the above commands as well as in * kubernetes/flask-deployment.yml*
73+
74+ Create the deployment:
75+
76+ ``` sh
77+ $ kubectl create -f ./kubernetes/flask-deployment.yml
78+ ```
79+
80+ Create (and expose) the service:
81+
82+ ``` sh
83+ $ kubectl expose deployment flask --type=NodePort --port 5000
84+ ```
85+
86+ Try it out:
87+
88+ ``` sh
89+ $ open $( minikube service flask --url) /books/ping
90+ $ open $( minikube service flask --url) /books
91+ ```
92+
93+ ### Vue
94+
95+ Build and push the image to Docker Hub:
96+
97+ ``` sh
98+ $ docker build -t mjhea0/vue-kubernetes ./services/client \
99+ -f ./services/client/Dockerfile-minikube
100+ $ docker push mjhea0/vue-kubernetes
101+ ```
102+
103+ > Again, replace ` mjhea0 ` with your Docker Hub namespace in the above commands as well as in * kubernetes/vue-deployment.yml*
104+
105+ Create the deployment:
106+
107+ ``` sh
108+ $ kubectl create -f ./kubernetes/vue-deployment.yml
109+ ```
110+
111+ Create (and expose) the service:
112+
113+ ``` sh
114+ $ kubectl expose deployment vue --type=NodePort --port 8080
115+ ```
116+
117+ Try it out:
118+
119+ ``` sh
120+ $ open $( minikube service vue --url)
121+ ```
122+
123+ ### Ingress
124+
125+ Enable and apply:
126+
127+ ``` sh
128+ $ minikube addons enable ingress
129+ $ kubectl apply -f ./kubernetes/minikube-ingress.yml
130+ ```
131+
132+ Add entry to * /etc/hosts* file:
133+
134+ ```
135+ <MINIKUBE_IP> hello.world
136+ ```
137+
138+ Try it out:
139+
140+ 1 . http://hello.world
141+ 1 . http://hello.world/books
0 commit comments