Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@vanduc1102
Created December 2, 2022 08:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vanduc1102/7b1ba089309f1129cd0b97d8e5f97767 to your computer and use it in GitHub Desktop.
Save vanduc1102/7b1ba089309f1129cd0b97d8e5f97767 to your computer and use it in GitHub Desktop.
INSTANCE_NAME=nucleus-jumphost-570
PORT=8080
REGION=us-west4
ZONE=us-west4-a
FIREWALL_RULE=allow-tcp-rule-698
# setup
gcloud config set compute/zone $ZONE
gcloud config set compute/region $REGION
# Task 1
gcloud compute instances create $INSTANCE_NAME --machine-type=f1-micro
# Task 2
gcloud container clusters create --machine-type=n1-standard-1 --zone=$ZONE nucleus-cluster
gcloud container clusters get-credentials nucleus-cluster
kubectl create deployment nucleus-server --image=gcr.io/google-samples/hello-app:2.0
kubectl expose deployment nucleus-server --type=LoadBalancer --port $PORT
kubectl get service -w
# Task 3
gcloud compute instance-templates create nuclues-backend-template \
--network=default \
--subnet=default \
--tags=allow-health-check \
--machine-type=f1-micro \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata-from-file=startup-script=./start-up.sh
gcloud compute instance-groups managed create nucleus-backend-group \
--template=nuclues-backend-template --size=2
gcloud compute firewall-rules create $FIREWALL_RULE \
--network=default \
--action=allow \
--direction=ingress \
--target-tags=allow-health-check \
--rules=tcp:80
gcloud compute addresses create nucleus-ipv4-1 \
--ip-version=IPV4 \
--global
gcloud compute addresses describe nucleus-ipv4-1 \
--format="get(address)" \
--global
gcloud compute health-checks create http nucleus-http-basic-check --port 80
gcloud compute backend-services create nucleus-web-backend-service \
--protocol=HTTP \
--port-name=http \
--health-checks=nucleus-http-basic-check \
--global
gcloud compute backend-services add-backend nucleus-web-backend-service \
--instance-group=nucleus-backend-group \
--global
gcloud compute url-maps create nucleus-web-map-http \
--default-service nucleus-web-backend-service
gcloud compute target-http-proxies create nucleus-http-lb-proxy \
--url-map nucleus-web-map-http
gcloud compute forwarding-rules create http-content-rule \
--address=nucleus-ipv4-1\
--global \
--target-http-proxy=nucleus-http-lb-proxy \
--ports=80
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment