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
121 lines
5.8 KiB
Bash
Executable File
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
|