mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 05:40:42 +00:00 
			
		
		
		
	
		
			
				
	
	
	
		
			3.2 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			3.2 KiB
		
	
	
	
	
	
	
	
Status: Out Of Date
** Rackspace support is out of date. Please check back later **
Rackspace
In general, the dev-build-and-up.sh workflow for Rackspace is the similar to GCE. The specific implementation is different due to the use of CoreOS, Rackspace Cloud Files and network design.
These scripts should be used to deploy development environments for Kubernetes. If your account leverages RackConnect or non-standard networking, these scripts will most likely not work without modification.
NOTE: The rackspace scripts do NOT rely on saltstack.
The current cluster design is inspired by:
Prerequisites
- You need to have both novaandswiftlyinstalled. It's recommended to use a python virtualenv to install these packages into.
- Make sure you have the appropriate environment variables set to interact with the OpenStack APIs. See Rackspace Documentation for more details.
Provider: Rackspace
- To use Rackspace as the provider, set the KUBERNETES_PROVIDER ENV variable:
export KUBERNETES_PROVIDER=rackspaceand run thebash hack/dev-build-and-up.shscript.
Build
- The kubernetes binaries will be built via the common build scripts in build/.
- If you've set the ENV KUBERNETES_PROVIDER=rackspace, the scripts will uploadkubernetes-server-linux-amd64.tar.gzto Cloud Files.
- A cloud files container will be created via the swiftlyCLI and a temp URL will be enabled on the object.
- The built kubernetes-server-linux-amd64.tar.gzwill be uploaded to this container and the URL will be passed to master/minions nodes when booted.
Cluster
- There is a specific cluster/rackspacedirectory with the scripts for the following steps:
- A cloud network will be created and all instances will be attached to this network. We will connect the master API and minion kubelet service via this network.
- A SSH key will be created and uploaded if needed. This key must be used to ssh into the machines since we won't capture the password.
- A master and minions will be created via the novaCLI. Acloud-config.yamlis generated and provided as user-data with the entire configuration for the systems.
- We then boot as many minions as defined via $RAX_NUM_MINIONS.
Some notes:
- The scripts expect eth2to be the cloud network that the containers will communicate across.
- A number of the items in config-default.share overridable via environment variables.
- For older versions please either:
- Sync back to v0.3withgit checkout v0.3
- Download a snapshot of v0.3
Network Design
- eth0 - Public Interface used for servers/containers to reach the internet
- eth1 - ServiceNet - Intra-cluster communication (k8s, etcd, etc) communicate via this interface. The cloud-configfiles use the special CoreOS identifier$private_ipv4to configure the services.
- eth2 - Cloud Network - Used for k8s pods to communicate with one another. The proxy service will pass traffic via this interface.