centos 8 kubernetes安装详解_第十一篇 安装docker引擎

7bfc6ed8e69d8fe9c72d7e022cdd726e.png

01

写在之前

Docker是kubernetes最常用于运行容器的底层引擎,除了Docker之外还有Podman等;

02

安装Docker引擎

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo &&yum makecache && yum -y install docker-ce

03

配置镜像加速

#!/bin/bash
cd /data/k8s/work
source /data/k8s/bin/env.sh

# 创建加速配置文件
cat > daemon.json <{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": ["https://hjvrgh7a.mirror.aliyuncs.com"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  }
}
# 添加私有镜像仓库,默认是使用https
# "insecure-registries": ["registry.k8s.vip"],
EOF

# 分发
for node_ip in ${NODE_IPS[@]}
do
    echo ">>> ${node_ip}"
    ssh root@${node_ip} "mkdir -p /etc/docker/"
    scp daemon.json root@${node_ip}:/etc/docker/
done

加速配置选项说明

配置选项选项说明
exec-opts运行时执行选项
registry-mirrors设置镜像加速地址
log-driver容器日志驱动程序(默认:json-file)
log-opts容器日志选项
insecure-registries设置私有仓库地址,默认是https

04

创建启动文件

#!/bin/bash
cd /data/k8s/work
source /data/k8s/bin/env.sh

cp /usr/lib/systemd/system/docker.service /data/k8s/work/

sed -i '/ExecStart/s/\(.*\)/#\1/' /data/k8s/work/docker.service
sed -i '/ExecReload/a ExecStart=/usr/bin/dockerd $DOCKER_NETWORK_OPTIONS -H fd:// --containerd=/run/containerd/containerd.sock' /data/k8s/work/docker.service
sed -i '/ExecReload/a EnvironmentFile=-/run/flannel/docker' /data/k8s/work/docker.service


for node_ip in ${NODE_IPS[@]}
do
    echo ">>> ${node_ip}"
    scp /data/k8s/work/docker.service root@${node_ip}:/usr/lib/systemd/system/
done

05

启动docker runtime引擎

#!/bin/bash
cd /data/k8s/work
source /data/k8s/bin/env.sh

# 启动
for node_ip in ${NODE_IPS[@]}
do
    echo ">>> ${node_ip}"
    ssh root@${node_ip} "systemctl daemon-reload && systemctl enable docker && systemctl restart docker"
done

# 检查
for node_ip in ${NODE_IPS[@]}
do
    echo ">>> ${node_ip}"
    ssh root@${node_ip} "systemctl status docker"
done

检查结果:
>>> 192.168.16.104
   Active: active (running) since Sun 2019-12-29 18:05:58 CST; 1 months 1 days ago
>>> 192.168.16.105
   Active: active (running) since Sun 2019-12-29 17:42:35 CST; 1 months 1 days ago
>>> 192.168.16.106
   Active: active (running) since Sun 2019-12-29 17:27:52 CST; 1 months 1 days ago
>>> 192.168.16.107
   Active: active (running) since Sun 2019-12-29 17:49:00 CST; 1 months 1 days ago

06

flanneld 和 docker 之间网络

#!/bin/bash

cd /data/k8s/work
source /data/k8s/bin/env.sh

for node_ip in ${NODE_IPS[@]}
do
    echo ">>> ${node_ip}"
    ssh root@${node_ip} "/usr/sbin/ip addr show flannel.1 && /usr/sbin/ip addr show docker0"
    echo "\n"
done

检查结果:
>>> 192.168.16.104
3: flannel.1: mtu 1450 qdisc noqueue state UNKNOWN
    link/ether aa:ea:b2:e1:88:a5 brd ff:ff:ff:ff:ff:ff
    inet 172.19.120.0/32 scope global flannel.1
       valid_lft forever preferred_lft forever4: docker0:  mtu 1450 qdisc noqueue state UP
    link/ether 02:42:0d:b7:5a:62 brd ff:ff:ff:ff:ff:ff
    inet 172.19.120.1/21 brd 172.19.127.255 scope global docker0
       valid_lft forever preferred_lft forever>>> 192.168.16.1053: flannel.1: mtu 1450 qdisc noqueue state UNKNOWN
    link/ether 9a:9d:f2:df:a0:5b brd ff:ff:ff:ff:ff:ff
    inet 172.19.184.0/32 scope global flannel.1
       valid_lft forever preferred_lft forever4: docker0:  mtu 1450 qdisc noqueue state UP
    link/ether 02:42:c3:44:35:9c brd ff:ff:ff:ff:ff:ff
    inet 172.19.184.1/21 brd 172.19.191.255 scope global docker0
       valid_lft forever preferred_lft forever>>> 192.168.16.1063: flannel.1: mtu 1450 qdisc noqueue state UNKNOWN
    link/ether ba:f5:d6:06:fb:de brd ff:ff:ff:ff:ff:ff
    inet 172.19.72.0/32 scope global flannel.1
       valid_lft forever preferred_lft forever4: docker0:  mtu 1450 qdisc noqueue state UP
    link/ether 02:42:e4:56:c1:04 brd ff:ff:ff:ff:ff:ff
    inet 172.19.72.1/21 brd 172.19.79.255 scope global docker0
       valid_lft forever preferred_lft forever>>> 192.168.16.1073: flannel.1: mtu 1450 qdisc noqueue state UNKNOWN
    link/ether 96:d5:25:87:b0:11 brd ff:ff:ff:ff:ff:ff
    inet 172.19.56.0/32 scope global flannel.1
       valid_lft forever preferred_lft forever4: docker0:  mtu 1450 qdisc noqueue state UP
    link/ether 02:42:50:85:6e:d9 brd ff:ff:ff:ff:ff:ff
    inet 172.19.56.1/21 brd 172.19.63.255 scope global docker0
       valid_lft forever preferred_lft forever

07

总结

Docker引擎安装相对简单,但需要与网络插件flannel结合起来使用,只需要简单的配置下启动参数EnvironmentFile即可。

分享使我快乐 

bfa86254343ed330303a7168e5c1bc87.png

往期文章

通俗易懂理解Kubernetes核心组件及原理

Centos7.6内核升级

第一篇 k8s组件版本及功能简介

第二篇 环境初始化准备

第三篇 PKI基础概念、cfssl工具介绍及kubernetes中证书

第四篇 Etcd存储组件高可用部署

第五篇  安装keepalived与Nginx

第六篇  二进制安装 kube-apiserver

第七篇 验证kube-apiserver及kubeconfig配置详解

第八篇  kube-controller-manager安装及验证

第九篇  kube-scheduler 安装及验证

第十篇  网络组件flanneld安装及使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值