This blog, I will be covering following:
- create gke cluster from gcloud sdk
- few gcloud command line option
- create container registry in google cloud
- Push local image to google cloud registry
- using kubectl create pod using that image
Prerequisites:
- Install google cloud sdk :https://cloud.google.com/sdk/doc
- Install docker and kubectl according to host system (linux/windows) on your personal pc
My environment is centos 7
sudo tee -a /etc/yum.repos.d/google-cloud-sdk.repo << EOM
[google-cloud-sdk]
name=Google Cloud SDK
baseurl=https://packages.cloud.google.com/yum/repos/cloud-sdk-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOM
yum install google-cloud-sdk yum install docker yum install kubectl
gcloud auth login
gcloud config set project <project name>
//for login and set the project name
create and explore google kubernetes engine (GKE) from gcloud
gcloud container clusters create example-cluster --zone us-central1-c
gcloud container clusters get-credentials example-cluster --zone us-central1-c
gcloud container clusters describe example-cluster --zone us-central1-c
Enable and create container registry on google cloud
create tag and push the docker image on google container registry (gcr)
docker tag openwriteup:ubuntu gcr.io/openwriteup/hellokubernetes/ubuntu
docker images
docker push gcr.io/openwriteup/hellokubernetes/ubuntu
yaml file to create pod
apiVersion: v1
kind: Pod
metadata:
labels:
run: ubuntu
name: ubuntu
namespace: default
resourceVersion: "34418"
selfLink: /api/v1/namespaces/default/pods/ubuntu
uid: 7ee750fe-52a3-41f8-90be-5310270debad
spec:
containers:
- image: gcr.io/openwriteup/hellokubernetes/ubuntu
imagePullPolicy: Always
name: ubuntu
resources:
requests:
cpu: 100m
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
name: default-token-jpglv
readOnly: true
dnsPolicy: ClusterFirst
enableServiceLinks: true
//kubectl apply -f <.yaml file>
//kubectl get pods
//kubectl logs <pod name>