mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 06:27:05 +00:00
support mounting local-ssds on GCI
This change adds support for mounting local ssds on GCI. It updates the previous container-vm behavior as well to match that for GCI nodes by mounting the local-ssds under the same path (/mnt/disks/ssdN).
This commit is contained in:
parent
c9c4ada309
commit
4447c54682
@ -58,9 +58,9 @@ ensure-local-disks() {
|
|||||||
for ssd in /dev/disk/by-id/google-local-ssd-*; do
|
for ssd in /dev/disk/by-id/google-local-ssd-*; do
|
||||||
if [ -e "$ssd" ]; then
|
if [ -e "$ssd" ]; then
|
||||||
ssdnum=`echo $ssd | sed -e 's/\/dev\/disk\/by-id\/google-local-ssd-\([0-9]*\)/\1/'`
|
ssdnum=`echo $ssd | sed -e 's/\/dev\/disk\/by-id\/google-local-ssd-\([0-9]*\)/\1/'`
|
||||||
echo "Formatting and mounting local SSD $ssd to /mnt/ssd$ssdnum"
|
echo "Formatting and mounting local SSD $ssd to /mnt/disks/ssd$ssdnum"
|
||||||
mkdir -p /mnt/ssd$ssdnum
|
mkdir -p /mnt/disks/ssd$ssdnum
|
||||||
/usr/share/google/safe_format_and_mount -m "mkfs.ext4 -F" "${ssd}" /mnt/ssd$ssdnum &>/var/log/local-ssd-$ssdnum-mount.log || \
|
/usr/share/google/safe_format_and_mount -m "mkfs.ext4 -F" "${ssd}" /mnt/disks/ssd$ssdnum &>/var/log/local-ssd-$ssdnum-mount.log || \
|
||||||
{ echo "Local SSD $ssdnum mount failed, review /var/log/local-ssd-$ssdnum-mount.log"; return 1; }
|
{ echo "Local SSD $ssdnum mount failed, review /var/log/local-ssd-$ssdnum-mount.log"; return 1; }
|
||||||
else
|
else
|
||||||
echo "No local SSD disks found."
|
echo "No local SSD disks found."
|
||||||
|
@ -46,6 +46,23 @@ function create-dirs {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Local ssds, if present, are mounted at /mnt/disks/ssdN.
|
||||||
|
function ensure-local-ssds() {
|
||||||
|
for ssd in /dev/disk/by-id/google-local-ssd-*; do
|
||||||
|
if [ -e "${ssd}" ]; then
|
||||||
|
ssdnum=`echo ${ssd} | sed -e 's/\/dev\/disk\/by-id\/google-local-ssd-\([0-9]*\)/\1/'`
|
||||||
|
ssdmount="/mnt/disks/ssd${ssdnum}/"
|
||||||
|
echo "Formatting and mounting local SSD $ssd to ${ssdmount}"
|
||||||
|
mkdir -p ${ssdmount}
|
||||||
|
/usr/share/google/safe_format_and_mount -m "mkfs.ext4 -F" "${ssd}" ${ssdmount} || \
|
||||||
|
{ echo "Local SSD $ssdnum mount failed"; return 1; }
|
||||||
|
chmod a+w ${ssdmount}
|
||||||
|
else
|
||||||
|
echo "No local SSD disks found."
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
# Finds the master PD device; returns it in MASTER_PD_DEVICE
|
# Finds the master PD device; returns it in MASTER_PD_DEVICE
|
||||||
function find-master-pd {
|
function find-master-pd {
|
||||||
MASTER_PD_DEVICE=""
|
MASTER_PD_DEVICE=""
|
||||||
@ -870,6 +887,7 @@ fi
|
|||||||
source "${KUBE_HOME}/kube-env"
|
source "${KUBE_HOME}/kube-env"
|
||||||
config-ip-firewall
|
config-ip-firewall
|
||||||
create-dirs
|
create-dirs
|
||||||
|
ensure-local-ssds
|
||||||
if [[ "${KUBERNETES_MASTER:-}" == "true" ]]; then
|
if [[ "${KUBERNETES_MASTER:-}" == "true" ]]; then
|
||||||
mount-master-pd
|
mount-master-pd
|
||||||
create-master-auth
|
create-master-auth
|
||||||
|
@ -54,7 +54,7 @@ func createNodePoolWithLocalSsds(nodePoolName string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func doTestWriteAndReadToLocalSsd(f *framework.Framework) {
|
func doTestWriteAndReadToLocalSsd(f *framework.Framework) {
|
||||||
var pod = testPodWithSsd("echo 'hello world' > /mnt/ssd0/data && sleep 1 && cat /mnt/ssd0/data")
|
var pod = testPodWithSsd("echo 'hello world' > /mnt/disks/ssd0/data && sleep 1 && cat /mnt/disks/ssd0/data")
|
||||||
var msg string
|
var msg string
|
||||||
var out = []string{"hello world"}
|
var out = []string{"hello world"}
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ func doTestWriteAndReadToLocalSsd(f *framework.Framework) {
|
|||||||
func testPodWithSsd(command string) *api.Pod {
|
func testPodWithSsd(command string) *api.Pod {
|
||||||
containerName := "test-container"
|
containerName := "test-container"
|
||||||
volumeName := "test-ssd-volume"
|
volumeName := "test-ssd-volume"
|
||||||
path := "/mnt/ssd0"
|
path := "/mnt/disks/ssd0"
|
||||||
podName := "pod-" + string(util.NewUUID())
|
podName := "pod-" + string(util.NewUUID())
|
||||||
image := "ubuntu:14.04"
|
image := "ubuntu:14.04"
|
||||||
return &api.Pod{
|
return &api.Pod{
|
||||||
|
Loading…
Reference in New Issue
Block a user