当前位置:   article > 正文

使用镜像搭建nacos集群_nacos 安装包打镜像

nacos 安装包打镜像

安装并配置 docker

1 先安装docker

  1. //1.查看操作系统的发行版号
  2. uname -r
  3. //2.安装依赖软件包
  4. yum install -y yum-utils device-mapper-persistent-data lvm2
  5. //3.设置yum镜像源
  6. //官方源(慢)
  7. yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
  8. //阿里源
  9. yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  10. //清华大学源
  11. yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
  12. //4.查看docker版本
  13. yum list docker-ce --showduplicates | sort -r
  14. //5.默认安装最新版本
  15. yum -y install docker-ce

2 进去/etc/docker目录修改deamon.json 文件

如果有deamon.json文件则直接添加,没有的话创建一个

在文件中添加如下内容退出保存

  1. {
  2. "registry-mirrors": ["https://rsmi26wc.mirror.aliyuncs.com"]
  3. }

3 启动docker 并拉去镜像

  1. sudo systemctl status docker
  2. docker pull docker.io/nacos/nacos-server

配置MYSQL

1 建立一个存储nocas中数据的数据库

并运行以下脚本

  1. --新建nacos_config数据库&&导入Nacos的sql文件
  2. SET NAMES utf8mb4;
  3. SET FOREIGN_KEY_CHECKS = 0;
  4. -- ----------------------------
  5. -- Table structure for config_info
  6. -- ----------------------------
  7. DROP TABLE IF EXISTS `config_info`;
  8. CREATE TABLE `config_info` (
  9. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  10. `data_id` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'data_id',
  11. `group_id` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  12. `content` longtext COLLATE utf8_bin NOT NULL COMMENT 'content',
  13. `md5` varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT 'md5',
  14. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  15. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  16. `src_user` text COLLATE utf8_bin COMMENT 'source user',
  17. `src_ip` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT 'source ip',
  18. `app_name` varchar(128) COLLATE utf8_bin DEFAULT NULL,
  19. `tenant_id` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT '租户字段',
  20. `c_desc` varchar(256) COLLATE utf8_bin DEFAULT NULL,
  21. `c_use` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  22. `effect` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  23. `type` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  24. `c_schema` text COLLATE utf8_bin,
  25. PRIMARY KEY (`id`),
  26. UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
  27. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';
  28. -- ----------------------------
  29. -- Table structure for config_info_aggr
  30. -- ----------------------------
  31. DROP TABLE IF EXISTS `config_info_aggr`;
  32. CREATE TABLE `config_info_aggr` (
  33. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  34. `data_id` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'data_id',
  35. `group_id` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'group_id',
  36. `datum_id` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'datum_id',
  37. `content` longtext COLLATE utf8_bin NOT NULL COMMENT '内容',
  38. `gmt_modified` datetime NOT NULL COMMENT '修改时间',
  39. `app_name` varchar(128) COLLATE utf8_bin DEFAULT NULL,
  40. `tenant_id` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT '租户字段',
  41. PRIMARY KEY (`id`),
  42. UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
  43. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';
  44. -- ----------------------------
  45. -- Table structure for config_info_beta
  46. -- ----------------------------
  47. DROP TABLE IF EXISTS `config_info_beta`;
  48. CREATE TABLE `config_info_beta` (
  49. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  50. `data_id` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'data_id',
  51. `group_id` varchar(128) COLLATE utf8_bin NOT NULL COMMENT 'group_id',
  52. `app_name` varchar(128) COLLATE utf8_bin DEFAULT NULL COMMENT 'app_name',
  53. `content` longtext COLLATE utf8_bin NOT NULL COMMENT 'content',
  54. `beta_ips` varchar(1024) COLLATE utf8_bin DEFAULT NULL COMMENT 'betaIps',
  55. `md5` varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT 'md5',
  56. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  57. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  58. `src_user` text COLLATE utf8_bin COMMENT 'source user',
  59. `src_ip` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT 'source ip',
  60. `tenant_id` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT '租户字段',
  61. PRIMARY KEY (`id`),
  62. UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
  63. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';
  64. -- ----------------------------
  65. -- Table structure for config_info_tag
  66. -- ----------------------------
  67. DROP TABLE IF EXISTS `config_info_tag`;
  68. CREATE TABLE `config_info_tag` (
  69. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  70. `data_id` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'data_id',
  71. `group_id` varchar(128) COLLATE utf8_bin NOT NULL COMMENT 'group_id',
  72. `tenant_id` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_id',
  73. `tag_id` varchar(128) COLLATE utf8_bin NOT NULL COMMENT 'tag_id',
  74. `app_name` varchar(128) COLLATE utf8_bin DEFAULT NULL COMMENT 'app_name',
  75. `content` longtext COLLATE utf8_bin NOT NULL COMMENT 'content',
  76. `md5` varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT 'md5',
  77. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  78. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  79. `src_user` text COLLATE utf8_bin COMMENT 'source user',
  80. `src_ip` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT 'source ip',
  81. PRIMARY KEY (`id`),
  82. UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
  83. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';
  84. -- ----------------------------
  85. -- Table structure for config_tags_relation
  86. -- ----------------------------
  87. DROP TABLE IF EXISTS `config_tags_relation`;
  88. CREATE TABLE `config_tags_relation` (
  89. `id` bigint(20) NOT NULL COMMENT 'id',
  90. `tag_name` varchar(128) COLLATE utf8_bin NOT NULL COMMENT 'tag_name',
  91. `tag_type` varchar(64) COLLATE utf8_bin DEFAULT NULL COMMENT 'tag_type',
  92. `data_id` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'data_id',
  93. `group_id` varchar(128) COLLATE utf8_bin NOT NULL COMMENT 'group_id',
  94. `tenant_id` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_id',
  95. `nid` bigint(20) NOT NULL AUTO_INCREMENT,
  96. PRIMARY KEY (`nid`),
  97. UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
  98. KEY `idx_tenant_id` (`tenant_id`)
  99. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';
  100. -- ----------------------------
  101. -- Table structure for group_capacity
  102. -- ----------------------------
  103. DROP TABLE IF EXISTS `group_capacity`;
  104. CREATE TABLE `group_capacity` (
  105. `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  106. `group_id` varchar(128) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
  107. `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  108. `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  109. `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  110. `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
  111. `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  112. `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  113. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  114. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  115. PRIMARY KEY (`id`),
  116. UNIQUE KEY `uk_group_id` (`group_id`)
  117. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';
  118. -- ----------------------------
  119. -- Table structure for his_config_info
  120. -- ----------------------------
  121. DROP TABLE IF EXISTS `his_config_info`;
  122. CREATE TABLE `his_config_info` (
  123. `id` bigint(64) unsigned NOT NULL,
  124. `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  125. `data_id` varchar(255) COLLATE utf8_bin NOT NULL,
  126. `group_id` varchar(128) COLLATE utf8_bin NOT NULL,
  127. `app_name` varchar(128) COLLATE utf8_bin DEFAULT NULL COMMENT 'app_name',
  128. `content` longtext COLLATE utf8_bin NOT NULL,
  129. `md5` varchar(32) COLLATE utf8_bin DEFAULT NULL,
  130. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  131. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  132. `src_user` text COLLATE utf8_bin,
  133. `src_ip` varchar(50) COLLATE utf8_bin DEFAULT NULL,
  134. `op_type` char(10) COLLATE utf8_bin DEFAULT NULL,
  135. `tenant_id` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT '租户字段',
  136. PRIMARY KEY (`nid`),
  137. KEY `idx_gmt_create` (`gmt_create`),
  138. KEY `idx_gmt_modified` (`gmt_modified`),
  139. KEY `idx_did` (`data_id`)
  140. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';
  141. -- ----------------------------
  142. -- Table structure for permissions
  143. -- ----------------------------
  144. DROP TABLE IF EXISTS `permissions`;
  145. CREATE TABLE `permissions` (
  146. `role` varchar(50) NOT NULL,
  147. `resource` varchar(255) NOT NULL,
  148. `action` varchar(8) NOT NULL,
  149. UNIQUE KEY `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
  150. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  151. -- ----------------------------
  152. -- Table structure for roles
  153. -- ----------------------------
  154. DROP TABLE IF EXISTS `roles`;
  155. CREATE TABLE `roles` (
  156. `username` varchar(50) NOT NULL,
  157. `role` varchar(50) NOT NULL,
  158. UNIQUE KEY `idx_user_role` (`username`,`role`) USING BTREE
  159. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  160. -- ----------------------------
  161. -- Records of roles
  162. -- ----------------------------
  163. BEGIN;
  164. INSERT INTO `roles` VALUES ('nacos', 'ROLE_ADMIN');
  165. COMMIT;
  166. -- ----------------------------
  167. -- Table structure for tenant_capacity
  168. -- ----------------------------
  169. DROP TABLE IF EXISTS `tenant_capacity`;
  170. CREATE TABLE `tenant_capacity` (
  171. `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  172. `tenant_id` varchar(128) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Tenant ID',
  173. `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  174. `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  175. `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  176. `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
  177. `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  178. `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  179. `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  180. `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  181. PRIMARY KEY (`id`),
  182. UNIQUE KEY `uk_tenant_id` (`tenant_id`)
  183. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';
  184. -- ----------------------------
  185. -- Table structure for tenant_info
  186. -- ----------------------------
  187. DROP TABLE IF EXISTS `tenant_info`;
  188. CREATE TABLE `tenant_info` (
  189. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  190. `kp` varchar(128) COLLATE utf8_bin NOT NULL COMMENT 'kp',
  191. `tenant_id` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_id',
  192. `tenant_name` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_name',
  193. `tenant_desc` varchar(256) COLLATE utf8_bin DEFAULT NULL COMMENT 'tenant_desc',
  194. `create_source` varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT 'create_source',
  195. `gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
  196. `gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
  197. PRIMARY KEY (`id`),
  198. UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
  199. KEY `idx_tenant_id` (`tenant_id`)
  200. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';
  201. -- ----------------------------
  202. -- Table structure for users
  203. -- ----------------------------
  204. DROP TABLE IF EXISTS `users`;
  205. CREATE TABLE `users` (
  206. `username` varchar(50) NOT NULL,
  207. `password` varchar(500) NOT NULL,
  208. `enabled` tinyint(1) NOT NULL,
  209. PRIMARY KEY (`username`)
  210. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  211. -- ----------------------------
  212. -- Records of users
  213. -- ----------------------------
  214. BEGIN;
  215. INSERT INTO `users` VALUES ('guest', '$2a$10$rzfTPB0UkikQlU/M0tQkS.gu5hKki6Adu4AOOC8lZpS5un0JTLF2W', 1);
  216. INSERT INTO `users` VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', 1);
  217. COMMIT;
  218. SET FOREIGN_KEY_CHECKS = 1;

启动nacos

在要启动nacos 的机器上运行以下命令 这里的数据库地址是测试库的地址

  1. docker run -itd -e PREFER_HOST_MODE=ip \
  2. -e MODE=cluster \
  3. -e NACOS_SERVERS="192.168.0.9:8848 192.168.0.10:8848" \
  4. -e SPRING_DATASOURCE_PLATFORM=mysql \
  5. -e MYSQL_SERVICE_HOST=xx.xx.xxx.xxx \
  6. -e MYSQL_SERVICE_PORT=3306 \
  7. -e MYSQL_SERVICE_DB_NAME=nacos-config \
  8. -e MYSQL_SERVICE_USER=yyyyy \
  9. -e MYSQL_SERVICE_PASSWORD=yyyyy \
  10. --network host \
  11. --name nacos1 \
  12. --restart=always \
  13. -d bdf60dc2ada3

以下是各个参数的解释:

  • -itd:使用交互式终端模式(-it)运行容器,并将其作为后台守护进程(-d)运行。
  • -e PREFER_HOST_MODE=ip:设置Nacos Server的主机模式为IP地址模式,使其能够在集群中正确通信。
  • -e MODE=cluster:将Nacos Server的模式设置为集群模式。
  • -e NACOS_SERVERS="192.168.32.128:8848 192.168.32.129:8848":设置Nacos Server集群中其他节点的地址。
  • -e SPRING_DATASOURCE_PLATFORM=mysql:设置Nacos Server使用MySQL作为数据存储库。
  • -e MYSQL_SERVICE_HOST=你的数据库ip地址:设置MySQL数据库的主机地址。
  • -e MYSQL_SERVICE_PORT=3306:设置MySQL数据库的端口号。
  • -e MYSQL_SERVICE_DB_NAME=nacos_conf:设置Nacos Server使用的数据库名称。
  • -e MYSQL_SERVICE_USER=nacos_conf:设置Nacos Server在MySQL中使用的用户名。
  • -e MYSQL_SERVICE_PASSWORD=adminadmin:设置Nacos Server在MySQL中使用的密码。
  • --network host:将容器的网络模式设置为主机模式,使其能够直接使用主机的网络接口。
  • --name nacos-128:设置容器的名称为nacos-128。
  • --restart=always:将容器的重启策略设置为自动重启。
  • -d bdf60dc2ada3:使用镜像bdf60dc2ada3启动容器并作为后台守护进程运行。

通过 docker logs xxx (这里xxx填写容器id)查看nacos是否成功启动

成功启动最后会有这一行日志

2023-07-28 18:48:33,135 INFO Nacos started successfully in cluster mode. use external storage

打开ip:8848/nacos 可以看到

配置Nginx代理各个nacos

需要使用nginx 代理nacos 是为了保证访问的每一天nacos的请求数是相当的

 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号