01.环境准备
echo "192.168.1.7 es1">> /etc/hosts
echo "192.168.1.9 es2">> /etc/hosts
echo "192.168.1.10 es3">> /etc/hosts
echo "192.168.1.11 es4">> /etc/hosts
2.配置网络环境,可以访问互联网
02.配置网络
cat >> /etc/sysconfig/network << EOF
NETWORKING=yes
EOF
03.DNS配置
echo "nameserver 192.168.1.1" > /etc/resolv.conf
ping 百度,能ping通表示可以访问互联网。
[root@oracle1 ~]# ping www.baidu.com
PING www.a.shifen.com (183.2.172.185) 56(84) bytes of data.
64 bytes from www.baidu.com (183.2.172.185): icmp_seq=1 ttl=53 time=30.6 ms
^C
--- www.a.shifen.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 30.666/30.666/30.666/0.000 ms
[root@oracle1 ~]#
[root@oracle1 ~]# ping www.baidu.com
PING www.a.shifen.com (183.2.172.42) 56(84) bytes of data.
64 bytes from www.baidu.com (183.2.172.42): icmp_seq=1 ttl=53 time=31.2 ms
64 bytes from www.baidu.com (183.2.172.42): icmp_seq=2 ttl=53 time=30.1 ms
64 bytes from www.baidu.com (183.2.172.42): icmp_seq=3 ttl=53 time=30.1 ms
64 bytes from www.baidu.com (183.2.172.42): icmp_seq=4 ttl=53 time=30.6 ms
64 bytes from www.baidu.com (183.2.172.42): icmp_seq=5 ttl=53 time=30.6 ms
64 bytes from www.baidu.com (183.2.172.42): icmp_seq=6 ttl=53 time=30.2 ms
64 bytes from www.baidu.com (183.2.172.42): icmp_seq=7 ttl=53 time=32.3 ms
^C
--- www.a.shifen.com ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6013ms
rtt min/avg/max/mdev = 30.160/30.773/32.327/0.756 ms
3.创建目录和安装依赖包
4.创建目录
mkdir -p /data/docker
mkdir -p /data/soft
5.安装依赖
mount /dev/cdrom /mnt
4.安装ipvsadm 转发服务
cat > /etc/modules-load.d/ipvs.conf <<EOF
EOF
--重启服务
systemctl restart systemd-modules-load.service
[root@oracle1 modules-load.d]# lsmod | grep -e ip_vs -e nf_conntrack
ip_vs_ftp 13079 0
ip_vs_sed 12519 0
ip_vs_nq 12516 0
ip_vs_sh 12688 0
ip_vs_wrr 12697 0
ip_vs_rr 12600 0
ip_vs_dh 12688 0
ip_vs_lblcr 12922 0
ip_vs_lblc 12819 0
ip_vs_wlc 12519 0
ip_vs_lc 12516 0
ip_vs 145458 23 ip_vs_dh,ip_vs_lc,ip_vs_nq,ip_vs_rr,ip_vs_sh,ip_vs_ftp,ip_vs_sed,ip_vs_wlc,ip_vs_wrr,ip_vs_lblcr,ip_vs_lblc
nf_nat 26583 3 ip_vs_ftp,nf_nat_ipv4,nf_nat_masquerade_ipv4
nf_conntrack_ipv4 15053 2
nf_defrag_ipv4 12729 1 nf_conntrack_ipv4
nf_conntrack 139264 6 ip_vs,nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4
libcrc32c 12644 4 xfs,ip_vs,nf_nat,nf_conntrack
5.配置免费,方便安装。
192.168.1.7
ssh-keygen -t rsa
ssh-copy-id 192.168.1.7
ssh-copy-id 192.168.1.9
ssh-copy-id 192.168.1.10
ssh-copy-id 192.168.1.11
[root@oracle1 ~]# ssh root@192.168.1.7
Last login: Tue Jul 2 11:27:34 2024 from win-20230813bkn
[root@oracle1 ~]# exit
logout
Connection to 192.168.1.7 closed.
[root@oracle1 ~]# ssh root@192.168.1.9
Last login: Tue Jul 2 11:27:12 2024 from win-20230813bkn
[root@es2 ~]# exit
logout
Connection to 192.168.1.9 closed.
[root@oracle1 ~]# ssh root@192.168.1.10
Last login: Tue Jul 2 11:27:53 2024 from win-20230813bkn
[root@es3 ~]# exit
logout
Connection to 192.168.1.10 closed.
[root@oracle1 ~]# ssh root@192.168.1.11
Last login: Tue Jul 2 11:27:59 2024 from win-20230813bkn
[root@es4 ~]# exit
logout
Connection to 192.168.1.11 closed.
6.时钟同步
--主节点
--/etc/chrony.conf
cp /etc/chrony.conf /etc/chrony.conf.bak
EOF
--=其他主机:
cp /etc/chrony.conf /etc/chrony.conf.bak
cat >> /etc/chrony.conf << EOF
EOF
[root@oracle1 ~]# chronyc sources -v
210 Number of sources = 4
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? time.cloudflare.com 0 9 0 - +0ns[ +0ns] +/- 0ns
^- ntp7.flashdance.cx 2 7 377 18 -13ms[ -13ms] +/- 132ms
^* 2402:f000:1:416:101:6:6:> 2 7 377 92 -1650us[-2062us] +/- 34ms
^- ntp1.flashdance.cx 2 7 377 87 -16ms[ -16ms] +/- 133ms
[root@es2 ~]# chronyc sources -v
210 Number of sources = 4
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^+ 124.65.131.109 4 7 37 115 +9510us[ +11ms] +/- 78ms
^+ 111.230.189.174 2 7 65 243 -7543us[-5966us] +/- 40ms
^? time.cloudflare.com 0 9 0 - +0ns[ +0ns] +/- 0ns
^* time.neu.edu.cn 1 6 377 59 +4722us[+6652us] +/- 34ms
^?:表示同步。
7.添加环境变量
echo "PATH=/data/docker/bin:\$PATH" >> ~/.bash_profile
echo "export NODE_IPS=(192.168.1.7 192.168.1.9 192.168.1.10 192.168.1.11)" >>~/.bash_profile
echo "export NODE_IPS2=(192.168.1.11)" >> ~/.bash_profile
echo "export DOCKER_DIR=/data/docker" >> ~/.bash_profile
8.安装docker
cd /data/soft
tar -xvf docker-20.10.16.tgz
*/
将安装包分发到:7/9/10/11四个节点。
9.安装docker-compose
cd /data/soft
source ~/.bash_profile
for node_node_ip in ${NODE_IPS[@]}
do
echo ">>> ${node_node_ip}"
scp /data/soft/docker-compose-linux-x86_64 root@${node_node_ip}:/data/docker/bin/docker-compose
ssh root@${node_node_ip} "chmod +x /data/docker/bin/*"
ssh root@${node_node_ip} "/data/docker/bin/docker-compose version"
done
10.查看docker的帮助命令
[root@oracle1 soft]# docker container
Usage: docker container COMMAND
Manage containers
Commands:
attach Attach local standard input, output, and error streams to a running container
commit Create a new image from a container's changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container's filesystem
exec Run a command in a running container
export Export a container's filesystem as a tar archive
inspect Display detailed information on one or more containers
kill Kill one or more running containers
logs Fetch the logs of a container
ls List containers
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
prune Remove all stopped containers
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
run Run a command in a new container
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
wait Block until one or more containers stop, then print their exit codes
Run 'docker container COMMAND --help' for more information on a command.