Skip to content

Commit ba34a6d

Browse files
Added steps for deploying directly to GKE
1 parent 8c70a0f commit ba34a6d

3 files changed

Lines changed: 144 additions & 0 deletions

File tree

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
Steps for deploying a stateful containerized application on GKE
2+
----------------------------------------------------------------
3+
Create free tier EC2 instance
4+
SSH into EC2 instance
5+
sudo apt-get install python
6+
curl https://sdk.cloud.google.com | bash
7+
git clone https://github.com/cloud-ark/caastle.git
8+
cd caastle
9+
./install-docker-ubuntu.sh
10+
exit from EC2 instance
11+
SSH back into EC2 instance
12+
gcloud auth login <your-gmail-address>
13+
Create Project in Google Cloud Console
14+
export PROJECT_ID=<Project-ID-from-previous-step>
15+
export CLOUDSDK_COMPUTE_ZONE=us-central1-b
16+
cd examples/greetings/
17+
docker build -t gcr.io/${PROJECT_ID}/greetings:v1 .
18+
gcloud docker -- push gcr.io/${PROJECT_ID}/greetings:v1
19+
gcloud container clusters create --machine-type=g1-small --num-nodes=1 testcluster1
20+
gcloud sql instances create instance1 --tier=db-f1-micro --authorized-networks=0.0.0.0/0
21+
gcloud components install kubectl
22+
gcloud sql users set-password root % --instance instance1 --password 'testpass123!@#'
23+
sudo apt-get install mysql-client
24+
gcloud sql instances list
25+
mysql -h <IP-address-of-SQL-Instance> --user=root --password='testpass123!@#'
26+
mysql>create database testdb;
27+
Edit greetings-deployment.yaml and set the environment variables
28+
kubectl create -f greetings-deployment.yaml
29+
kubectl expose deployments --port=80 --target-port=5000 --type=LoadBalancer greetings-deployment
30+
kubectl get services
31+
kubectl get deployments
32+
kubectl get pods
33+
kubectl describe pods <pod-name>
34+
kubectl describe deployments <deployment-name>
35+
kubectl describe service <service-name>
36+
Once you get EXTERNAL-IP of the service, open it up in browser
37+
kubectl logs <pod-name>
38+
kubectl delete service <service-name>
39+
kubectl delete deployment <deployment-name>
40+
Delete the GKE cluster from Google Cloud Console
41+
Delete the Google Cloud SQL instance from Google Cloud Console
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
1 curl https://sdk.cloud.google.com | bash
2+
2 ls
3+
3 whereis python
4+
4 which python
5+
5 sudo apt-get install python
6+
6 curl https://sdk.cloud.google.com | bash
7+
7 exit
8+
8 gcloud --help
9+
9 vi install-docker.sh
10+
10 chmod +x install-docker.sh
11+
11 ./install-docker.sh
12+
12 exit
13+
13 gcloud auth list
14+
14 gcloud auth login kulkarni.devdatta@gmail.com
15+
15 gcloud config set project cloudark-test-gke
16+
16 ls
17+
17 git clone https://github.com/cloud-ark/caastle.git
18+
18 cd caastle/
19+
19 cd examples/greetings/
20+
20 export PROJECT_ID=cloudark-test-gke
21+
21 more Dockerfile
22+
22 docker build -t gcr.io/${PROJECT_ID}/greetings:v1 .
23+
23 gcloud docker -- push gcr.io/${PROJECT_ID}/greetings:v1
24+
24 gcloud container clusters list
25+
25 gcloud container clusters --help
26+
26 gcloud container clusters create --help
27+
27 gcloud container clusters create --machine-type=g1-small --num-nodes=1
28+
28 gcloud container clusters create --machine-type=g1-small --num-nodes=1 testcluster1
29+
29 export CLOUDSDK_COMPUTE_ZONE=us-central1-b
30+
30 gcloud container clusters create --machine-type=g1-small --num-nodes=1 testcluster1
31+
31 gcloud sql instances create instance1 --help
32+
32 gcloud sql instances create instance1 --tier=db-f1-micro --authorized-networks=0.0.0.0/0
33+
33 gcloud components install kubectl
34+
34 kubectl --help
35+
35 vi greetings-pod.yaml
36+
36 gcloud sql instances list
37+
37 gcloud sql users set-password root % --instance instance1 --password 'testpass123!@#'
38+
38 sudo apt-get install mysql-client
39+
39 gcloud sql instances list
40+
40 mysql -h 35.225.61.225 --user=root --password='testpass123!@#'
41+
mysql>create database testdb;
42+
43+
41 gcloud cloud sql --help
44+
42 gcloud sql instances --help
45+
43 history
46+
44 gcloud sql instances list
47+
45 vi greetings-pod.yaml
48+
46 docker images
49+
47 vi greetings-pod.yaml
50+
48 more greetings-pod.yaml
51+
49 kubectl create -f greetings-pod.yaml
52+
50 kubectl get pods
53+
51 kubectl describe pods
54+
52 kubectl get pods
55+
53 more greetings-pod.yaml
56+
54 vi greetings-service.yaml
57+
55 kubectl create -f greetings-service.yaml
58+
56 vi greetings-service.yaml
59+
57 kubectl create -f greetings-service.yaml
60+
58 kubectl get services
61+
59 kubectl get deployments
62+
60 kubectl expose service greetings1-service
63+
61 kubectl expose service greeting1-service
64+
62 kubectl get services
65+
63 curl 104.198.169.242
66+
64 curl 104.198.169.242:31063
67+
65 vi greetings-deployment.yaml
68+
66 sudo apt-get install emacs
69+
67 emacs greetings-deployment.yaml
70+
68 kubectl get deployments
71+
69 kubectl create -f greetings-deployment.yaml
72+
70 cat -n greetings-deployment.yaml
73+
71 emacs greetings-deployment.yaml
74+
72 kubectl create -f greetings-deployment.yaml
75+
73 emacs greetings-deployment.yaml
76+
74 kubectl create -f greetings-deployment.yaml
77+
75 kubectl get deployments
78+
76 kubectl show deployments
79+
77 kubectl describe deployments greetings1-deployment
80+
78 kubectl show deployments
81+
79 kubectl get deployments
82+
80 kubectl expose deployments greetings1-deployment
83+
81 kubectl get services
84+
82 kubectl expose --help
85+
83 kubectl expose deployments --type=LoadBalancer greetings1-deployment
86+
84 kubectl get deployments
87+
85 kubectl delete deployments greetings1-deployment
88+
86 kubectl expose deployments --port=80 --target-port=5000 --type=LoadBalancer greetings1-deployment
89+
87 kubectl create -f greetings-deployment.yaml
90+
88 kubectl expose deployments --port=80 --target-port=5000 --type=LoadBalancer greetings1-deployment
91+
89 kubectl expose --port=80 --target-port=5000 --type=LoadBalancer greetings1-deployment
92+
90 kubectl expose deployments --port=80 --target-port=5000 --type=LoadBalancer greetings1-deployment
93+
91 kubectl delete service greetings1-deployment
94+
92 kubectl expose deployments --port=80 --target-port=5000 --type=LoadBalancer greetings1-deployment
95+
93 kubectl get services
96+
94 kubectl describe deployment greetings1-deployment
97+
95 kubectl get pods
98+
96 kubectl describe deployment greetings1-deployment
99+
97 kubectl get services
100+
98 history
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
sudo apt-get install python
2+
curl https://sdk.cloud.google.com | bash
3+

0 commit comments

Comments
 (0)