某云ace 2.3平台部署
需要环境
- 一台数据库机器
- 一台ake机器,也就是部署机
- 三台master
- 三台global
- 三台es
注: 所有主机都需要单独挂载一块数据盘
环境准备
- 将所有主机启动
- 创建一个外网clb
- 在clb上进行绑定,32001-32006(挂载三台master)、3306(挂载mysql主机)端口
注:此文档安装docker为1.12.6,使用devicemapper存储
部署mysql
安装docker及docker-compose
yum -y install docker docker-compose
编辑mysql yaml文件
vim mysql-master.yaml version: '2' services: mysql: network_mode: "bridge" ports: - "3306:3306" container_name: mysql-master image: mysql environment: MYSQL_ROOT_PASSWORD: "xxxx" ### 密码自行修改 image: index.alauda.cn/alaudaorg/mysql-master:latest ###### 注意此处images镜像的仓库地址需要更换,更换私有环境的镜像仓库IP privileged: true restart: always volumes: - /alauda/data/mysql/db:/var/lib/mysql
登录镜像仓库
index.alauda.cn
docker login index.alauda.cn
执行yaml文件,启动数据库
docker-compose -f mysql-master.yaml up -d
进入数据库修改内容
docker exec -it mysql-master bash mysql -u root -psgOnxrI9WN638Hj8; grant replication slave on *.* to 'master'@'%' identified by 'sgOnxrI9WN638Hj8'; flush privileges; show master status; +-------------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +-------------------------+----------+--------------+------------------+-------------------+ | mysql-master-bin.000003 | 455 | | | | +-------------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec)
配置安装
注:建议单独挂一块大于100G的磁盘
下载安装包
scp alauda@xxxxxxx:/mnt/package/ALAUDA-release/ACE_2.3-1xxxxxx.tar.gz <你的安装包目录> 密码: xxxxx md5sum:xxxx 文件大小: xxx
所有主机配置hostname及hosts文件,并安装jq sshpass命令(建议使用ansible)
所有主机将单独的磁盘配置成lvm
进入数据目录
/data/mnt/package/ace/ace_xxxxxx
编写server_list.json
文件修改所有主机内核参数:
echo "vm.max_map_count=262144" >> /etc/sysctl.conf;sysctl -p
执行
up-alaudaace.sh
脚本开始安装./up-alaudaee.sh --network-interface=eth0 --kube_controlplane_endpoint clb-ip --alaudaee-domain-name clb-ip --db-info='DB_HOST=clb-ip;DB_PORT=3306;DB_USER=root;DB_PASSWORD=sgOnxrI9WN638Hj8;DB_ENGINE=mysql' --debug >注:命令中的用户名及密码可能需要修改,需要改成上边yaml里的 以下为相关参数 --network-interface 用来指定网卡 --alaudaee-domain-name global 的域名或者IP,具体解释请看白皮书 --kube_controlplane_endpoint k8s api lb 的地址,k8s api 的 vip 配置到这个 lb 上,具体解释请看白皮书 --db-info 数据库信息,其中DB_HOST、DB_PORT、DB_USER、DB_PASSWORD分别是数据库地址、端口、用户名和密码。DB_ENGINE是数据库类型,只有postgreql、mysql 两种 --master-is-node 可选参数,如果规划角色的时候,选择 k8s 集群的 master 也作为计算节点,就需要加上这个参数 --debug 可选参数,加上之后,ake 部署 k8s 集群的时候,会输出更多的信息,方便排除错误 --not-deploy-k8s 可选参数,不部署 k8s 集群,server_list.json 中记录的服务器,就是已经部署成功的 k8s 集群的所有服务器
访问web
ace
http://<–alaudaee-domain-name 参数指定的地址>:32005
账号/密码:alauda/alauda
acp
https://<–kube_controlplane_endpoint 参数指定的地址>
账号/密码:admin@alauda.io/password
常见问题
在快启动完成时会有两个Pod一直启动失败,需要手动删除
[root@xuejian-ace-update-m1 ~]# kubectl get deploy --all-namespaces | grep jaeger alauda-system jaeger-collector 1 1 1 0 21m alauda-system jaeger-query 1 1 1 0 21m 编辑deploy里的replicas参数,设置为0 [root@xuejian-ace-update-m1 ~]# kubectl edit deploy -n alauda-system jaeger-collector
k8s安装完成后,在执行helm时会报错
在所有node上执行clear-all.sh脚本,重新运行脚本
upload chart 出错
找到chart-repo 容器挂载的卷,将权限改成777 即可,挂载的目录一般是安装目录下的ACP/chartmuseum ,执行 cat /alauda/.run_chart_repo.sh 可以看到具体的目录
若没有system项目,或未接入集群信息
在 jakiro 容器中手动运行:
curl --request POST \ --url http://127.0.0.1/v1/project-templates/<org_name>/ \ --header 'authorization: Token <token>' \ --header 'content-type: application/json' \ --data '{ "name": "empty-template", "resource_actions": [ "project_template:create", "project_template:delete", "project_template:view" ], "resources": [ ], "roles": [ ] } '
注:
<org_name>
:根账号名称<token>
:根账号token,在用户中心页面查看建议删掉jakiro 的数据库,重新给jakiro 做migrate 重新添加跟用户,重新对接ACE 集群。如果对上述操作不熟悉,也可以清空环境重新部署
获取集群secret
kubectl get secret -n kube-system | awk '/^clusterrole-aggregation-controller-token/{print $1}'
获取集群token并记录
kubectl get secret -n kube-system 集群secret -o jsonpath='{.data.token}' | base64 -d
删除数据库
DROP DATABASE jakirodb;
创建数据库
create database jakirodb;
数据库初始化,进入jakiro容器执行
python manage.py makemigrations python manage.py migrate
创建根用户
curl -X POST \ -H 'Content-Type:application/json' \ -d '{ "username":"'alauda'", "password":"alauda", "realname":"alauda", "email":"alauda@alauda.io", "reference_code_id":"cn", "city":"beijing", "company":"alauda", "is_active": true, "informed_way":"others", "industry":"others", "mobile":"123123123123", "position":"beijing", "currency":"CNY" }' http://api-server:32001/v1/auth/register/
接入集群
点击平台的接入集群按钮
填写集群地址 (f5的地址或者alb的地址)
填写集群token (第二步获取的token)