项目作者: mappedinn

项目描述 :
kubernetes-nfs-volume-on-gke
高级语言: Shell
项目地址: git://github.com/mappedinn/kubernetes-nfs-volume-on-gke.git
创建时间: 2017-04-11T23:42:58Z
项目社区:https://github.com/mappedinn/kubernetes-nfs-volume-on-gke

开源协议:

下载


Create kubernetes NFS volume on Google Container Engine (GKE)

TL;DR

Have a look directly on ./config-yml-files/00-run.sh

0. Version of kubernetes on GKE cluster

  1. # Make sure to have kubernetes with that version else errors related to DNS will occur
  2. kubectl version
  3. # Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.6", GitCommit:"6260bb08c46c31eea6cb538b34a9ceb3e406689c", GitTreeState:"clean", BuildDate:"2017-12-21T06:34:11Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
  4. # Server Version: version.Info{Major:"1", Minor:"8+", GitVersion:"v1.8.6-gke.0", GitCommit:"ee9a97661f14ee0b1ca31d6edd30480c89347c79", GitTreeState:"clean", BuildDate:"2018-01-05T03:36:42Z", GoVersion:"go1.8.3b4", Compiler:"gc", Platform:"linux/amd64"}
  5. ## PS: by default, the kubectl on GKE is 1.7.11-gke.1
  6. ## So, upgrade the GKE cluster to v1.8.6-gke.0
  7. ## 1. Create a GKE cluster and GCE persistent disk

1. Create a GKE cluster and GCE persistent disk

  1. # create a GCE persistent disk
  2. gcloud compute disks create --size=10GB --zone=us-east1-b gce-nfs-disk
  3. Zones list or regional for high availability check https://cloud.google.com/compute/docs/regions-zones/
  4. # create a GKE cluster
  5. ## I am assume that you already run this command `gcloud init`
  6. ## there is no need for `gcloud config set compute/zone us-east1-b` if it is already done.
  7. gcloud container clusters create mappedinn-cluster --num-nodes=1 --zone us-east1-b

2. Configure the context for the kubectl (if not set yet)

  1. gcloud container clusters get-credentials mappedinn-cluster --zone us-east1-b --project amine-testing

3. Create an NFS server with its PersistentVolumeClaim (PVC)

  1. # Create a Deployment for the NFS server
  2. kubectl create -f 01-dep-nfs.yml

4. Create a service for the NFS server to expose it

  1. # Expose the NFS server
  2. kubectl create -f 02-srv-nfs.yml

5. Create NFS volume

  1. # Creation of NFS volume (PV and PVC)
  2. kubectl create -f 03-pv-and-pvc-nfs.yml

6. Create a Deployment of busybox for checking the NFS volume

  1. # create a Deployment of busybox
  2. kubectl create -f 04-dep-busybox.yml
  3. Or as an alternative add 'nfs' volume your your existing deployment (use this as a reference example)

7. Check

  1. # you have to get the id of the pod to make the check (you will have to identify the name of the pod)
  2. kubectl exec nfs-busybox-2762569073-b2m99 -- cat /mnt/index.html

8. Clean up

  1. # clean up the cluster (don't forget the clean up the cluster to not get charged)
  2. kubectl delete deployment nfs-busybox
  3. kubectl delete service nfs-server
  4. kubectl delete deployment nfs-server
  5. kubectl delete pvc nfs
  6. kubectl delete pv nfs
  7. ## delete the cluser
  8. gcloud container clusters delete mappedinn-cluster --zone us-east1-b
  9. ## deleting the GCE PV
  10. gcloud compute disks delete gce-nfs-disk --zone us-east1-b