@@ -15,21 +15,29 @@ function minikube-install() {
15
15
# https://github.com/kubernetes/minikube/issues/11107
16
16
HELLO_MINIKUBE_IMAGE=" preslavmihaylov/kubehelloworld:latest"
17
17
fi
18
- echo -e ' \e[38;5;198m' " CPU is $ARCH "
18
+ echo -e ' \e[38;5;198m' " ++++ "
19
+ echo -e ' \e[38;5;198m' " ++++ CPU is $ARCH "
20
+ echo -e ' \e[38;5;198m' " ++++ "
19
21
20
22
if [ -f /usr/local/bin/minikube ]; then
23
+ echo -e ' \e[38;5;198m' " ++++ "
21
24
echo -e ' \e[38;5;198m' " ++++ Minikube found at /usr/local/bin/minikube"
25
+ echo -e ' \e[38;5;198m' " ++++ "
22
26
else
23
27
curl -sLo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-$ARCH
24
28
sudo chmod +x minikube
25
29
sudo mkdir -p /usr/local/bin/
26
30
sudo install minikube /usr/local/bin/
27
31
fi
28
32
33
+ echo -e ' \e[38;5;198m' " ++++ "
29
34
echo -e ' \e[38;5;198m' " ++++ Delete Minikube"
35
+ echo -e ' \e[38;5;198m' " ++++ "
30
36
for mkd in $( ps aux | grep -e dashboard -e kubectl | grep -v grep | grep -v nomad | tr -s " " | cut -d " " -f2) ; do bash -c " sudo kill -9 $mkd || true" ; done
31
37
sleep 10;
38
+ echo -e ' \e[38;5;198m' " ++++ "
32
39
echo -e ' \e[38;5;198m' " ++++ Check minikube proccesses"
40
+ echo -e ' \e[38;5;198m' " ++++ "
33
41
bash -c " ps aux | grep -e dashboard -e kubectl || true"
34
42
sleep 5;
35
43
@@ -42,43 +50,59 @@ function minikube-install() {
42
50
# sudo --preserve-env=PATH -u vagrant mkdir /home/vagrant/.kube
43
51
# sudo chmod -R 777 /home/vagrant/.kube
44
52
53
+ echo -e ' \e[38;5;198m' " ++++ "
45
54
echo -e ' \e[38;5;198m' " ++++ docker system prune -a"
55
+ echo -e ' \e[38;5;198m' " ++++ "
46
56
yes | sudo docker system prune -a
47
57
yes | sudo docker system prune --volumes
48
58
sudo docker volume prune -f
49
59
50
60
# BUG: https://github.com/kubernetes/minikube/issues/7179
61
+ echo -e ' \e[38;5;198m' " ++++ "
51
62
echo -e ' \e[38;5;198m' " ++++ Installing Contrack"
63
+ echo -e ' \e[38;5;198m' " ++++ "
52
64
sudo apt-get install --assume-yes conntrack ethtool socat
53
65
66
+ echo -e ' \e[38;5;198m' " ++++ "
54
67
echo -e ' \e[38;5;198m' " ++++ Launching Minikube"
68
+ echo -e ' \e[38;5;198m' " ++++ "
55
69
# https://minikube.sigs.k8s.io/docs/commands/start/
56
70
# https://unofficial-kubernetes.readthedocs.io/en/latest/admin/admission-controllers/
57
71
# https://github.com/kubernetes/minikube/issues/604
58
- sudo --preserve-env=PATH -u vagrant CHANGE_MINIKUBE_NONE_USER=true minikube start --driver=docker --force-systemd=true --insecure-registry=" 10.9.99.0/24" --cpus 4 --memory 8192 --disk-size=2g --mount-string=" /vagrant:/vagrant" --mount --extra-config=apiserver.enable-admission-plugins=" DefaultStorageClass"
72
+ sudo --preserve-env=PATH -u vagrant CHANGE_MINIKUBE_NONE_USER=true minikube start --driver=docker --force-systemd=true --insecure-registry=" 10.9.99.0/24" --cpus 4 --memory $( free -m | tr -s " " | grep Mem | cut -d " " -f2 ) --disk-size=2g --mount-string=" /vagrant:/vagrant" --mount --extra-config=apiserver.enable-admission-plugins=" DefaultStorageClass"
59
73
# --extra-config=apiserver.enable-admission-plugins="LimitRanger,NamespaceExists,NamespaceLifecycle,ResourceQuota,ServiceAccount,DefaultStorageClass,MutatingAdmissionWebhook"
60
74
# "ResourceQuota,ServiceAccount,MutatingAdmissionWebhook,LimitRanger,NamespaceExists,NamespaceLifecycle," --kubelet.node-ip=10.9.99.10 --apiserver-name=0.0.0.0 --apiserver-ips=0.0.0.0
61
75
62
76
sudo --preserve-env=PATH -u vagrant curl -sLO https://storage.googleapis.com/kubernetes-release/release/` curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt` /bin/linux/$ARCH /kubectl
63
77
sudo --preserve-env=PATH -u vagrant chmod +x kubectl
64
78
sudo install kubectl /usr/local/bin/
65
79
66
- echo " installing k9s"
80
+ echo -e ' \e[38;5;198m' " ++++ "
81
+ echo -e ' \e[38;5;198m' " ++++ Installing k8s CLI"
82
+ echo -e ' \e[38;5;198m' " ++++ "
67
83
sudo curl -sS https://webinstall.dev/k9s | bash
68
84
85
+ echo -e ' \e[38;5;198m' " ++++ "
69
86
echo -e ' \e[38;5;198m' " ++++ Initially, some services such as the storage-provisioner, may not yet be in a Running state. This is a normal condition during cluster bring-up, and will resolve itself momentarily. For additional insight into your cluster state, minikube bundles the Kubernetes Dashboard, allowing you to get easily acclimated to your new environment:\nSleep 30s.."
87
+ echo -e ' \e[38;5;198m' " ++++ "
70
88
sleep 30;
71
89
90
+ echo -e ' \e[38;5;198m' " ++++ "
72
91
echo -e ' \e[38;5;198m' " ++++ Get minikube IP"
92
+ echo -e ' \e[38;5;198m' " ++++ "
73
93
MINIKUBE_IP=$( sudo --preserve-env=PATH -u vagrant minikube ip)
74
94
sudo --preserve-env=PATH -u vagrant minikube ip
75
95
96
+ echo -e ' \e[38;5;198m' " ++++ "
76
97
echo -e ' \e[38;5;198m' " ++++ Enable Minikube Ingress Addon"
98
+ echo -e ' \e[38;5;198m' " ++++ "
77
99
sudo --preserve-env=PATH -u vagrant minikube addons enable ingress
78
100
79
101
# Docker Registry via Minikube
80
102
# https://minikube.sigs.k8s.io/docs/handbook/registry/
103
+ echo -e ' \e[38;5;198m' " ++++ "
81
104
echo -e ' \e[38;5;198m' " ++++ Enable Minikube Docker Registry Addon"
105
+ echo -e ' \e[38;5;198m' " ++++ "
82
106
sudo --preserve-env=PATH -u vagrant minikube addons enable registry
83
107
sleep 30;
84
108
@@ -87,15 +111,21 @@ function minikube-install() {
87
111
while ! ( sudo netstat -nlp | grep 5001 ) && (( $attempts < $max_attempts )) ; do
88
112
attempts=$(( attempts+ 1 ))
89
113
sleep 10;
114
+ echo -e ' \e[38;5;198m' " ++++ "
90
115
echo -e ' \e[38;5;198m' " ++++ kubectl port-forward -n kube-system service/registry 5001:80 --address=\" 0.0.0.0\" , (${attempts} /${max_attempts} ) sleep 10s"
116
+ echo -e ' \e[38;5;198m' " ++++ "
91
117
sudo --preserve-env=PATH -u vagrant kubectl port-forward -n kube-system service/registry 5001:80 --address=" 0.0.0.0" > /dev/null 2>&1 &
92
118
done
93
119
120
+ echo -e ' \e[38;5;198m' " ++++ "
94
121
echo -e ' \e[38;5;198m' " ++++ Enable Minikube Default Storage Class Addon"
122
+ echo -e ' \e[38;5;198m' " ++++ "
95
123
sudo --preserve-env=PATH -u vagrant minikube addons enable default-storageclass
96
124
97
125
# https://minikube.sigs.k8s.io/docs/commands/dashboard/
126
+ echo -e ' \e[38;5;198m' " ++++ "
98
127
echo -e ' \e[38;5;198m' " ++++ Starting Minikube dashboard"
128
+ echo -e ' \e[38;5;198m' " ++++ "
99
129
sudo --preserve-env=PATH -u vagrant nohup minikube dashboard --url &
100
130
sleep 30;
101
131
@@ -105,66 +135,94 @@ function minikube-install() {
105
135
while ! ( sudo netstat -nlp | grep 10888 ) && (( $attempts < $max_attempts )) ; do
106
136
attempts=$(( attempts+ 1 ))
107
137
sleep 10;
138
+ echo -e ' \e[38;5;198m' " ++++ "
108
139
echo -e ' \e[38;5;198m' " ++++ kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 10888:80 --address=\" 0.0.0.0\" , (${attempts} /${max_attempts} ) sleep 10s"
140
+ echo -e ' \e[38;5;198m' " ++++ "
109
141
sudo --preserve-env=PATH -u vagrant kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 10888:80 --address=" 0.0.0.0" > /dev/null 2>&1 &
110
142
done
111
143
112
144
# via kube proxy
113
145
# sudo --preserve-env=PATH -u vagrant nohup kubectl proxy --address="0.0.0.0" -p 10888 --disable-filter=true --accept-hosts='^*$' &
114
- echo -e ' \e[38;5;198m' " Tada! Minikube Dashboard is now available at http://localhost:10888"
146
+ echo -e ' \e[38;5;198m' " ++++ "
147
+ echo -e ' \e[38;5;198m' " ++++ Tada! Minikube Dashboard is now available at http://localhost:10888"
148
+ echo -e ' \e[38;5;198m' " ++++ "
115
149
sleep 10;
116
150
151
+ echo -e ' \e[38;5;198m' " ++++ "
117
152
echo -e ' \e[38;5;198m' " ++++ sudo minikube status"
153
+ echo -e ' \e[38;5;198m' " ++++ "
118
154
sudo --preserve-env=PATH -u vagrant minikube status
119
155
156
+ echo -e ' \e[38;5;198m' " ++++ "
120
157
echo -e ' \e[38;5;198m' " ++++ sudo minikube service list"
158
+ echo -e ' \e[38;5;198m' " ++++ "
121
159
sudo --preserve-env=PATH -u vagrant minikube service list
122
160
161
+ echo -e ' \e[38;5;198m' " ++++ "
123
162
echo -e ' \e[38;5;198m' " ++++ sudo kubectl get nodes"
163
+ echo -e ' \e[38;5;198m' " ++++ "
124
164
sudo --preserve-env=PATH -u vagrant kubectl get nodes
125
165
166
+ echo -e ' \e[38;5;198m' " ++++ "
126
167
echo -e ' \e[38;5;198m' " ++++ Interact with Minikube"
127
- echo -e ' \e[38;5;198m' " vagrant kubectl get po -A"
168
+ echo -e ' \e[38;5;198m' " ++++ "
169
+ echo -e ' \e[38;5;198m' " ++++ vagrant kubectl get po -A"
170
+ echo -e ' \e[38;5;198m' " ++++ "
128
171
sudo --preserve-env=PATH -u vagrant kubectl get po -A
129
172
130
- echo -e ' \e[38;5;198m' " minikube kubectl -- get po -A"
173
+ echo -e ' \e[38;5;198m' " ++++ "
174
+ echo -e ' \e[38;5;198m' " ++++ minikube kubectl -- get po -A"
175
+ echo -e ' \e[38;5;198m' " ++++ "
131
176
sudo --preserve-env=PATH -u vagrant minikube kubectl -- get po -A
132
177
133
- echo -e ' \e[38;5;198m' " Start Minikube Tunnel"
178
+ echo -e ' \e[38;5;198m' " ++++ "
179
+ echo -e ' \e[38;5;198m' " ++++ Start Minikube Tunnel"
180
+ echo -e ' \e[38;5;198m' " ++++ "
134
181
sudo --preserve-env=PATH -u vagrant minikube tunnel > /dev/null 2>&1 &
135
182
136
183
# https://kubernetes.io/docs/tutorials/hello-minikube/
137
- echo -e ' \e[38;5;198m' " Deploy hello-minikube application"
138
- echo -e ' \e[38;5;198m' " Create a sample deployment and expose it on port 3000:"
139
- echo -e ' \e[38;5;198m' " kubectl create deployment hello-minikube --image=$HELLO_MINIKUBE_IMAGE "
140
- echo -e ' \e[38;5;198m' " kubectl expose deployment hello-minikube --type=NodePort --port=3000"
184
+ echo -e ' \e[38;5;198m' " ++++ "
185
+ echo -e ' \e[38;5;198m' " ++++ Deploy hello-minikube application"
186
+ echo -e ' \e[38;5;198m' " ++++ Create a sample deployment and expose it on port 3000:"
187
+ echo -e ' \e[38;5;198m' " ++++ kubectl create deployment hello-minikube --image=$HELLO_MINIKUBE_IMAGE "
188
+ echo -e ' \e[38;5;198m' " ++++ kubectl expose deployment hello-minikube --type=NodePort --port=3000"
189
+ echo -e ' \e[38;5;198m' " ++++ "
141
190
sudo --preserve-env=PATH -u vagrant kubectl create deployment hello-minikube --image=$HELLO_MINIKUBE_IMAGE
142
191
sudo --preserve-env=PATH -u vagrant kubectl expose deployment hello-minikube --type=NodePort --port=3000
143
- echo -e ' \e[38;5;198m' " It may take a moment, but your deployment will soon show up when you run:"
144
- echo -e ' \e[38;5;198m' " kubectl get services hello-minikube"
192
+ echo -e ' \e[38;5;198m' " ++++ "
193
+ echo -e ' \e[38;5;198m' " ++++ It may take a moment, but your deployment will soon show up when you run:"
194
+ echo -e ' \e[38;5;198m' " ++++ kubectl get services hello-minikube"
195
+ echo -e ' \e[38;5;198m' " ++++ "
145
196
sleep 15;
146
197
sudo --preserve-env=PATH -u vagrant kubectl get services hello-minikube
147
198
148
- echo -e ' \e[38;5;198m' " The easiest way to access this service is to let kubectl to forward the port:"
149
- echo -e ' \e[38;5;198m' " kubectl port-forward service/hello-minikube 18888:3000"
199
+ echo -e ' \e[38;5;198m' " ++++ "
200
+ echo -e ' \e[38;5;198m' " ++++ The easiest way to access this service is to let kubectl to forward the port:"
201
+ echo -e ' \e[38;5;198m' " ++++ kubectl port-forward service/hello-minikube 18888:3000"
202
+ echo -e ' \e[38;5;198m' " ++++ "
150
203
sleep 25;
151
204
152
205
attempts=0
153
206
max_attempts=15
154
207
while ! ( sudo netstat -nlp | grep 18888 ) && (( $attempts < $max_attempts )) ; do
155
208
attempts=$(( attempts+ 1 ))
156
209
sleep 10;
210
+ echo -e ' \e[38;5;198m' " ++++ "
157
211
echo -e ' \e[38;5;198m' " ++++ kubectl port-forward -n default service/hello-minikube 18888:3000 --address=\" 0.0.0.0\" , (${attempts} /${max_attempts} ) sleep 10s"
212
+ echo -e ' \e[38;5;198m' " ++++ "
158
213
sudo --preserve-env=PATH -u vagrant kubectl port-forward -n default service/hello-minikube 18888:3000 --address=" 0.0.0.0" > /dev/null 2>&1 &
159
214
done
160
- echo -e ' \e[38;5;198m' " Tada! Your application is now available at http://localhost:18888/"
161
-
162
- echo -e ' \e[38;5;198m' " Browse the catalog of easily installed Kubernetes services:"
163
- echo -e ' \e[38;5;198m' " minikube addons list"
215
+ echo -e ' \e[38;5;198m' " ++++ "
216
+ echo -e ' \e[38;5;198m' " ++++ Tada! Your application is now available at http://localhost:18888/"
217
+ echo -e ' \e[38;5;198m' " ++++ Browse the catalog of easily installed Kubernetes services:"
218
+ echo -e ' \e[38;5;198m' " ++++ minikube addons list"
219
+ echo -e ' \e[38;5;198m' " ++++ "
164
220
sudo --preserve-env=PATH -u vagrant minikube addons list
165
221
166
- echo -e ' \e[38;5;198m' " Get all Pods and Services"
167
- echo -e ' \e[38;5;198m' " kubectl get pod,svc -A"
222
+ echo -e ' \e[38;5;198m' " ++++ "
223
+ echo -e ' \e[38;5;198m' " ++++ Get all Pods and Services"
224
+ echo -e ' \e[38;5;198m' " ++++ kubectl get pod,svc -A"
225
+ echo -e ' \e[38;5;198m' " ++++ "
168
226
sudo --preserve-env=PATH -u vagrant kubectl get pod,svc -A
169
227
170
228
# echo -e '\e[38;5;198m'"View Minikube Config"
@@ -173,48 +231,70 @@ function minikube-install() {
173
231
174
232
# TODO: uplift below, see issues in hashiqube
175
233
# https://helm.sh/docs/intro/install/#from-script
234
+ echo -e ' \e[38;5;198m' " ++++ "
176
235
echo -e ' \e[38;5;198m' " ++++ Helm not installed, installing.."
236
+ echo -e ' \e[38;5;198m' " ++++ "
177
237
cd /tmp
178
238
sudo curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
179
239
sudo chmod 700 get_helm.sh
180
240
sudo /tmp/get_helm.sh
181
241
cd ~ /
242
+ echo -e ' \e[38;5;198m' " ++++ "
182
243
echo -e ' \e[38;5;198m' " ++++ helm version"
244
+ echo -e ' \e[38;5;198m' " ++++ "
183
245
sudo --preserve-env=PATH -u vagrant helm version
184
246
# https://helm.sh/docs/intro/quickstart/#initialize-a-helm-chart-repository
185
247
echo -e ' \e[38;5;198m' " ++++ Helm add Bitnami repo"
186
248
echo -e ' \e[38;5;198m' " ++++ helm repo add bitnami https://charts.bitnami.com/bitnami"
249
+ echo -e ' \e[38;5;198m' " ++++ "
187
250
sudo --preserve-env=PATH -u vagrant helm repo add bitnami https://charts.bitnami.com/bitnami
251
+ echo -e ' \e[38;5;198m' " ++++ "
188
252
echo -e ' \e[38;5;198m' " ++++ helm repo update"
253
+ echo -e ' \e[38;5;198m' " ++++ "
189
254
sudo --preserve-env=PATH -u vagrant helm repo update
255
+ echo -e ' \e[38;5;198m' " ++++ "
190
256
echo -e ' \e[38;5;198m' " ++++ helm search repo bitnami"
257
+ echo -e ' \e[38;5;198m' " ++++ "
191
258
sudo --preserve-env=PATH -u vagrant helm search repo bitnami
192
259
193
260
# https://doc.traefik.io/traefik/getting-started/install-traefik/
261
+ echo -e ' \e[38;5;198m' " ++++ "
194
262
echo -e ' \e[38;5;198m' " ++++ Installing Traefik using Helm Chart"
195
263
echo -e ' \e[38;5;198m' " ++++ helm repo add traefik https://helm.traefik.io/traefik"
264
+ echo -e ' \e[38;5;198m' " ++++ "
196
265
sudo --preserve-env=PATH -u vagrant helm repo add traefik https://helm.traefik.io/traefik
197
266
sudo --preserve-env=PATH -u vagrant helm repo update
267
+ echo -e ' \e[38;5;198m' " ++++ "
198
268
echo -e ' \e[38;5;198m' " ++++ helm install traefik traefik/traefik"
269
+ echo -e ' \e[38;5;198m' " ++++ "
199
270
sudo --preserve-env=PATH -u vagrant helm install traefik traefik/traefik
200
271
sleep 30;
272
+ echo -e ' \e[38;5;198m' " ++++ "
201
273
echo -e ' \e[38;5;198m' " ++++ kubectl port-forward 18181:9000"
274
+ echo -e ' \e[38;5;198m' " ++++ "
202
275
sudo --preserve-env=PATH -u vagrant kubectl port-forward $( kubectl get pods --selector " app.kubernetes.io/name=traefik" --output=name) 18181:9000 --address=" 0.0.0.0" > /dev/null 2>&1 &
276
+ echo -e ' \e[38;5;198m' " ++++ "
203
277
echo -e ' \e[38;5;198m' " ++++ kubectl port-forward 18080:9000"
278
+ echo -e ' \e[38;5;198m' " ++++ "
204
279
sudo --preserve-env=PATH -u vagrant kubectl port-forward $( kubectl get pods --selector " app.kubernetes.io/name=traefik" --output=name) 18080:9000 --address=" 0.0.0.0" > /dev/null 2>&1 &
205
- echo -e ' \e[38;5;198m' " Get all Pods and Services"
206
- echo -e ' \e[38;5;198m' " kubectl get pod,svc -A"
280
+ echo -e ' \e[38;5;198m' " ++++ "
281
+ echo -e ' \e[38;5;198m' " ++++ Get all Pods and Services"
282
+ echo -e ' \e[38;5;198m' " ++++ kubectl get pod,svc -A"
283
+ echo -e ' \e[38;5;198m' " ++++ "
207
284
sudo --preserve-env=PATH -u vagrant kubectl get pod,svc -A
208
-
285
+ echo -e ' \e[38;5;198m ' " ++++ "
209
286
echo -e ' \e[38;5;198m' " ++++ Docker stats"
287
+ echo -e ' \e[38;5;198m' " ++++ "
210
288
sudo --preserve-env=PATH -u vagrant docker stats --no-stream -a
211
289
290
+ echo -e ' \e[38;5;198m' " ++++ "
212
291
echo -e ' \e[38;5;198m' " ++++ Minikube Dashboard: http://localhost:10888"
213
292
echo -e ' \e[38;5;198m' " ++++ Minikube Documentation: http://localhost:3333/#/minikube/README"
214
293
echo -e ' \e[38;5;198m' " ++++ Hello Minikube application: http://localhost:18888"
215
294
echo -e ' \e[38;5;198m' " ++++ Traefik Dashboard: http://localhost:18181/dashboard/"
216
295
echo -e ' \e[38;5;198m' " ++++ Traefik Loadbalancer: http://localhost:18080"
217
296
echo -e ' \e[38;5;198m' " ++++ Traefik Documentation: http://localhost:3333/#/minikube/README?id=traefik-on-minikube"
297
+ echo -e ' \e[38;5;198m' " ++++ "
218
298
}
219
299
220
300
minikube-install
0 commit comments