01 docker安装配置

288 阅读4分钟

一、环境构建

1.1、机型确定

2021.10.23

console.cloud.tencent.com/cvm/instanc…

自定义配置、包年包月模式 南京123、标准型、标准型SA2、2C4G、50G云硬盘、1Mbps、72.54主机+10.40带宽【按带宽计费】; 5Mbps则72.54+59.80 自定义模式、竞价模式 南京123、标准型、标准型SA2、2C4G、CentOS8.2 x64、50G云硬盘、5Mbps、0.08/小时主机+0.52/GB带宽【按使用流量】;

    带宽,若是按照带宽计费5Mbps,0.19/小时。实际上带宽不可能一直在用。还是按照流量。

1.2、虚拟机购买方案

  • 竞价实例、南京三区、网络默认、标准型/标准型 SA2、2C4G、公共镜像/CentOS8.2 x64、系统盘50G云硬盘、数据盘默认、外网带宽按使用流量5Mbps
  • 单台配置 0.08元/小时+0.52元/GB *3台
  • 安全组/放通所有端口、设置密码、安全加固取消安装、自助化助手默认打开
  • 其他。项目标签、实例名、高级设置 都保持默认

1.3、主机与组件清单

标题主机公网IP内网IP
masterVM-16-14-centos1...22010.206.16.14docker 20.10.9 docker-compose 2.0.1 harbor 2.3.3 kubeadm 1.22.2、kubelet 1.22.2、kubectl 1.22.2
k8s1/node1VM-16-6-centos175...21410.206.16.6docker 20.10.9 kubeadm 1.22.2、kubelet 1.22.2、kubectl 1.22.2
k8s2/node2VM-16-4-centos1...410.206.16.4docker 20.10.9 kubeadm 1.22.2、kubelet 1.22.2、kubectl 1.22.2

1.4、ansible安装[MBP/master]

#MBP
➜ ~ sudo vim /etc/hosts 
➜ ~ ssh root@master 
➜ ~ ssh root@k8s1 
➜ ~ ssh root@k8s2 
[root@VM-16-14-centos ~]# uname -r 
4.18.0-305.3.1.el8.x86_64

➜ ~ export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087; 
➜ ~ brew update 
Already up-to-date. 
➜ ~ brew install ansible 
➜ ~ ansible --version 
ansible [core 2.11.6] 

➜ ~ sudo mkdir -p /etc//ansible/ 
➜ ~ sudo vim /etc/ansible/hosts 
node1 ansible_host=175.*.*.214 ansible_port=22 ansible_user=root 
node2 ansible_host=1.*.*.4 ansible_port=22 ansible_user=root 
master ansible_host=1.*.*.220 ansible_port=22 ansible_user=root 

➜ ~ ssh-keygen 
➜ ~ cd .ssh 
➜ .ssh ssh-copy-id -i id_rsa.pub root@175.*.*.214
➜ .ssh ssh-copy-id -i id_rsa.pub root@1.*.*.4 
➜ .ssh ssh-copy-id -i id_rsa.pub root@1.*.*.220 
➜ .ssh ansible master,node1,node2 -m ping 
➜ .ssh ansible master,node1,node2 -m command -a "uname -r" 
➜ ~ ansible master,node1,node2 -m command -a "uname -a" -v 
➜ ~ ansible master,node1,node2 -m command -a "date" -v 
➜ ~ ansible master,node1,node2 -m command -a "ifconfig" -v 
➜ ~ ansible master,node1,node2 -m command -a "uptime" -v 
➜ .ssh ansible master,node1,node2 -m command -a "kill -9 yum" -v 
➜ .ssh ansible master,node1,node2 -m command -a "yum update -y" -v


#master
[root@VM-16-14-centos ~]# ssh-keygen 
[root@VM-16-14-centos ~]# cd .ssh/ 

[root@VM-16-14-centos .ssh]# ssh-copy-id -i id_rsa.pub root@175.*.*.214 
[root@VM-16-14-centos .ssh]# ssh-copy-id -i id_rsa.pub root@1.*.*.4 

[root@VM-16-14-centos ~]# yum -y install epel-release 
[root@VM-16-14-centos ~]# yum -y install ansible 
[root@VM-16-14-centos ~]# ansible --version 
ansible 2.9.25 

[root@VM-16-14-centos .ssh]# vim /etc/ansible/hosts 
node1 ansible_host=175.*.*.214  ansible_port=22 
node2 ansible_host=1.*.*.4 ansible_port=22 

[root@VM-16-14-centos .ssh]# ansible node1 -m ping 
[root@VM-16-14-centos .ssh]# ansible node2 -m ping 
[root@VM-16-14-centos .ssh]# ansible node1,node2 -m command -a "uname -r" 
node1 | CHANGED | rc=0 >> 4.18.0-305.3.1.el8.x86_64 
node2 | CHANGED | rc=0 >> 4.18.0-305.3.1.el8.x86_64

二、docker安装配置

2.1、docker 20.10.9部署[master/node1/node2]

  • node1/node2,必须安装docker。不然后面加入master时会报错。

[root@VM-16-14-centos ~]# rpm -qa | grep docker 
[root@VM-16-14-centos ~]# yum remove docker docker-common docker-selinux docker-engine [root@VM-16-14-centos ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 

#[root@VM-16-14-centos ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 
[root@VM-16-14-centos ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
[root@VM-16-14-centos ~]# yum clean all 
#[root@VM-16-14-centos ~]# yum makecache fast 
[root@VM-16-14-centos ~]# yum makecache 
[root@VM-16-14-centos ~]# yum list docker-ce --showduplicates | sort -r 
#$ yum -y install docker-ce-20.10.8 
[root@VM-16-14-centos ~]# yum -y install docker-ce 

[root@VM-16-14-centos ~]# sudo systemctl start docker 
[root@VM-16-14-centos ~]# sudo systemctl enable docker 
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service. 

[root@VM-16-14-centos ~]# docker version 

[root@VM-16-14-centos ~]# docker info 
 [root@VM-16-14-centos ~]# docker -h

2.2、docker配置[master/node1/node2]

  • node1/node2也需要配置
[root@VM-16-14-centos ~]# cat /usr/lib/systemd/system/docker.service 
[root@VM-16-14-centos ~]# vim /etc/docker/daemon.json 
{ 
    "storage-driver": "overlay2", 
        "exec-opts": ["native.cgroupdriver=systemd"], 
    "insecure-registries": ["http://harbor01.io","http://harbor02.io","http://harbor03.io"], 
    "registry-mirrors": ["https://hub-mirror.c.163.com","https://registry.docker-cn.com"], 
    #镜像加速,鉴于国内网络问题,后续拉取Docker 镜像十分缓慢,可以需要配置加速器来解决 
    "max-concurrent-downloads": 20, 
    "max-concurrent-uploads": 5 
} 
    
[root@VM-16-14-centos ~]# docker run ubuntu:15.10 /bin/echo "Hello world" 
[root@VM-16-14-centos ~]# docker ps 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 
[root@VM-16-14-centos ~]# docker ps -a 
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cd7d1dbd6fa6 ubuntu:15.10 "/bin/echo 'Hello wo…" 29 seconds ago Exited (0) 28 seconds ago recursing_brahmagupta 

三、注意事项

3.1、daemon.json配置文件不要出现##

  • 在后期配置文件注释时,不要出现##,否则会在重新启动时,报错。

image.png

image.png

3.2、同样参数不要重复出现 daemon.json docker.service

  • 不要在 /etc/docker/daemon.json /lib/systemd/system/docker.service出现重复参数 image.png

3.3、确保k8s集群,master以及所有node中docker所有配置完全一致