Skip to main content

Deploy to Kubernetes in Google Cloud - Challenge Lab [GSP318]


Link to the Video: https://youtu.be/9-IWU0To3w8

STEPS

Step 1: Create a Docker image and store the Dockerfile


gsutil cat gs://cloud-training/gsp318/marking/setup_marking.sh | bash


gcloud source repos clone valkyrie-app


cd valkyrie-app


cat > Dockerfile <<EOF

FROM golang:1.10

WORKDIR /go/src/app

COPY source .

RUN go install -v

ENTRYPOINT ["app","-single=true","-port=8080"]

EOF


docker build -t valkyrie-app:v0.0.1 .


cd ..


cd marking


./step1.sh



Step 2:Test the created Docker image


cd ..


cd valkyrie-app


docker run -p 8080:8080 valkyrie-app:v0.0.1 &


cd ..


cd marking


./step2.sh  




Step 3: Push the Docker image in the Container Repository

make sure you are out of the marking folder... to get out of the marking folder run: cd ..


cd valkyrie-app


docker tag valkyrie-app:v0.0.1 gcr.io/$GOOGLE_CLOUD_PROJECT/valkyrie-app:v0.0.1


docker push gcr.io/$GOOGLE_CLOUD_PROJECT/valkyrie-app:v0.0.1


sed -i s#IMAGE_HERE#gcr.io/$GOOGLE_CLOUD_PROJECT/valkyrie-app:v0.0.1#g k8s/deployment.yaml



Step 4: Create and expose a deployment in Kubernetes 


sed -i s#IMAGE_HERE#gcr.io/$GOOGLE_CLOUD_PROJECT/valkyrie-app:v0.0.1#g k8s/deployment.yaml


gcloud container clusters get-credentials valkyrie-dev --zone us-east1-d


kubectl create -f k8s/deployment.yaml


kubectl create -f k8s/service.yaml


git merge origin/kurt-dev


kubectl edit deployment valkyrie-dev




Step 5: Update the deployment with a new version of valkyrie-app


docker build -t gcr.io/$GOOGLE_CLOUD_PROJECT/valkyrie-app:v0.0.2 . 


docker push gcr.io/$GOOGLE_CLOUD_PROJECT/valkyrie-app:v0.0.2


kubectl edit deployment valkyrie-dev


docker ps



Step 6: Create a pipeline in Jenkins to deploy your app


docker kill [container_id]


export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/component=jenkins-master" -l "app.kubernetes.io/instance=cd" -o jsonpath="{.items[0].metadata.name}") kubectl port-forward $POD_NAME 8080:8080 >> /dev/null & printf $(kubectl get secret cd-jenkins -o jsonpath="{.data.jenkins-admin-password}" | base64 --decode);echo


gcloud source repos list


*OPEN ON WEB 8080 PORT*

PUT USERNAME AND PASSWORD

JENKINS 

MANAGE CREDENTIALS 

GLOBAL 

SELECT YOUR PROJECT ID 

NEW 

valkyrie-app 

PIPELINE 

PIPELINE SCRIPT FROM SCM

GIT 

SELECT YOUR REPO

APPLY

SAVE


sed -i "s/green/orange/g" source/html.go



*Update project in Jenkinsfile*


sed -i "s/YOUR_PROJECT/$GOOGLE_CLOUD_PROJECT/g" Jenkinsfile


git config --global user.email "you@example.com"


git config --global user.name "student"               


git add .


git commit -m "built pipeline init"


git push 


JENKINS 

BUILD NOW

IT WILL TAKE TIME! WAIT PATIENTLY!!!



Congratulations you have completed the Challenge Lab!


SAKURA SATIO



Comments

Popular posts from this blog

A Tour of Google Cloud Hands-on Labs [GSP282]

Link to the Lab:  https://www.cloudskillsboost.google/focuses/2794?parent=catalog Link to the Video:  https://youtu.be/KFjyI-o60W8 Link to the Channel:  https://www.youtube.com/channel/UCiWP5KYh4MWj-yp3j-DMIrA Answers are marked bold and are highlighted in light yellow This builds a temporary environment in Google Cloud. Start lab (button) Credit Time Score When the timer reaches 00:00:00, you will lose access to your temporary Google Cloud environment. False True Some labs have tracking, which scores your completion of hands-on lab activities. False True In order to receive completion credit for a lab that has tracking, you must complete the required hands-on lab activities. False True What field is NOT found in the left pane? Project ID System admin Password Open Google Console The username in the left panel, which resembles googlexxxxxx_student@qwiklabs.net, is a Cloud IAM identity. True False An organizing entity for anything you build with Google Cloud. Password...

Deploy and Manage Cloud Environments with Google Cloud: Challenge Lab [GSP314]

Link to the Lab:  https://google.qwiklabs.com/focuses/10417?parent=catalog Link to the youtube video:  https://youtu.be/eraSK1T45Do Link to my youtube channel:  https://www.youtube.com/channel/UCiWP5KYh4MWj-yp3j-DMIrA   DO NOT START WITHOUT LAB RESOURCES! DO NOT MAKE HASTE. COPY PASTE STEP BY STEP OTHERWISE IT WILL NOT WORK. TASK 1: GO TO COMPUTE ENGINE > VM INSTANCES > OPEN SSH OF kraken-jumphost TYPE THE COMMANDS IN SSH: cd /work/dm sed -i s/SET_REGION/us-east1/g prod-network.yaml gcloud deployment-manager deployments create prod-network --config=prod-network.yaml gcloud config set compute/zone us-east1-b gcloud container clusters create kraken-prod --num-nodes 2 --network kraken-prod-vpc --subnetwork kraken-prod-subnet --zone us-east1-b gcloud container clusters get-credentials kraken-prod cd /work/k8s for F in $(ls *.yaml); do kubectl create -f $F; done

Perform Foundational Data, ML, and AI Tasks in Google Cloud: Challenge Lab [GSP323]

Link to the Lab:  https://www.cloudskillsboost.google/focuses/11044?parent=catalog Link to the Video:  https://youtu.be/lkI8WscliSs Link to the Channel:  https://www.youtube.com/channel/UCiWP5KYh4MWj-yp3j-DMIrA STEPS (will be unique for everyone) storage →  bucket → create bucket with your Cloud Storage Bucket Name . For Access Control select Fine-Grained → Press create bigquery →  select project →  create dataset →  name= BigQuery Dataset Name open cloud shell gsutil cp gs://cloud-training/gsp323/lab.csv . cat lab.csv gsutil cp gs://cloud-training/gsp323/lab.schema . cat lab.schema copy the bigquery schema and store it somewhere go to bigquery go to dataset lab create table create table from = google cloud storage select file from GCS bucket = cloud-training/gsp323/lab.csv table name = customers enable edit as text paste the bigquery schema that you copied earlier create Go to dataproc clusters create cluster → Cluster on Compute Engine → Create ...