gce-centos-k8s/scripts/0_env_setup.sh
Jonny Ervine c556fbaad5 new file: 10_delete_kube-dns.sh
new file:   11_delete_all.sh
	new file:   12_uninstall_etcd.sh
	new file:   3_install_configure_kubernetes.sh
	new file:   5.1_worker_kubelet_setup.sh
	new file:   5.2_worker_kube-proxy_setup.sh
	new file:   5_worker_node_setup.sh
	new file:   6_client_admin_config.sh
	new file:   7_pod_routing.sh
	new file:   8_deploying_kube-dns.sh
	new file:   9_further_tests.sh
	new file:   certs-dir/admin-csr.json
	new file:   certs-dir/admin-key.pem
	new file:   certs-dir/admin.csr
	new file:   certs-dir/admin.kubeconfig
	new file:   certs-dir/admin.pem
	new file:   certs-dir/ca-config.json
	new file:   certs-dir/ca-csr.json
	new file:   certs-dir/ca-key.pem
	new file:   certs-dir/ca.csr
	new file:   certs-dir/ca.pem
	new file:   certs-dir/encryption-config.yaml
	new file:   certs-dir/kube-controller-manager-csr.json
	new file:   certs-dir/kube-controller-manager-key.pem
	new file:   certs-dir/kube-controller-manager.csr
	new file:   certs-dir/kube-controller-manager.kubeconfig
	new file:   certs-dir/kube-controller-manager.pem
	new file:   certs-dir/kube-proxy-csr.json
	new file:   certs-dir/kube-proxy-key.pem
	new file:   certs-dir/kube-proxy.csr
	new file:   certs-dir/kube-proxy.kubeconfig
	new file:   certs-dir/kube-proxy.pem
	new file:   certs-dir/kube-scheduler-csr.json
	new file:   certs-dir/kube-scheduler-key.pem
	new file:   certs-dir/kube-scheduler.csr
	new file:   certs-dir/kube-scheduler.kubeconfig
	new file:   certs-dir/kube-scheduler.pem
	new file:   certs-dir/kubernetes-csr.json
	new file:   certs-dir/kubernetes-key.pem
	new file:   certs-dir/kubernetes.csr
	new file:   certs-dir/kubernetes.pem
	new file:   certs-dir/service-account-csr.json
	new file:   certs-dir/service-account-key.pem
	new file:   certs-dir/service-account.csr
	new file:   certs-dir/service-account.pem
	new file:   certs-dir/worker-0-csr.json
	new file:   certs-dir/worker-0-key.pem
	new file:   certs-dir/worker-0.csr
	new file:   certs-dir/worker-0.kubeconfig
	new file:   certs-dir/worker-0.pem
	new file:   certs-dir/worker-1-csr.json
	new file:   certs-dir/worker-1-key.pem
	new file:   certs-dir/worker-1.csr
	new file:   certs-dir/worker-1.kubeconfig
	new file:   certs-dir/worker-1.pem
	new file:   cni/bridge
	new file:   cni/cni-plugins-amd64-v0.6.0.tgz
	new file:   cni/dhcp
	new file:   cni/flannel
	new file:   cni/host-local
	new file:   cni/ipvlan
	new file:   cni/loopback
	new file:   cni/macvlan
	new file:   cni/portmap
	new file:   cni/ptp
	new file:   cni/sample
	new file:   cni/tuning
	new file:   cni/vlan
	new file:   controller-0/apiserver
	new file:   controller-0/config
	new file:   controller-0/controller-manager
	new file:   controller-0/etcd.conf
	new file:   controller-0/etcd.service
	new file:   controller-0/kube-apiserver.service
	new file:   controller-0/kube-apiserver_rbac.yaml
	new file:   controller-0/kube-controller-manager.service
	new file:   controller-0/kube-scheduler.service
	new file:   controller-0/kube-scheduler.yaml
	new file:   controller-0/kubernetes.default.svc.cluster.local.conf
	new file:   controller-0/kubernetes.repo
	new file:   controller-0/rbac_authorizations.yaml
	new file:   controller-0/scheduler
	new file:   controller-1/apiserver
	new file:   controller-1/config
	new file:   controller-1/controller-manager
	new file:   controller-1/etcd.conf
	new file:   controller-1/etcd.service
	new file:   controller-1/kube-apiserver.service
	new file:   controller-1/kube-apiserver_rbac.yaml
	new file:   controller-1/kube-controller-manager.service
	new file:   controller-1/kube-scheduler.service
	new file:   controller-1/kube-scheduler.yaml
	new file:   controller-1/kubernetes.default.svc.cluster.local.conf
	new file:   controller-1/kubernetes.repo
	new file:   controller-1/rbac_authorizations.yaml
	new file:   controller-1/scheduler
	new file:   controller_manager_setup.sh
	new file:   controller_setup.sh
	new file:   controller_uninstall.sh
	new file:   controllers
	new file:   ctrl-mgr_vars
	new file:   docs/0_Environment_Setup.md
	new file:   docs/10_Create_kube-proxy_Instances.md
	new file:   docs/11_Create_client_kubectl_admin.md
	new file:   docs/12_Create_Pod_Routing_Rules.md
	new file:   docs/13_Create_kube-dns_instances.md
	new file:   docs/14_Additional_Functional_Tests.md
	new file:   docs/15_Delete_kube-dns_Deployment.md
	new file:   docs/16_Uninstall_etcd.md
	new file:   docs/17_Uninstall_Everything.md
	new file:   docs/1_GCloud_Resource_Setup.md
	new file:   docs/2_Certificate_and_Authentication_Creation.md
	new file:   docs/3_Install_and_Configure_etcd.md
	new file:   docs/4_Install_and_Configure_apiserver.md
	new file:   docs/5_Install_and_Configure_Controller_Manager.md
	new file:   docs/6_Install_and_Configure_Scheduler.md
	new file:   docs/7_Create_nginx_Health_Monitor.md
	new file:   docs/8_Create_Load_Balancer.md
	new file:   docs/9a_Create_Kubernetes_Workers_with_Docker.md
	new file:   docs/9b_Create_Kubernetes_Workers_with_containerd.md
	new file:   etcd-listen
	new file:   etcd_setup.sh
	new file:   etcd_vars
	new file:   instance
	new file:   kube-apiserver_setup.sh.orig
	new file:   kube-dns.yaml
	new file:   notes
	new file:   old_stuff/cni/bridge
	new file:   old_stuff/cni/cni-plugins-amd64-v0.6.0.tgz
	new file:   old_stuff/cni/dhcp
	new file:   old_stuff/cni/flannel
	new file:   old_stuff/cni/host-local
	new file:   old_stuff/cni/ipvlan
	new file:   old_stuff/cni/loopback
	new file:   old_stuff/cni/macvlan
	new file:   old_stuff/cni/portmap
	new file:   old_stuff/cni/ptp
	new file:   old_stuff/cni/sample
	new file:   old_stuff/cni/tuning
	new file:   old_stuff/cni/vlan
	new file:   old_stuff/controller-0/apiserver
	new file:   old_stuff/controller-0/config
	new file:   old_stuff/controller-0/controller-manager
	new file:   old_stuff/controller-0/etcd.conf
	new file:   old_stuff/controller-0/etcd.service
	new file:   old_stuff/controller-0/kube-apiserver.service
	new file:   old_stuff/controller-0/kube-apiserver_rbac.yaml
	new file:   old_stuff/controller-0/kube-controller-manager.service
	new file:   old_stuff/controller-0/kube-scheduler.service
	new file:   old_stuff/controller-0/kube-scheduler.yaml
	new file:   old_stuff/controller-0/kubernetes.default.svc.cluster.local.conf
	new file:   old_stuff/controller-0/kubernetes.repo
	new file:   old_stuff/controller-0/rbac_authorizations.yaml
	new file:   old_stuff/controller-0/scheduler
	new file:   old_stuff/controller-1/apiserver
	new file:   old_stuff/controller-1/config
	new file:   old_stuff/controller-1/controller-manager
	new file:   old_stuff/controller-1/etcd.conf
	new file:   old_stuff/controller-1/etcd.service
	new file:   old_stuff/controller-1/kube-apiserver.service
	new file:   old_stuff/controller-1/kube-apiserver_rbac.yaml
	new file:   old_stuff/controller-1/kube-controller-manager.service
	new file:   old_stuff/controller-1/kube-scheduler.service
	new file:   old_stuff/controller-1/kube-scheduler.yaml
	new file:   old_stuff/controller-1/kubernetes.default.svc.cluster.local.conf
	new file:   old_stuff/controller-1/kubernetes.repo
	new file:   old_stuff/controller-1/rbac_authorizations.yaml
	new file:   old_stuff/controller-1/scheduler
	new file:   old_stuff/controllers
	new file:   scheduler_setup.sh
	new file:   scripts/.gce_kubernetes.config
	new file:   scripts/.variables
	new file:   scripts/.worker_variables_0
	new file:   scripts/.worker_variables_1
	new file:   scripts/0_env_setup.sh
	new file:   scripts/10_worker_kube-proxy_setup.sh
	new file:   scripts/11_client_kubectl_admin_setup.sh
	new file:   scripts/12_setup_pod_routing.sh
	new file:   scripts/13_setup_core-dns.sh
	new file:   scripts/13_setup_kube-dns.sh
	new file:   scripts/14_additional_functional_tests.sh
	new file:   scripts/14b_additional_functional_tests.sh
	new file:   scripts/15_delete_kube-dns_pod.sh
	new file:   scripts/16_uninstall_etcd.sh
	new file:   scripts/17_uninstall_everything.sh
	new file:   scripts/1_client_side_gcloud_setup.sh
	new file:   scripts/2_cert_and_auth_create.sh
	new file:   scripts/3_install_configure_etcd.sh
	new file:   scripts/4_install_configure_apiserver.sh
	new file:   scripts/5_install_configure_controller_manager.sh
	new file:   scripts/6_install_configure_scheduler.sh
	new file:   scripts/7_nginx_health_monitor_setup.sh
	new file:   scripts/8_create_load_balancer.sh
	new file:   scripts/9a_worker_kubelet_via_docker_setup.sh
	new file:   scripts/9b_worker_kubelet_via_containerd_setup.sh
	new file:   scripts/controller-files/kube-apiserver_rbac.yaml
	new file:   scripts/controller-files/kubernetes.default.svc.cluster.local.conf
	new file:   scripts/controller-files/rbac_authorizations.yaml
	new file:   scripts/controller_manager_setup.sh
	new file:   scripts/controller_manager_setup.sh.template
	new file:   scripts/core-dns.yaml
	new file:   scripts/ctrl-mgr_vars
	new file:   scripts/etcd_setup.sh
	new file:   scripts/etcd_vars
	new file:   scripts/gvisor_tests.sh
	new file:   scripts/instance
	new file:   scripts/kube-apiserver_setup.sh
	new file:   scripts/kube-apiserver_setup.sh.template
	new file:   scripts/kube-dns.yaml
	new file:   scripts/kube-dns.yaml.1
	new file:   scripts/kube-dns.yaml.2
	new file:   scripts/kube-dns.yaml.3
	new file:   scripts/nginx_health_monitor_setup.sh
	new file:   scripts/scheduler_setup.sh
	new file:   scripts/scheduler_setup.sh.template
	new file:   scripts/untrusted.yaml
	new file:   scripts/worker_kube-proxy_setup.sh
	new file:   scripts/worker_kube-proxy_setup.sh.template
	new file:   scripts/worker_kubelet_containerd_setup.sh.template
	new file:   scripts/worker_kubelet_setup.sh
	new file:   scripts/worker_kubelet_setup.sh.template
	new file:   test.sh
	new file:   test2
	new file:   u3_uninstall_kubernetes_controllers.sh
	new file:   worker-0/10-bridge.conf
	new file:   worker-0/99-loopback.conf
	new file:   worker-0/config
	new file:   worker-0/kube-proxy-config.yaml
	new file:   worker-0/kube-proxy.service
	new file:   worker-0/kubelet
	new file:   worker-0/kubelet-config.yaml
	new file:   worker-0/kubelet.service
	new file:   worker-0/proxy
	new file:   worker-1/10-bridge.conf
	new file:   worker-1/99-loopback.conf
	new file:   worker-1/config
	new file:   worker-1/kube-proxy-config.yaml
	new file:   worker-1/kube-proxy.service
	new file:   worker-1/kubelet
	new file:   worker-1/kubelet-config.yaml
	new file:   worker-1/kubelet.service
	new file:   worker-1/proxy
	new file:   worker_kube-proxy_setup.sh
	new file:   worker_kube-proxy_setup.sh.template
	new file:   worker_kubelet_setup.sh
	new file:   worker_setup.sh
Initial commit
2020-02-19 07:40:43 +00:00

121 lines
5.8 KiB
Bash
Executable File

#!/bin/bash
##
## Script to set up the kubernetes on Google Cloud environment settings
##
main () {
echo "This script will create a file .gce_kubernetes.config in the current directory that
will contain the variables that you are about to set to set up the Kubernetes cluster on
Google Compute Engine. You should also have already authenticated to the Google Cloud via
the gcloud command line interface."
if [ -f .gce_kubernetes.config ]; then
read -p "Kubernetes configuration file exists. Do you wish to display the contents? [y]" show_config
show_config=${show_config:-y}
if [ "$show_config" == "y" ]; then
cat .gce_kubernetes.config
read -p "Do you wish to set up the configuration again? [n]" reset_config
reset_config=${reset_config:-n}
if [ "$reset_config" == "n" ]; then
echo "Exiting"
else
config_gather
fi
else
echo "Setting up the configuration ..."
config_gather
fi
else
echo "Setting up the configuration ..."
config_gather
fi
}
config_gather () {
read -p "Please enter the Google Compute Region you want to use? [us-west1]" gce_region
gce_region=${gce_region:-us-west1}
read -p "Please enter the Google Compute Zone you want to use? [us-west1-c]" gce_zone
gce_zone=${gce_zone:-us-west1-c}
read -p "Please enter the Google Compute Project you are going to use? (This should already exist)" gce_project
read -p "What version of Kubernetes do you want to install? Tested versions: 1.10.3, 1.10.5, and [1.10.6]"
kube_ver=${kube_ver:-1.10.6}
read -p "Please enter the name of GCE network you want to create? [kubernetes]" kube_network
kube_network=${kube_network:-kubernetes}
read -p "Please enter the name of the GCE subnet within the $kube_network you want to create? [kubernetes-subnet]" kube_subnet
kube_subnet=${kube_subnet:-kubernetes-subnet}
read -p "Please enter the name used for the public IP address object in Google Compute? [kube-public-ip]" kube_pub_ip
kube_pub_ip=${kube_pub_ip:-kube-public-ip}
read -p "Please enter the CIDR network address range of the kubernetes subnet? [10.240.0.0/24]" kube_subnet_cidr
kube_subnet_cidr=${kube_subnet_cidr:-10.240.0.0/24}
kube_subnet_addr_calc=`ipcalc -n $kube_subnet_cidr | cut -c 9- | rev | cut -c 3- | rev`
read -p "Please enter the lowest network component of the IP address range [$kube_subnet_addr_calc]?" kube_subnet_addr
kube_subnet_addr=${kube_subnet_addr:-$kube_subnet_addr_calc}
read -p "Please enter the pod CIDR network address to be used? [10.200.0.0/16]" kube_pod_cidr
kube_pod_cidr=${kube_pod_cidr:-10.200.0.0/16}
kube_pod_addr_calc=`ipcalc -n $kube_pod_cidr | cut -c 9- | rev | cut -c 5- | rev`
read -p "Please enter the lowest network component of the pod address range [$kube_pod_addr_calc]?" kube_pod_addr
kube_pod_addr=${kube_pod_addr:-$kube_pod_addr_calc}
kube_pod_cidr_prefix=`echo $kube_pod_cidr | rev| cut -c -2 | rev`
kube_pod_node_prefix=$(($kube_pod_cidr_prefix + 8))
read -p "Best guess at the CIDR prefix used on the nodes for the pod subnets [$kube_pod_node_prefix]" kube_node_pod_prefix
kube_node_pod_prefix=${kube_node_pod_prefix:-$kube_pod_node_prefix}
read -p "Firewall rules will be created for internal traffic (all allowed) and external traffic (ssh, ping, kubernetes).
You can provide a name for the internal traffic rule: [kubernetes-allow-internal]" kube_int_fw_name
kube_int_fw_name=${kube_int_fw_name:-kubernetes-allow-internal}
read -p " You can provide a name for the external traffic rule: [kubernetes-allow-external]" kube_ext_fw_name
kube_ext_fw_name=${kube_ext_fw_name:-kubernetes-allow-external}
read -p "Please enter the name used for the Kubernetes Cluster object? [kube-cluster]" kube_cluster
kube_cluster=${kube_cluster:-kube-cluster}
read -p "How many master (controller) nodes in the Kubernetes cluster do you want to create (currently a maximum of 9)? [2]" kube_masters
kube_masters=${kube_masters:-2}
read -p "How many worker nodes in the Kubernetes cluster do you want to create (currently a maximum of 9)? [2]" kube_workers
kube_workers=${kube_workers:-2}
echo "The following variables will be committed to the configuration file:
GCE region: $gce_region
GCE zone: $gce_zone
GCE project: $gce_project
Kubernetes Version: $kube_ver
GCE VPC network name: $kube_network
GCE VPC subnet name: $kube_subnet
Kubernetes public IP address object name: $kube_pub_ip
Kubernetes subnet CIDR address: $kube_subnet_cidr
Kubernetes subnet address: $kube_subnet_addr
Kubernetes pod subnet CIDR address: $kube_pod_cidr
Kubernetes pod address: $kube_pod_addr
Kubernetes node pod CIDR prefix: $kube_node_pod_prefix
Kubernetes internal firewall rule: $kube_int_fw_name
Kubernetes external firewall rule: $kube_ext_fw_name
Kubernetes cluster object name: $kube_cluster
Number of controller nodes: $kube_masters
Number of worker nodes: $kube_workers"
read -p "Please confirm that these values are correct (y/n) [y]" confirm_values
confirm_values=${confirm_values:-y}
if [ "$confirm_values" == "y" ]; then
cat > .gce_kubernetes.config << EOM
GCE_REGION=$gce_region
GCE_ZONE=$gce_zone
GCE_PROJECT=$gce_project
KUBE_VER=$kube_ver
KUBE_NETWORK=$kube_network
KUBE_SUBNET=$kube_subnet
KUBE_PUB_IP=$kube_pub_ip
KUBE_SUBNET_CIDR=$kube_subnet_cidr
KUBE_SUBNET_ADDR=$kube_subnet_addr
KUBE_POD_CIDR=$kube_pod_cidr
KUBE_POD_ADDR=$kube_pod_addr
KUBE_NODE_POD_PREFIX=$kube_node_pod_prefix
KUBE_INT_FW_NAME=$kube_int_fw_name
KUBE_EXT_FW_NAME=$kube_ext_fw_name
KUBE_CLUSTER=$kube_cluster
KUBE_CONTROLLERS=$kube_masters
KUBE_WORKERS=$kube_workers
EOM
fi
}
main