Site icon Learning & Doing

Deploy to Kubernetes in Google Cloud: Challenge Lab

deploy

“Deploy to Kubernetes in Google Cloud: Challenge Lab”

Pengantar

Challenge lab ini menguji keterampilan dan pengetahuan Anda dari lab di Kubernetes dalam misi Google Cloud. Anda harus memahami konten lab sebelum mencoba lab ini terakit kubernet di GCP.

Challenge Lab

Task – 1 : Create a Docker image and store the Dockerfile

gcloud auth list

gsutil cat gs://cloud-training/gsp318/marking/setup_marking_v2.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 <Docker Image>:<Tag Name> .

cd ..

cd marking

./step1_v2.sh

Task – 2 : Test the created Docker image

cd ..

cd valkyrie-app

docker run -p 8080:8080 <Docker Image>:<Tag Name> &

cd ..

cd marking

./step2_v2.sh

Task – 3 : Push the Docker image in the Google Container Repository

cd ..

cd valkyrie-app

docker tag <Docker Image>:<Tag Name> gcr.io/$GOOGLE_CLOUD_PROJECT/<Docker Image>:<Tag Name>

docker push gcr.io/$GOOGLE_CLOUD_PROJECT/<Docker Image>:<Tag Name>

Task – 4 : Create and expose a deployment in Kubernetes

sed -i s#IMAGE_HERE#gcr.io/$GOOGLE_CLOUD_PROJECT/<Docker Image>:<Tag Name>#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

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

git merge origin/kurt-dev

kubectl edit deployment valkyrie-dev

### change replicas from 1 to <Replicas Count>

### change <Tag Name> to <Updated Version> in two places

docker build -t gcr.io/$GOOGLE_CLOUD_PROJECT/<Docker Image>:<Updated Version> .

docker push gcr.io/$GOOGLE_CLOUD_PROJECT/<Docker Image>:<Updated Version>

Task – 6 : Create a pipeline in Jenkins to deploy your app

docker ps

docker kill <take container_id from above command>


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
Username : admin
Password : {Code output from previous command} 

Go through the following:

-> Manage Jenkins -> Manage Credentials -> Jenkins -> Global credentials (unrestricted) -> Add credentials -> Kind: Google Service Account from metadata -> OK

-> Jenkins -> New Item -> Name : valkyrie-app -> Pipeline -> Pipeline script from SCM -> Set SCM to git -> OK

-> Pipeline -> Script: Pipeline script from SCM -> SCM: Git

-> Repository URL: {find it using command: gcloud source repos list} -> Credentials: {Project id}

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


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

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

git config --global user.name "student..."                       // Username

git add .

git commit -m "built pipeline init"

git push

Penutup

Sahabat Blog Learning & Doing demikianlah penjelasan mengenai Deploy to Kubernetes in Google Cloud: Challenge Lab. Semoga Bermanfaat . Sampai ketemu lagi di postingan berikut nya.

Exit mobile version