forked from tensorflow/minigo
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcluster-up-gpu-large
More file actions
executable file
·51 lines (39 loc) · 1.65 KB
/
Copy pathcluster-up-gpu-large
File metadata and controls
executable file
·51 lines (39 loc) · 1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/sh
source ./common.sh
source ./utils.sh
set -e
echo "Using Project: ${PROJECT}"
echo "Using Zone: ${ZONE}"
echo "Using Cluster Name: ${CLUSTER_NAME}"
echo "Using K8S Version: ${K8S_VERSION}"
export NUM_K8S_NODES=600
echo "Overriding num nodes to: $NUM_K8S_NODES"
check_gcloud_exists
# Create a Kubernetes cluster. This setup is designed for creating large clusters.
# Allocating a big CIDR is necessary for large clusters (>1008 Nodes)
# See more details https://stackoverflow.com/questions/42129327/gke-cluster-creation-fails-because-the-network-default-does-not-have-available
gcloud beta container clusters create \
--num-nodes $NUM_K8S_NODES \
--accelerator type=nvidia-tesla-k80,count=1 \
--machine-type n1-standard-2 \
--disk-size 20 \
--preemptible \
--cluster-ipv4-cidr=10.0.0.0/10 \
--zone=$ZONE \
--cluster-version=$K8S_VERSION \
--project=$PROJECT \
$CLUSTER_NAME
# Fetch its credentials so we can use kubectl locally
gcloud container clusters get-credentials $CLUSTER_NAME --project $PROJECT --zone $ZONE
create_gcs_bucket
create_service_account_key
# Import the credentials into the cluster as a secret
kubectl create secret generic ${SERVICE_ACCOUNT}-creds --from-file=service-account.json=${SERVICE_ACCOUNT_KEY_LOCATION}
echo "Initializing GPUs"
# Install the NVIDIA drivers on each of the nodes in the cluster that will have
# GPU workers.
kubectl apply -f gpu-provision-daemonset.yaml
# TODO(kashomon): How can I automate this?
echo "--------------------------------------------------------------"
echo "To check that GPUS have been initialized, run:"
echo "kubectl get no -w -o yaml | grep -E 'hostname:|nvidia.com/gpu'"