kubernetes-the-hard-way/scripts/start-infra-gcp.sh

82 lines
2.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -x
if [[ -z ${NUM_CONTROLLERS} || -z ${NUM_WORKERS} || -z ${KUBERNETES_VERSION} ]]; then
echo "Must set NUM_CONTROLLERS, NUM_WORKERS and KUBERNETES_VERSION (e.g. 'vX.Y.Z') environment variables"
exit 1
fi
(( NUM_CONTROLLERS-- ))
(( NUM_WORKERS-- ))
gcloud compute networks create kubernetes --mode custom
gcloud compute networks subnets create kubernetes \
--network kubernetes \
--range 10.240.0.0/24
gcloud compute firewall-rules create kubernetes-allow-icmp \
--allow icmp \
--network kubernetes \
--source-ranges 0.0.0.0/0
gcloud compute firewall-rules create kubernetes-allow-internal \
--allow tcp:0-65535,udp:0-65535,icmp \
--network kubernetes \
--source-ranges 10.240.0.0/24
gcloud compute firewall-rules create kubernetes-allow-internal-podcidr \
--allow tcp:0-65535,udp:0-65535,icmp \
--network kubernetes \
--source-ranges 10.200.0.0/16
gcloud compute firewall-rules create kubernetes-allow-rdp \
--allow tcp:3389 \
--network kubernetes \
--source-ranges 0.0.0.0/0
gcloud compute firewall-rules create kubernetes-allow-ssh \
--allow tcp:22 \
--network kubernetes \
--source-ranges 0.0.0.0/0
gcloud compute firewall-rules create kubernetes-allow-healthz \
--allow tcp:8080 \
--network kubernetes \
--source-ranges 130.211.0.0/22
gcloud compute firewall-rules create kubernetes-allow-api-server \
--allow tcp:6443 \
--network kubernetes \
--source-ranges 0.0.0.0/0
gcloud compute firewall-rules list --filter "network=kubernetes"
gcloud compute addresses create kubernetes --region=us-central1
gcloud compute addresses list kubernetes
# Kubernetes controller
for i in $(eval echo "{0..${NUM_CONTROLLERS}}"); do
gcloud compute instances create controller${i} \
--boot-disk-size 200GB \
--can-ip-forward \
--image ubuntu-1604-xenial-v20160921 \
--image-project ubuntu-os-cloud \
--machine-type n1-standard-1 \
--private-network-ip 10.240.0.1${i} \
--subnet kubernetes
done
# Kubernetes workers
for i in $(eval echo "{0..${NUM_WORKERS}}"); do
gcloud compute instances create worker${i} \
--boot-disk-size 200GB \
--can-ip-forward \
--image ubuntu-1604-xenial-v20160921 \
--image-project ubuntu-os-cloud \
--machine-type n1-standard-2 \
--private-network-ip 10.240.0.2${i} \
--subnet kubernetes
done