K8S集群node节点初始化将docker数据目录分离出系统盘 您所在的位置:网站首页 初始化磁盘是格式化吗 K8S集群node节点初始化将docker数据目录分离出系统盘

K8S集群node节点初始化将docker数据目录分离出系统盘

2023-06-06 12:23| 来源: 网络整理| 查看: 265

前言

我们知道,docker在安装的时候,默认数据目录是/var/lib/docker,但是/var/lib却是在系统盘,数据量小一点儿的时候还好,但是一旦数据量大了之后,难免会存在隐患。因此我们最好是将这些数据放置到单独的分区上。网上有介绍如何修改docker数据目录的,如将docker的数据目录迁移到/data/docker目录山的,我以前也按照那些方式操作过,也可能因为我操作有误或者其他原因什么的,总会有一些瑕疵,因为其他使用docker的平台或工具默认docker的数据目录是在/var/lib/docker目录下的。

因此,个人认为最稳妥的拆分方式,应该是将/var/lib/docker挂载到一个单独的分区上,这样既保证了数据与系统分区的分离,又保证了docker的目录不变。

我们对这些方式在下面的篇幅中一一介绍。

初始化服务器分区 自定义安装服务器

怎么理解这个概念呢,比如私有云、物理机、超融合或其他虚拟机等你能够自主定义如何初始化安装的服务器,我统称为自定义安装服务器,这类服务器的特点就是,你在安装系统的时候就能自主定义几块磁盘、几个分区等等,因此针对这一类服务器,如果规划是用来做node节点的,那么可以直接指定/var/lib/docker目录单独对应一个分区。这样后面都省了额外的配置,如果你们有专人负责此事,那就给他下需求就行了,你连这个活儿都省了的🤫。

公有云服务器

说实话我也没用过多少公有云厂商,但是就目前来说,阿里云、华为云好像都不能在创建ECS的时候,指定磁盘挂载的目录(如有错误,欢迎指出)。这就导致我们在创建ECS之后,需要手动初始化磁盘分区。下面以华为云为例详细介绍一下整个挂载过程

云控制台购买磁盘,根据个人需求自主选择,此处不多做介绍。

root用户登录系统,执行以下命令查看新增磁盘

root@node-010 ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 40G 0 disk └─vda1 253:1 0 40G 0 part / vdb 253:16 0 100G 0 disk

执行以下命令,进入parted分区工具(当然如果你也可以使用fdisk),开始对新增数据盘执行分区操作。

parted 新增数据盘

命令示例:

parted /dev/vdb

[root@node-010 ~]$ parted /dev/vdb GNU Parted 3.1 Using /dev/vdc Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)

输入以下命令,设置磁盘分区形式。

mklabel 磁盘分区形式

磁盘分区形式有MBR和GPT两种,以GPT为例:

mklabel gpt

MBR支持的磁盘最大容量为2 TB,GPT最大支持的磁盘容量为18 EB,当前数据盘支持的最大容量为32 TB,如果您需要使用大于2 TB的磁盘容量,分区形式请采用GPT。

当磁盘已经投入使用后,此时切换磁盘分区形式时,磁盘上的原有数据将会清除,因此请在磁盘初始化时谨慎选择磁盘分区形式。

输入“unit s”,按“Enter”,设置磁盘的计量单位为磁柱。

以整个磁盘创建一个分区为例,执行以下命令,按“Enter”。

mkpart 磁盘分区名称 起始磁柱值 截止磁柱**值

命令示例:

mkpart data 2048s 100%

“2048s”表示磁盘起始磁柱值,“100%”表示磁盘截止磁柱值,此处仅供参考,您可以根据业务需要自行规划磁盘分区数量及容量。

输入“p”,按“Enter”,查看新建分区的详细信息。

回显类似如下信息:

(parted) p Model: Virtio Block Device (virtblk) Disk /dev/vdc: 107GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 107GB 107GB ext4 data (parted)

输入“q”,按“Enter”,退出parted分区工具。

执行以下命令,查看磁盘分区信息。

lsblk

[root@node-010 ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vdb 253:32 0 100G 0 disk └─vdb1 253:33 0 100G 0 part vda 253:0 0 40G 0 disk └─vda1 253:1 0 40G 0 part /

此时可以查看到新建分区“/dev/vdb1”

执行以下命令,将新建分区文件系统设为系统所需格式。

mkfs -t 文件系统格式 /dev/vdb1

以设置文件系统为“ext4”为例:

mkfs -t ext4 /dev/vdb1

回显类似如下信息:

[root@node-010 ~]$ mkfs -t ext4 /dev/vdb1 mke2fs 1.42.9 (28-Dec-2013) .....(省略) Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done

创建新的挂载目录

mkdir -p /var/lib/docker

执行如下命令,查询磁盘分区的UUID。

blkid 磁盘分区

以查询磁盘分区“/dev/vdb1”的UUID为例:

blkid /dev/vdb1

回显类似如下信息:

[root@node-010 ~]$ blkid /dev/vdb1 /dev/vdb1: UUID="b4443df4-a525-4a7c-80a8-33481b4f4356" TYPE="ext4" PARTLABEL="data" PARTUUID="54ffd6ca-7648-490d-aa46-8773d0882882"

编辑/etc/fstab以使磁盘自动挂载

[root@node-010 ~]$ vim /etc/fstab #最下边新增 UUID=976f2508-a530-41b3-80d3-005421e76f62 /var/lib/docker ext4 defaults 0 2 #保存后执行 [root@node-010 ~]$ mount -a

以上内容仅为示例,具体请以实际情况为准,参数说明如下:

第一列为UUID,此处填写1中查询到的磁盘分区的UUID。

第二列为磁盘分区的挂载目录,可以通过df -TH命令查询。

第三列为磁盘分区的文件系统格式, 可以通过df -TH命令查询。

第四列为磁盘分区的挂载选项,此处通常设置为defaults即可。

第五列为Linux dump备份选项。

0表示不使用Linux dump备份。现在通常不使用dump备份,此处设置为0即可。1表示使用Linux dump备份。

第六列为fsck选项,即开机时是否使用fsck检查磁盘。

0表示不检验。

挂载点为(/)根目录的分区,此处必须填写1。

根分区设置为1,其他分区只能从2开始,系统会按照数字从小到大依次检查下去。

查看一下磁盘挂载情况:

[root@node-k06 ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 16G 0 16G 0% /dev tmpfs 16G 0 16G 0% /dev/shm tmpfs 16G 4.4M 16G 1% /run tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/vda1 40G 4.2G 34G 12% / /dev/vdb1 99G 184K 94G 1% /var/lib/docker tmpfs 3.2G 0 3.2G 0% /run/user/0

以上步骤执行完毕后,安装docker即可



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有