Skip to content

Commit 2dda3d8

Browse files
committed
m
1 parent b56e52d commit 2dda3d8

File tree

8 files changed

+934
-6
lines changed

8 files changed

+934
-6
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
2+
3+
4+
master 192.168.0.5
5+
6+
apigatway 192.168.0.7
7+
8+
node:192.168.0.9
9+
10+
node:192.168.0.11
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
#把环境变量统一起来
2+
#该token只生成一次即保存起来,每次生成的都不一样的
3+
export BOOTSTRAP_TOKEN=$(head -c 16 /dev/urandom | od -An -t x | tr -d ' ')
4+
5+
cp /etc/profile /etc/profile2
6+
7+
cat >>/etc/profile <<EOF
8+
export BOOTSTRAP_TOKEN="$BOOTSTRAP_TOKEN"
9+
EOF
10+
11+
cat /etc/profile
12+
cp /etc/profile2 /etc/profile
13+
cp /etc/profile /etc/profile1
14+
15+
16+
17+
#可以多次运行
18+
19+
20+
#如"10.1.12.21 10.1.12.22 10.1.12.23"
21+
NODE_ETCD_IPS="10.1.12.21"
22+
# etcd 集群服务地址列表
23+
#export ETCD_ENDPOINTS="https://${MASTER_IP1}:2379"
24+
#"https://10.1.11.120:2379,https://10.1.11.121:2379,https://10.1.11.122:2379"
25+
ETCD_ENDPOINTS=""
26+
i=0
27+
for ip in $NODE_ETCD_IPS ;do
28+
if [ $i -eq 0 ]; then
29+
ETCD_ENDPOINTS="https://$ip:2379"
30+
else
31+
ETCD_ENDPOINTS="$ETCD_ENDPOINTS,https://$ip:2379"
32+
fi
33+
let i++
34+
done
35+
36+
#export MASTER_IP=10.1.11.123 # 替换为 kubernetes maste 集群任一机器 IP 之后换成VIP
37+
NODE_MASTER_VIP="10.1.12.21"
38+
39+
40+
NODE_MASTER_IPS="10.1.12.21"
41+
NODE_MASTER_NAMES="master"
42+
43+
NODE_NODE_IPS="10.1.12.21 10.1.12.22 10.1.12.23 10.1.12.24 10.1.12.25 10.1.12.26 10.1.12.27 10.1.12.28 10.1.12.29"
44+
NODE_NODE_NAMES="master node2 node3 node4 node5 node6 node7 node8 node9"
45+
46+
#多个以空格分隔
47+
ZONE_MASTER_IPS="10.1.12.21"
48+
ZONE_SYS_IPS="10.1.12.22"
49+
ZONE_GW_IPS="10.1.12.23 10.1.12.24"
50+
ZONE_MS_IPS="10.1.12.22 10.1.12.23 10.1.12.24 10.1.12.25 10.1.12.26 10.1.12.27 10.1.12.28 10.1.12.29"
51+
52+
ZONE_MONGODB_IPS="10.1.12.27 10.1.12.28 10.1.12.29"
53+
ZONE_CONSUL_IPS="10.1.12.27 10.1.12.28 10.1.12.29"
54+
ZONE_REDIS_IPS="10.1.12.27 10.1.12.28 10.1.12.29"
55+
56+
57+
58+
cp /etc/profile1 /etc/profile
59+
60+
cat >>/etc/profile <<EOF
61+
#管理节点的IP
62+
export NODE_ADMIN_IP="10.1.12.20"
63+
#文件服务器的IP
64+
export FILE_SERVER_IP="10.1.12.20"
65+
#模板的IP和初始密码
66+
export TEMPLATE_NODE_IP="10.1.12.129"
67+
export TEMPLATE_NODE_PWD="root@123"
68+
69+
# k8s Master的IP和名称,如"10.1.12.21 10.1.12.22 10.1.12.23"
70+
# 或" master01 master02 master03"
71+
export NODE_MASTER_IPS="${NODE_MASTER_IPS}"
72+
export NODE_MASTER_NAMES="${NODE_MASTER_NAMES}"
73+
74+
export NODE_NODE_IPS="${NODE_NODE_IPS}"
75+
export NODE_NODE_NAMES="${NODE_NODE_NAMES}"
76+
77+
#没有建立vip之前,采用了多master的ip中一个,一般用第一个
78+
export NODE_MASTER_VIP="${NODE_MASTER_VIP}"
79+
#访问master的地址
80+
export KUBE_APISERVER="https://${NODE_MASTER_VIP}:6443"
81+
82+
#k8s ETCD的IP和名称,如"10.1.12.21 10.1.12.22 10.1.12.23"
83+
# 或" master01 master02 master03"
84+
export NODE_ETCD_IPS="${NODE_ETCD_IPS}"
85+
export NODE_ETCD_NAMES="master01"
86+
export ETCD_ENDPOINTS="${ETCD_ENDPOINTS}"
87+
88+
#从文件服务器下载的etcd文件tar.gz的名称,后缀一定以tar.gz为尾
89+
export ETCD_TAR_GZ_NAME=etcd-v3.1.6-linux-amd64
90+
#k8s在文件服务器上下载的目录
91+
export KUBE_VERSION="1.7.6"
92+
93+
# 服务网段 (Service CIDR),部署前路由不可达,部署后集群内使用IP:Port可达
94+
export SERVICE_CIDR="192.169.0.0/16"
95+
# POD 网段 (Cluster CIDR),部署前路由不可达,**部署后**路由可达(flanneld保证)
96+
export CLUSTER_CIDR="172.16.0.0/12"
97+
# kubernetes 服务 IP (一般是 SERVICE_CIDR 中第一个IP)
98+
export CLUSTER_KUBERNETES_SVC_IP="192.169.0.1"
99+
# 集群 DNS 服务 IP (从 SERVICE_CIDR 中预分配)
100+
export CLUSTER_DNS_SVC_IP="192.169.0.2"
101+
# 集群 DNS 域名
102+
export CLUSTER_DNS_DOMAIN="cluster.local."
103+
104+
105+
export ZONE_MASTER_IPS="${ZONE_MASTER_IPS}"
106+
export ZONE_SYS_IPS="${ZONE_SYS_IPS}"
107+
export ZONE_GW_IPS="${ZONE_GW_IPS}"
108+
export ZONE_MS_IPS="${ZONE_MS_IPS}"
109+
110+
export ZONE_MONGODB_IPS="${ZONE_MONGODB_IPS}"
111+
export ZONE_CONSUL_IPS="${ZONE_CONSUL_IPS}"
112+
export ZONE_REDIS_IPS="${ZONE_REDIS_IPS}"
113+
114+
export DOCKER_LIBS="10.1.12.61:5000"
115+
export PATH=/usr/local/bin:$PATH
116+
EOF
117+
118+
echo -e "\033[32m ###########检测生成的内容########### \033[0m"
119+
cat /etc/profile
120+
echo -e "\033[32m ###########内容显示完成########### \033[0m"
121+
122+
source /etc/profile

05k8s(192.168.0.20)/aa.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

doc/08springboot-docker-mongodb.md

Lines changed: 211 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,211 @@
1-
# Spring boot+docker 半自动化部署(八)、mongodb的安装
1+
# Spring boot+docker 半自动化部署(八)、mongodb的安装
2+
3+
mongodb作为nosql的数据库,使用由火热变成平淡,nosql的数据库有它的优势,但是缺点也是很明显。使用nosql越来越理性,这次实验没有采用mysql,而是mongodb。
4+
mongodb作为集群的部署方式是比较简单的。这里采用三台机器的ReplicaSet进行部署。
5+
其实验的ip为:192.168.0.14 192.168.0.15 192.168.0.16
6+
7+
```
8+
NODE_IPS="192.168.0.14 192.168.0.15 192.168.0.16"
9+
NODE_NAME="mongodb01 mongodb02 mongodb03"
10+
```
11+
12+
## 创建 mongodb.service
13+
采用service的方式进行部署
14+
下面的代码没有什么好讲的,就是采用启动mongod,其配置采用指定文件/var/lib/mongodb/mongodb.conf
15+
16+
```
17+
mkdir -p /mongodbRelicaSet3/
18+
cd /mongodbRelicaSet3/
19+
cat > /mongodbRelicaSet3/mongodb.service <<EOF
20+
[Unit]
21+
Description=mongodb
22+
After=network.target remote-fs.target nss-lookup.target
23+
24+
[Service]
25+
Type=forking
26+
WorkingDirectory=/var/lib/mongodb
27+
ExecStart=/usr/local/bin/mongod \\
28+
--config=/var/lib/mongodb/mongodb.conf
29+
ExecReload=/bin/kill -s HUP $MAINPID
30+
ExecStop=/var/lib/mongodb --shutdown \\
31+
--config=/var/lib/mongodb/mongodb.conf
32+
PrivateTmp=true
33+
Restart=on-failure
34+
RestartSec=5
35+
36+
[Install]
37+
WantedBy=multi-user.target
38+
EOF
39+
40+
echo -e "\033[32m ############### mongodb.service ########### \033[0m"
41+
cat /mongodbRelicaSet3/mongodb.service
42+
echo -e "\033[32m ###########内容显示完成########### \033[0m"
43+
44+
sleep 5
45+
```
46+
47+
## 创建配置文件
48+
对于在三台物理机上部署,其配置文件可以是相同,如果在一台物理机上部署,其端口是动态的。这里则采用
49+
循环的方式分别创建配置文件
50+
51+
```
52+
for ip in $NODE_IPS ;do
53+
cat > /mongodbRelicaSet3/mongdbconf${ip##*.} <<EOF
54+
dbpath=/var/lib/mongodb/data/db/
55+
logpath=/var/lib/mongodb/data/log/mongodb.log
56+
logappend=true
57+
port=27017
58+
fork=true
59+
#nohttpinterface=true
60+
#auth=true
61+
#副本集名称,同一个副本集,名称必须一致
62+
replSet=mongodbRS
63+
64+
EOF
65+
66+
```
67+
这里需要注意的是其replSet的名称。在加入集群中需要该名称。
68+
69+
70+
## 创建执行脚本
71+
72+
执行脚本下载mongodb,解压,把相关执行文件放到/usr/local/bin/,之后启动mongodb的 service配置。
73+
74+
75+
```
76+
创建安装的shell
77+
cat > /mongodbRelicaSet3/install-client.sh <<EOF
78+
79+
echo " export PATH=/usr/local/bin:\$PATH " >> /etc/profile
80+
source /etc/profile
81+
82+
mkdir -p /mongodbRecilaSetWorking/
83+
cd /mongodbRecilaSetWorking/
84+
85+
wget http://${FILE_SERVER_IP}/mongodb-linux-x86_64-rhel70-3.4.4.tgz -q
86+
tar -zxvf mongodb-linux-x86_64-rhel70-3.4.4.tgz
87+
rm mongodb-linux-x86_64-rhel70-3.4.4.tgz
88+
cp -r /mongodbRecilaSetWorking/mongodb-linux-x86_64-rhel70-3.4.4/bin/* /usr/local/bin/
89+
chmod 777 /usr/local/bin/*
90+
91+
mkdir -p /var/lib/mongodb/
92+
93+
systemctl daemon-reload
94+
systemctl enable mongodb
95+
systemctl start mongodb
96+
systemctl status mongodb
97+
98+
sleep 3
99+
100+
EOF
101+
102+
```
103+
104+
## 安装
105+
安装时先清除所在机器已经安装的版本,然后把配置文件、service、conf文件都上传到各台机器上。最后执行安装脚本 进行安装
106+
107+
```
108+
109+
NODE_IPS="192.168.0.14 192.168.0.15 192.168.0.16"
110+
NODE_NAME="mongodb01 mongodb02 mongodb03"
111+
112+
clearScript="
113+
systemctl stop mongodb;
114+
systemctl disable mongodb;
115+
116+
rm -rf /mongodbRecilaSetWorking/;
117+
rm -rf /usr/local/bin/mongo*;
118+
rm -rf /usr/local/bin/bsondump;
119+
120+
rm -rf /var/lib/mongodb/install-client.sh;
121+
rm -rf /etc/systemd/system/mongodb.service;
122+
rm -rf /var/lib/mongodb/
123+
"
124+
125+
checkScript="
126+
echo -e \"\033[32m ############### /var/lib/mongodb/至少包括install-client.sh ########### \033[0m\"
127+
ls /var/lib/mongodb/install-client.sh
128+
echo -e \"\033[32m ###############内容显示完成########### \033[0m\"
129+
130+
echo -e \"\033[32m ############### /etc/systemd/system/至少包括mongodb.service ########### \033[0m\"
131+
ls /etc/systemd/system/mongodb.service
132+
echo -e \"\033[32m ###############内容显示完成########### \033[0m\"
133+
134+
echo -e \"\033[32m ############### /var/lib/mongodb/至少包括mongodb.conf ########### \033[0m\"
135+
ls /var/lib/mongodb/mongodb.conf
136+
cat /var/lib/mongodb/mongodb.conf
137+
echo -e \"\033[32m ###############内容显示完成########### \033[0m\"
138+
"
139+
140+
安装mongodb
141+
for ip in $NODE_IPS ;do
142+
echo "清除$ip中的mongodb安装的所有内容..."
143+
ssh root@$ip "$clearScript"
144+
145+
echo "安装$ip的mongodb..."
146+
ssh root@$ip "mkdir -p /mongodbRecilaSetWorking/; mkdir -p /var/lib/mongodb/data/db/;mkdir -p /var/lib/mongodb/data/log/"
147+
148+
scp /mongodbRelicaSet3/mongdbconf${ip##*.} root@$ip:/var/lib/mongodb/mongodb.conf
149+
scp /mongodbRelicaSet3/mongodb.service root@$ip:/etc/systemd/system/mongodb.service
150+
scp /mongodbRelicaSet3/install-client.sh root@$ip:/var/lib/mongodb/install-client.sh
151+
ssh root@$ip "chmod 777 /var/lib/mongodb/install-client.sh; /var/lib/mongodb/install-client.sh;"
152+
153+
ssh root@$ip "$checkScript"
154+
sleep 5
155+
156+
done
157+
158+
159+
```
160+
安装过程中可以看到服务active的标识,说明服务启动了。
161+
162+
## 安装集群
163+
164+
### 生成集群的脚本
165+
166+
```
167+
#--eval -eval都可以
168+
#rs.initiate({"_id" : "mongodbRS${ip##*.}", "members" : [{_id: ${i1}, host: "127.0.0.1:17017"}, {_id: 1, host: "xxxhost: 20002"}]})
169+
RS_CODES="mongo 127.0.0.1:27017/admin --eval \"rs.initiate({'_id' : 'mongodbRS', 'members' : ["
170+
i=0
171+
for ip in $NODE_IPS ;do
172+
if [ $i -eq 0 ]; then
173+
RS_CODES="${RS_CODES}{_id: ${i}, host: '${ip}:27017'}"
174+
else
175+
RS_CODES="$RS_CODES,{_id: ${i}, host: '${ip}:27017'}"
176+
fi
177+
let i++
178+
done
179+
180+
RS_CODES="${RS_CODES}]}) \""
181+
echo -e "\033[32m ###############建立集群的脚本########### \033[0m"
182+
echo "建立集群的脚本:${RS_CODES}"
183+
echo -e "\033[32m ###############内容显示完成########### \033[0m"
184+
185+
sleep 5
186+
187+
```
188+
189+
### 第一台机器上运行建集群脚本
190+
191+
```
192+
i=0
193+
for ip in $NODE_IPS ;do
194+
echo "建立集群$ip..."
195+
if [ $i -eq 0 ]; then
196+
ssh root@$ip "$RS_CODES"
197+
fi
198+
done
199+
sleep 10
200+
201+
202+
```
203+
204+
### 查看集群状态
205+
i=0
206+
for ip in $NODE_IPS ;do
207+
echo "集群status$ip..."
208+
ssh root@$ip "mongo 127.0.0.1:27017/admin -eval \" rs.status()\" "
209+
sleep 10
210+
done
211+

0 commit comments

Comments
 (0)