1、安装工具

[root@k8s-01 /]# yum install -y yum-utils device-mapper-persistent-data lvm2

2、配置yum源

[root@k8s-01 /]# cd /etc/yum.repos.d/
[root@k8s-01 yum.repos.d]# wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
--2019-07-18 10:47:23--  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 119.147.158.240, 119.147.111.226, 119.147.158.238, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|119.147.158.240|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2640 (2.6K) [application/octet-stream]
Saving to: ‘docker-ce.repo’

100%[====================================================================================================================================================================================>] 2,640       --.-K/s   in 0s      

2019-07-18 10:47:23 (590 MB/s) - ‘docker-ce.repo’ saved [2640/2640]

[root@k8s-01 yum.repos.d]# yum clean
Loaded plugins: fastestmirror, langpacks
Error: clean requires an option: headers, packages, metadata, dbcache, plugins, expire-cache, rpmdb, all
[root@k8s-01 yum.repos.d]# yum makecache
Loaded plugins: fastestmirror, langpacks
base                                                                                                                                                                                                   | 3.6 kB  00:00:00     
docker-ce-stable                                                                                                                                                                                       | 3.5 kB  00:00:00     
extras                                                                                                                                                                                                 | 3.4 kB  00:00:00     
updates                                                                                                                                                                                                | 3.4 kB  00:00:00     
(1/11): docker-ce-stable/x86_64/updateinfo                                                                                                                                                             |   55 B  00:00:00     
(2/11): docker-ce-stable/x86_64/filelists_db                                                                                                                                                           |  15 kB  00:00:00     
(3/11): docker-ce-stable/x86_64/primary_db                                                                                                                                                             |  29 kB  00:00:00     
(4/11): docker-ce-stable/x86_64/other_db                                                                                                                                                               | 112 kB  00:00:00     
(5/11): extras/7/x86_64/prestodelta                                                                                                                                                                    |  65 kB  00:00:01     
(6/11): extras/7/x86_64/filelists_db                                                                                                                                                                   | 246 kB  00:00:02     
(7/11): extras/7/x86_64/other_db                                                                                                                                                                       | 127 kB  00:00:02     
(8/11): updates/7/x86_64/other_db                                                                                                                                                                      | 659 kB  00:00:04     
(9/11): base/7/x86_64/other_db                                                                                                                                                                         | 2.6 MB  00:00:22     
(10/11): updates/7/x86_64/filelists_db                                                                                                                                                                 | 4.6 MB  00:00:28     
(11/11): base/7/x86_64/filelists_db                                                                                                                                                                    | 7.1 MB  00:00:34     
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.163.com
 * updates: mirrors.aliyun.com
Metadata Cache Created

3、查看docker版本

[root@k8s-01 yum.repos.d]# yum list docker-ce --showduplicates
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.163.com
 * updates: mirrors.aliyun.com
Available Packages
docker-ce.x86_64                                                                                   17.03.0.ce-1.el7.centos                                                                                    docker-ce-stable
docker-ce.x86_64                                                                                   17.03.1.ce-1.el7.centos                                                                                    docker-ce-stable
docker-ce.x86_64                                                                                   17.03.2.ce-1.el7.centos                                                                                    docker-ce-stable
docker-ce.x86_64                                                                                   17.03.3.ce-1.el7                                                                                           docker-ce-stable
docker-ce.x86_64                                                                                   17.06.0.ce-1.el7.centos                                                                                    docker-ce-stable
docker-ce.x86_64                                                                                   17.06.1.ce-1.el7.centos                                                                                    docker-ce-stable
docker-ce.x86_64                                                                                   17.06.2.ce-1.el7.centos                                                                                    docker-ce-stable
docker-ce.x86_64                                                                                   17.09.0.ce-1.el7.centos                                                                                    docker-ce-stable
docker-ce.x86_64                                                                                   17.09.1.ce-1.el7.centos                                                                                    docker-ce-stable
docker-ce.x86_64                                                                                   17.12.0.ce-1.el7.centos                                                                                    docker-ce-stable
docker-ce.x86_64                                                                                   17.12.1.ce-1.el7.centos                                                                                    docker-ce-stable
docker-ce.x86_64                                                                                   18.03.0.ce-1.el7.centos                                                                                    docker-ce-stable
docker-ce.x86_64                                                                                   18.03.1.ce-1.el7.centos                                                                                    docker-ce-stable
docker-ce.x86_64                                                                                   18.06.0.ce-3.el7                                                                                           docker-ce-stable
docker-ce.x86_64                                                                                   18.06.1.ce-3.el7                                                                                           docker-ce-stable
docker-ce.x86_64                                                                                   18.06.2.ce-3.el7                                                                                           docker-ce-stable
docker-ce.x86_64                                                                                   18.06.3.ce-3.el7                                                                                           docker-ce-stable
docker-ce.x86_64                                                                                   3:18.09.0-3.el7                                                                                            docker-ce-stable
docker-ce.x86_64                                                                                   3:18.09.1-3.el7                                                                                            docker-ce-stable
docker-ce.x86_64                                                                                   3:18.09.2-3.el7                                                                                            docker-ce-stable
docker-ce.x86_64                                                                                   3:18.09.3-3.el7                                                                                            docker-ce-stable
docker-ce.x86_64                                                                                   3:18.09.4-3.el7                                                                                            docker-ce-stable
docker-ce.x86_64                                                                                   3:18.09.5-3.el7                                                                                            docker-ce-stable
docker-ce.x86_64                                                                                   3:18.09.6-3.el7                                                                                            docker-ce-stable
docker-ce.x86_64                                                                                   3:18.09.7-3.el7                                                                                            docker-ce-stable

4、安装指定版本(要与k8s-v1.12.9版本对应)

[root@k8s-01 yum.repos.d]# yum install -y docker-ce-18.06.3.ce-3.el7

# 如果在安装指定版本的docker时显示需要安装指定版本的docker-ce-selinux依赖包,请安装(未出现):

yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-18.06.3.ce-3.el7.noarch.rpm
5、查看

[root@k8s-01 yum.repos.d]# docker info
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

6、如上,显示docker未运行,则执行下面的命令启动docker后再查看,显示docker已启动

[root@k8s-01 yum.repos.d]# systemctl start docker.service
[root@k8s-01 yum.repos.d]# docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 18.06.3-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: a592beb5bc4c4092b1b1bac971afed27687340c5
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-514.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.781GiB
Name: k8s-02
ID: FDEU:RGUE:37QV:KSDD:EZNB:IHU6:2HJT:KGTG:QUQA:MY5B:WRXX:2J5O
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

注意(可选):上面显示docker使用的是cgroupfs,kubelet的启动参数--cgroup-driver如果配置为systemd,则会导致kubelet启动失败,可以修改kubelet和docker保持一致即可,参考链接https://www.cnblogs.com/hongdada/p/9771857.html

docker修改的地方为配置文件/etc/docker/daemon.json,如果不存在则创建改文件,修改的部分如下

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

修改完成后执行下面的命令启动docker后再查看,显示修改成功

[root@k8s-01 yum.repos.d]# systemctl restart docker.service
[root@k8s-01 yum.repos.d]# docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 18.06.3-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: systemd
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: a592beb5bc4c4092b1b1bac971afed27687340c5
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-514.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.781GiB
Name: k8s-02
ID: FDEU:RGUE:37QV:KSDD:EZNB:IHU6:2HJT:KGTG:QUQA:MY5B:WRXX:2J5O
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

7、配置docker开机自启

[root@k8s-01 yum.repos.d]# systemctl enable docker.service
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

 8、修改docker网桥

参考链接https://www.jianshu.com/p/ae3e6132a3bd

docker网桥默认为172.17.0.1/16,k8s集群中,跨节点中不同节点的docker容器ip可能相同,导致冲突,有flannel和calico可以解决,下面可以不用配置

查看docker网桥

[root@k8s-01 /]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:f6:59:b5:71 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.111 netmask 255.255.255.0 broadcast 10.243.27.255
inet6 fe80::859a:39ee:745:69c prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:24:2b:31 txqueuelen 1000 (Ethernet)
RX packets 621729 bytes 613205244 (584.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 213759 bytes 152947621 (145.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 1053 bytes 203880 (199.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1053 bytes 203880 (199.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

停止docker服务

禁用docker0

查看docker0已查不到

[root@k8s-01 /]# systemctl stop docker.service
[root@k8s-01 /]# ip link set docker0 down
[root@k8s-01 /]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.111  netmask 255.255.255.0  broadcast 10.243.27.255
        inet6 fe80::859a:39ee:745:69c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:24:2b:31  txqueuelen 1000  (Ethernet)
        RX packets 622299  bytes 613253464 (584.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 213862  bytes 152960693 (145.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 1053  bytes 203880 (199.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1053  bytes 203880 (199.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

删除docker0

重新启用docker0,发现已没有docker0

[root@k8s-01 /]# brctl delbr docker0
[root@k8s-01 /]# ip link set docker0 up
Cannot find device "docker0"

修改docker的配置文件/etc/docker/daemon.json,如果不存在则创建改文件,修改的bip部分如下,其余保持原文件内容

{
  "bip": "192.168.0.1/16",
  "registry-mirrors": [
    "https://a73cc22x.mirror.aliyuncs.com",
    "https://hub-mirror.c.163.com",
    "https://registry.aliyuncs.com"
  ]
}

重启docker服务,并查看

[root@k8s-01 /]# systemctl start docker.service
[root@k8s-01 /]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.0.1  netmask 255.255.0.0  broadcast 192.188.255.255
        ether 02:42:55:14:62:9b  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.111  netmask 255.255.255.0  broadcast 10.243.27.255
        inet6 fe80::859a:39ee:745:69c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:24:2b:31  txqueuelen 1000  (Ethernet)
        RX packets 623710  bytes 613367934 (584.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 214240  bytes 153014551 (145.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 1053  bytes 203880 (199.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1053  bytes 203880 (199.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 结束