1.前置条件:
需要电脑有helm kubectl
如果没有的话需要安装环境
2.需要拉取canal-server和canal-admin镜像
拉取镜像的时候可能存在拉取不下来的情况,需要配置:
/etc/docker/daemon.json
{"registry-mirrors": ["https://dockerhub.woa.com","https://ajquhi4u.mirror.aliyuncs.com"]"data-root": "/data/docker/lib/"
}
如果自己的机器连不上外网,有一种办法:
在有外网的机器下载镜像
docker pull canal/canal-admin
docker pull canal/canal-server
之后保存成tar文件:
docker save -o canal-server.tar.gz canal/canal-server:latest
然后把tar文件上传到目标机器,可以加载镜像:
docker load -i canal-admin.tar.gz
之后push到自己的仓库
docker tag canal/canal-admin:latest xxx.com/registry/canal-admin:lateset
docker push xxx.com/registry/canal-server:lateset
然后在canal-admin的配置文件中记得修改镜像:
改成自己刚刚tag的镜像名
这里如果没有zk集群,在部署canal-server的时候要去掉这个集群配置:
把这个default删掉,留空即可
记得创建数据表:
DROP TABLE IF EXISTS `canal_adapter_config`;
CREATE TABLE `canal_adapter_config` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`category` varchar(255) NOT NULL,`name` varchar(255) NOT NULL,`status` varchar(45) DEFAULT NULL,`content` text NOT NULL,`modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for canal_cluster
-- ----------------------------
DROP TABLE IF EXISTS `canal_cluster`;
CREATE TABLE `canal_cluster` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`name` varchar(255) NOT NULL,`zk_hosts` varchar(255) NOT NULL,`modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for canal_config
-- ----------------------------
DROP TABLE IF EXISTS `canal_config`;
CREATE TABLE `canal_config` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`cluster_id` bigint(20) DEFAULT NULL,`server_id` bigint(20) DEFAULT NULL,`name` varchar(255) NOT NULL,`status` varchar(45) DEFAULT NULL,`content` text NOT NULL,`content_md5` varchar(128) NOT NULL,`modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`),UNIQUE KEY `sid_UNIQUE` (`server_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for canal_instance_config
-- ----------------------------
DROP TABLE IF EXISTS `canal_instance_config`;
CREATE TABLE `canal_instance_config` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`cluster_id` bigint(20) DEFAULT NULL,`server_id` bigint(20) DEFAULT NULL,`name` varchar(255) NOT NULL,`status` varchar(45) DEFAULT NULL,`content` text NOT NULL,`content_md5` varchar(128) DEFAULT NULL,`modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`),UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for canal_node_server
-- ----------------------------
DROP TABLE IF EXISTS `canal_node_server`;
CREATE TABLE `canal_node_server` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`cluster_id` bigint(20) DEFAULT NULL,`name` varchar(255) NOT NULL,`ip` varchar(255) NOT NULL,`admin_port` int(11) DEFAULT NULL,`tcp_port` int(11) DEFAULT NULL,`metric_port` int(11) DEFAULT NULL,`status` varchar(45) DEFAULT NULL,`modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Table structure for canal_user
-- ----------------------------
DROP TABLE IF EXISTS `canal_user`;
CREATE TABLE `canal_user` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`username` varchar(255) NOT NULL,`password` varchar(255) NOT NULL,`name` varchar(255) NOT NULL,`roles` varchar(255) NOT NULL,`introduction` varchar(255) DEFAULT NULL,`avatar` varchar(255) DEFAULT NULL,`creation_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;SET FOREIGN_KEY_CHECKS = 1;-- ----------------------------
-- Records of canal_user
-- ----------------------------
BEGIN;
INSERT INTO `canal_user` VALUES (1, 'admin', '6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9', 'Canal Manager', 'admin', NULL, NULL, '2019-07-14 00:05:28');
COMMIT;SET FOREIGN_KEY_CHECKS = 1;
这里插入的user其实密码就是123456,页面上登录时用的123456就是这里来的
因为当前admin的密码是123456(上面用了密文)
所以在server里面也要同步配置密码:
把密码改成上面的6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
然后执行命令:
helm install canal-admin -f ./admin-values.yaml ./canal-admin
helm install canal-server -f ./server-values.yaml ./canal-server
成功以后可以看到pod:
同时页面上也可以看到canal-server: