mirror of https://github.com/kubernetes/kops.git
				
				
				
			
		
			
				
	
	
		
			32 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
| # The State Store
 | |
| 
 | |
| kops has the notion of a 'state store'; a location where we store the configuration of your cluster.  State is stored
 | |
| here not only when you first create a cluster, but also you can change the state and apply changes to a running cluster.
 | |
| 
 | |
| Eventually, kubernetes services will also pull from the state store, so that we don't need to marshal all our
 | |
| configuration through a channel like user-data.  (This is currently done for secrets and SSL keys, for example,
 | |
| though we have to copy the data from the state store to a file where components like kubelet can read them).
 | |
| 
 | |
| The state store uses kops's VFS implementation, so can in theory be stored anywhere.  Currently storage on S3
 | |
| is supported, but support for GCS is coming soon, along with encrypted storage.
 | |
| 
 | |
| The state store is just files; you can copy the files down and put them into git (or your preferred version
 | |
| control system).
 | |
| 
 | |
| ## {statestore}/config
 | |
| 
 | |
| One of the most important files in the state store is the top-level config file.  This file stores the main
 | |
| configuration for your cluster (instance types, zones, etc)\
 | |
| 
 | |
| When you run `kops create cluster`, we create a state store entry for you based on the command line options you specify. 
 | |
| For example, when you run with `--node-size=m4.large`, we actually set a line in the configuration
 | |
| that looks like `NodeMachineType: m4.large`.
 | |
| 
 | |
| The configuration you specify on the command line is actually just a convenient short-cut to
 | |
| manually editing the configuration.  Options you specify on the command line are merged into the existing
 | |
| configuration. If you want to configure advanced options, or prefer a text-based configuration, you
 | |
| may prefer to just edit the config file with `kops edit cluster`.
 | |
| 
 | |
| Because the configuration is merged, this is how you can just specify the changed arguments when
 | |
| reconfiguring your cluster - for example just `kops create cluster` after a dry-run.
 |