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
结束