mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-03 23:40:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			120 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
# Copyright 2014 Google Inc. All rights reserved.
 | 
						|
#
 | 
						|
# Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
# you may not use this file except in compliance with the License.
 | 
						|
# You may obtain a copy of the License at
 | 
						|
#
 | 
						|
#     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
#
 | 
						|
# Unless required by applicable law or agreed to in writing, software
 | 
						|
# distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
# See the License for the specific language governing permissions and
 | 
						|
# limitations under the License.
 | 
						|
 | 
						|
# Bring up a Kubernetes cluster.
 | 
						|
# Usage:
 | 
						|
#   wget -q -O - https://get.k8s.io | sh
 | 
						|
# or
 | 
						|
#   curl -sS https://get.k8s.io | sh
 | 
						|
#
 | 
						|
# Advanced options
 | 
						|
#  Set KUBERNETES_PROVIDER to choose between different providers:
 | 
						|
#  Google Compute Engine [default]
 | 
						|
#   * export KUBERNETES_PROVIDER=gce; wget -q -O - https://get.k8s.io | sh
 | 
						|
#  Google Container Engine
 | 
						|
#   * export KUBERNETES_PROVIDER=gke; wget -q -O - https://get.k8s.io | sh
 | 
						|
#  Amazon EC2
 | 
						|
#   * export KUBERNETES_PROVIDER=aws; wget -q -O - https://get.k8s.io | sh
 | 
						|
#  Microsoft Azure
 | 
						|
#   * export KUBERNETES_PROVIDER=azure; wget -q -O - https://get.k8s.io | sh
 | 
						|
#  Vagrant (local virtual machines)
 | 
						|
#   * export KUBERNETES_PROVIDER=vagrant; wget -q -O - https://get.k8s.io | sh
 | 
						|
#  VMWare VSphere
 | 
						|
#   * export KUBERNETES_PROVIDER=vsphere; wget -q -O - https://get.k8s.io | sh
 | 
						|
#  Rackspace
 | 
						|
#   * export KUBERNETES_PROVIDER=rackspace; wget -q -O - https://get.k8s.io | sh
 | 
						|
#
 | 
						|
#  Set KUBERNETES_SKIP_DOWNLOAD to non-empty to skip downloading a release.
 | 
						|
#  Set KUBERNETES_SKIP_CONFIRM to skip the installation confirmation prompt.
 | 
						|
set -o errexit
 | 
						|
set -o nounset
 | 
						|
set -o pipefail
 | 
						|
 | 
						|
function create_cluster {
 | 
						|
  echo "Creating a kubernetes on ${KUBERNETES_PROVIDER:-gce}..."
 | 
						|
  (
 | 
						|
    cd kubernetes
 | 
						|
    ./cluster/kube-up.sh
 | 
						|
    echo "Kubernetes binaries at ${PWD}/kubernetes/cluster/"
 | 
						|
    echo "You may want to add this directory to your PATH in \$HOME/.profile"
 | 
						|
 | 
						|
    echo "Installation successful!"
 | 
						|
  )
 | 
						|
}
 | 
						|
 | 
						|
if [[ "${KUBERNETES_SKIP_DOWNLOAD-}" ]]; then
 | 
						|
  create_cluster
 | 
						|
  exit 0
 | 
						|
fi
 | 
						|
 | 
						|
release=v0.10.1
 | 
						|
release_url=https://storage.googleapis.com/kubernetes-release/release/${release}/kubernetes.tar.gz
 | 
						|
 | 
						|
uname=$(uname)
 | 
						|
if [[ "${uname}" == "Darwin" ]]; then
 | 
						|
  platform="darwin"
 | 
						|
elif [[ "${uname}" == "Linux" ]]; then
 | 
						|
  platform="linux"
 | 
						|
else
 | 
						|
  echo "Unknown, unsupported platform: (${uname})."
 | 
						|
  echo "Supported platforms: Linux, Darwin."
 | 
						|
  echo "Bailing out."
 | 
						|
  exit 2
 | 
						|
fi
 | 
						|
 | 
						|
machine=$(uname -m)
 | 
						|
if [[ "${machine}" == "x86_64" ]]; then
 | 
						|
  arch="amd64"
 | 
						|
elif [[ "${machine}" == "i686" ]]; then
 | 
						|
  arch="386"
 | 
						|
elif [[ "${machine}" == "arm*" ]]; then
 | 
						|
  arch="arm"
 | 
						|
else
 | 
						|
  echo "Unknown, unsupported architecture (${machine})."
 | 
						|
  echo "Supported architectures x86_64, i686, arm*"
 | 
						|
  echo "Bailing out."
 | 
						|
  exit 3
 | 
						|
fi
 | 
						|
 | 
						|
file=kubernetes.tar.gz
 | 
						|
 | 
						|
 | 
						|
echo "Downloading kubernetes release ${release} to ${PWD}/kubernetes.tar.gz"
 | 
						|
if [[ -n "${KUBERNETES_SKIP_CONFIRM-}" ]]; then
 | 
						|
  echo "Is this ok? [Y]/n"
 | 
						|
  read confirm
 | 
						|
  if [[ "$confirm" == "n" ]]; then
 | 
						|
    echo "Aborting."
 | 
						|
    exit 0
 | 
						|
  fi
 | 
						|
fi
 | 
						|
 | 
						|
if [[ $(which wget) ]]; then
 | 
						|
  wget -O ${file} ${release_url}
 | 
						|
elif [[ $(which curl) ]]; then
 | 
						|
  curl -L -o ${file} ${release_url}
 | 
						|
else
 | 
						|
  echo "Couldn't find curl or wget.  Bailing out."
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
echo "Unpacking kubernetes release ${release}"
 | 
						|
tar -xzf ${file}
 | 
						|
rm ${file}
 | 
						|
 | 
						|
create_cluster
 | 
						|
 |