近期文章:
一. docker 环境初始化
准备三台centos机器,开始安装docker
mater | 172.16.40.129 |
node1 | 172.16.40.130 |
node2 | 172.16.40.131 |
1.1、检查操作系统的版本
#要求系统版本要在centos7.5或以上 [root@master ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)
1.2、配置主机名解析
[root@master ~]# cat >/etc/hosts<<EOF 172.16.40.129 master 172.16.40.130 node1 172.16.40.131 node2 EOF
1.3、时间同步
# 下面二选一 1、使用chronyd [root@master ~]# systemctl start chronyd [root@master ~]# systemctl enable chronyd #或者 2、ntpdate [root@master ~]# yum install -y ntp ntpdate [root@master ~]# ntpdate cn.pool.ntp.org #编写计划任务 [root@master ~]# crontab -e * */1 * * * /usr/sbin/ntpdate cn.pool.ntp.org 重启crond服务使配置生效: [root@master ~]# systemctl restart crond
1.4、禁用iptables和firewalld服务
[root@master ~]# systemctl stop firewalld [root@master ~]# systemctl disable firewalld [root@master ~]# systemctl stop iptables [root@master ~]# systemctl disable iptables
1.5、禁用selinux
#临时禁用 [root@master ~]# setenforce 0 #永久 [root@master ~]# sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
1.6、禁用swap分区
swap分区指的是虚拟内存分区,它的作用是物理内存使用完,之后将磁盘空间虚拟成内存来使用,启用swap设备会对系统的性能产生非常负面的影响,因此kubernetes要求每个节点都要禁用swap设备
[root@master ~]# cat /etc/fstab #注释掉下面 #/dev/mapper/centos_172-swap swap swap defaults 0 0
1.7、开启包转发功能和修改内核参数
内核参数修改:br_netfilter模块用于将桥接流量转发至iptables链,br_netfilter内核参数需要开启转发。
[root@master ~]# modprobe br_netfilter [root@master ~]# cat >/etc/sysctl.d/docker.conf <<EOF net.bridge.bridge-nf-call-ipv6tables=1 net.bridge.bridge-nf-call-ipvtables=1 net.ipv4.ip_forword=1 EOF # net.ipv4.ip_forward = 1: # 将Linux系统作为路由或者VPN服务就必须要开启IP转发功能。当linux主机有多个网卡时一个网卡收到的信息是否能够传递给其他的网卡 ,如果设置成1 的话 可以进行数据包转发,可以实现VxLAN 等功能。不开启会导致docker部署应用无法访问。
1.7.1 重新加载配置
[root@master ~]# sysctl -p /etc/sysctl.d/docker.conf
1.7.1 加载网桥过滤模块
[root@master ~]# modprobe br_netfilter
1.7.2 查看网桥模块
[root@master ~]# lsmod |grep br_netfilter
1 8 安装基础软件包
[root@master ~]# yum install -y wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack
二. 安装docker-ce
2.1 配置docker-ce国内yum源(阿里云)
[root@master ~]# yum install -y yum-utils [root@master ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.2 安装docker依赖包
[root@master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
2.3 安装docker-ce
[root@master ~]# yum install docker-ce -y
2.4 启动docker
[root@master ~]# systemctl start docker && systemctl enable docker [root@master ~]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since 五 2023-01-13 18:14:15 CST; 47min ago Docs: https://docs.docker.com
看到running,表示docker正常运行
2.5 查看docker版本
[root@master ~]# docker version
2.6 配置docker镜像加速器
登陆阿里云镜像仓库 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 如果没有开通,可开通阿里云的镜像服务 修改修改/etc/docker/daemon.json [root@master ~]# mkdir /etc/docker [root@master ~]# cat >/etc/docker/daemon.json<<EOF { "registry-mirrors": ["https://dbxvt5s3.mirror.aliyuncs.com","https://registry.docker-cn.com"] } EOF
2.7 让配置生效
[root@master ~]# systemctl daemon-reload [root@master ~]# systemctl restart docker
2.8 docker Hub 镜像加速器列表
Docker 中国官方镜像 DaoCloud 镜像站 Azure 中国镜像 科大镜像站 阿里云 https://<your code>.mirror.aliyun.com 七牛云 网易云 腾讯云 以上操作三台机器都执行
三. docker swarm
Docker Swarm是Docker的本机集群和编排解决方案,它包含在Docker Engine中,所以在安装Docker后,就已经有了
3.1 初始化swarm管理节点
[root@master ~]# docker swarm init #初始化一个新的swarm,并且当前的机器变为swarm manager
3.2 集群加入工作节点
在node1和node2的Docker主机上,执行以下命令来将它们作为worker节点加入到swarm中:
[root@node1 ~]# docker swarm join --token <token> <manager-ip>:2377 [root@node2 ~]# docker swarm join --token <token> <manager-ip>:2377 注: 这里的 <token> 是在初始化swarm时,docker swarm init 命令的输出中提供的。<manager-ip> 是swarm manager的IP地址。 你可以在manager节点上运行 docker swarm join-token worker 来获取加入swarm所需的完整命令和token。
3.3 查看集群节点
#在master机器执行,来查看swarm的状态和节点列表 [root@master ~]# docker node ls
3.4 docker swarm的基本操作
- 创建服务
[root@master ~]# docker service create --name my-nginx --replicas 3 nginx #这会在Swarm中创建一个新的服务,并保证在任何时候都至少有三个Nginx容器在运行
- 列出服务
[root@master ~]# docker service ls
- 查看服务详情
[root@master ~]# docker service inspect --pretty my-nginx
- 扩展服务
#增加服务的副本数量 docker service scale my-nginx=5
- 更新服务的配置
#如更改容器镜像 [root@master ~]# docker service update --image nginx:1.17.8 my-nginx
- 删除服务
[root@master ~]# docker service rm my-nginx
docker swarm将自动处理服务的调度和负载均衡,无需手动配置