「连载」边缘计算(六)01-22:云、边、端的部署与配置(基础篇)

128 阅读3分钟

(接上篇)

部署 docker

本书环境使用的操作系统都是CentOS7+,所以部署docker的步骤也是针对CentOS7+操作环境。

1) 安装需要的依赖包,命令如下:

# yum install yum-utils device-Mapper-persistent-data lvm2

2) 增加安装docker所需的repository,命令如下:

# yum-config-manager --add-repo \

  download.docker.com/linux/cento…

3) 安装制定版本的docker,命令如下:

# yum update && yum install containerd.io-1.2.10 docker-ce-19.03.4 docker-ce-cli-19.03.4,命令如下:

4) 安装制定版本的docker,命令如下:

# yum update && yum install containerd.io-1.2.10 docker-ce-19.03.4 docker-ce-cli-19.03.4

5) 设置docker的配置文件。

创建配置文件目录:#mkdir /etc/docker

设置docker配置文件:# cat > /etc/docker/daemon.json <<EOF

{

  "exec-opts": ["native.cgroupdriver=systemd"],

  "log-driver": "json-file",

  "log-opts": {

    "max-size": "100m"

  },

  "storage-driver": "overlay2",

  "storage-opts": [

    "overlay2.override_kernel_check=true"

  ]

}

EOF

6) 启动docker,命令如下:

# mkdir -p /etc/systemd/system/docker.service.d

systemctl daemon-reload

systemctl restart docker

至此,docker容器运行时就安装成功了。接下来,分析docker配置相关的注意事项。

7) docker配置。

docker的相关配置在/etc/docker/daemon.json文件中进行设置,在daemon.json文件可以设置私有仓库、DNS解析服务器、docker运行时使用的路径、镜像加速地址、日志输出、Cgroup Driver、docker主机的标签等。本节重点介绍Cgroup Driver的设置。

在Linux操作系统发行版本中使用 systemd 作为其初始化系统,初始化进程生成并使用一个 root 控制组件 (cgroup),并将其当作 cgroup 管理器。systemd 与 cgroup 集成紧密,为每个进程分配 cgroup。docker容器运行时默认的cgroup 管理器是cgroupfs,也就是 Kubelet 使用 cgroupfs来管理cgroup。这样就造成在同一台主机上同时使用 systemd和cgroupfs两种cgroup 管理器来对cgroup 进行管理。

cgroup用来约束分配给进程的资源。单个 cgroup 管理器能够简化分配资源的视图,并且默认情况下在管理可用资源和使用中的资源时使用一致的视图。当有两个cgroup管理器时,最终产生两种视图。我们已经看到某些案例中的节点配置让使Kubelet 和 docker 使用 cgroupfs管理器,而节点上运行的其余进程则使用 systemd,这类节点在资源压力下会变得不稳定。

更改设置,令容器运行时和 Kubelet 使用 systemd 作为 cgroup 驱动,以便系统更稳定。 请注意在/etc/docker/daemon.json文件中设置 native.cgroupdriver=systemd 选项。具体如下:

# vi /etc/docker/daemon.json

{

  ...

  "exec-opts": ["native.cgroupdriver=systemd"],

  ...

}

Kubernetes 的学习环境部署

本节对部署Kubernetes学习环境的相关工具进行梳理,并对不同工具从安装方法、使用方法、相应原理的维度进行横向和纵向对比,如表2-2所示。

表2-2 搭建Kubernetes学习环境的工具

部署工具依赖原理备注
Minikube操作系统对虚拟化的支持、一款Hypervisor KVM/VirtualBox、安装并配置了kubectl创建一台虚拟机,在虚拟机里运行Kubernetes集群只适用于学习和测试Kubernete的场景
Kind(Kubernetes in docker)docker容器运行时、在容器里运行Kubernetes集群的基础镜像node image创建一个docker容器,并在该容器里运行一个Kubernetes集群只适用于学习和测试Kubernete的场景

从搭建Kubernetes学习环境的工具列表可知,Minikube、Kind(Kubernetes in docker)都可以搭建Kubernetes的学习环境,但两者所需要的依赖和原理各不相同。由于Minikube和Kind(Kubernetes in docker)都是用于搭建Kubernetes学习环境的工具,所以两者的安装步骤和使用方法相对比较简单。接下来,笔者对两者的安装步骤和使用方法进行详细说明。 「未完待续……」 点击下方标题可阅读技术文章

「连载」边缘计算(一)01-16:边缘计算系统(基础篇)

juejin.cn/post/732453…

「连载」边缘计算(二)01-16:边缘计算系统(基础篇)

juejin.cn/post/732452…

「连载」边缘计算(三)01-17:边缘计算系统(基础篇)

juejin.cn/post/732488…

「连载」边缘计算(四)01-18:边缘计算系统(基础篇)

juejin.cn/post/732525…

「连载」边缘计算(五)01-19:云、边、端的部署与配置(基础篇)

juejin.cn/post/732542…