mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 05:40:42 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| # Copyright 2015 The Kubernetes Authors 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.
 | |
| 
 | |
| # Format and mount the disk, create directories on it for all of the master's
 | |
| # persistent data, and link them to where they're used.
 | |
| 
 | |
| echo "Waiting for master pd to be attached"
 | |
| attempt=0
 | |
| while true; do
 | |
|   echo Attempt "$(($attempt+1))" to check for /dev/xvdb
 | |
|   if [[ -e /dev/xvdb ]]; then
 | |
|     echo "Found /dev/xvdb"
 | |
|     break
 | |
|   fi
 | |
|   attempt=$(($attempt+1))
 | |
|   sleep 1
 | |
| done
 | |
| 
 | |
| # Mount Master Persistent Disk
 | |
| echo "Mounting master-pd"
 | |
| mkdir -p /mnt/master-pd
 | |
| mkfs -t ext4 /dev/xvdb
 | |
| echo "/dev/xvdb  /mnt/master-pd  ext4  noatime  0 0" >> /etc/fstab
 | |
| mount /mnt/master-pd
 | |
| 
 | |
| # Contains all the data stored in etcd
 | |
| mkdir -m 700 -p /mnt/master-pd/var/etcd
 | |
| # Contains the dynamically generated apiserver auth certs and keys
 | |
| mkdir -p /mnt/master-pd/srv/kubernetes
 | |
| # Contains the cluster's initial config parameters and auth tokens
 | |
| mkdir -p /mnt/master-pd/srv/salt-overlay
 | |
| # Directory for kube-apiserver to store SSH key (if necessary)
 | |
| mkdir -p /mnt/master-pd/srv/sshproxy
 | |
| 
 | |
| ln -s -f /mnt/master-pd/var/etcd /var/etcd
 | |
| ln -s -f /mnt/master-pd/srv/kubernetes /srv/kubernetes
 | |
| ln -s -f /mnt/master-pd/srv/sshproxy /srv/sshproxy
 | |
| ln -s -f /mnt/master-pd/srv/salt-overlay /srv/salt-overlay
 | |
| 
 | |
| # This is a bit of a hack to get around the fact that salt has to run after the
 | |
| # PD and mounted directory are already set up. We can't give ownership of the
 | |
| # directory to etcd until the etcd user and group exist, but they don't exist
 | |
| # until salt runs if we don't create them here. We could alternatively make the
 | |
| # permissions on the directory more permissive, but this seems less bad.
 | |
| if ! id etcd &>/dev/null; then
 | |
|   useradd -s /sbin/nologin -d /var/etcd etcd
 | |
| fi
 | |
| chown -R etcd /mnt/master-pd/var/etcd
 | |
| chgrp -R etcd /mnt/master-pd/var/etcd
 |