一、环境构建
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 | |
|---|---|---|---|---|
| master | VM-16-14-centos | 1...220 | 10.206.16.14 | docker 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/node1 | VM-16-6-centos | 175...214 | 10.206.16.6 | docker 20.10.9 kubeadm 1.22.2、kubelet 1.22.2、kubectl 1.22.2 |
| k8s2/node2 | VM-16-4-centos | 1...4 | 10.206.16.4 | docker 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配置文件不要出现##
- 在后期配置文件注释时,不要出现##,否则会在重新启动时,报错。
3.2、同样参数不要重复出现 daemon.json docker.service
- 不要在 /etc/docker/daemon.json /lib/systemd/system/docker.service出现重复参数