krrish vor 7 Jahren
Ursprung
Commit
379db1ee20

+ 18 - 0
05-常见问题处理FAQ/DNS 域名原理及失效处理.md

@@ -0,0 +1,18 @@
+ # 原理
+ 
+ - DNS 服务器:在外网搭建**PowerDNS**服务,提供名称解析服务,当然使用其它 DNS 服务器也可以,比如 Bind 等。最好有自带对外的增、删、改、查 接口服务,通过 http API 暴露接口,否则只能自己开发了。
+  - 在域名控制台中,手动设置 svi.pub 域名解析,指向为我们自建的**PowerDNS**服务。后续的二级域名,都会在我们自建的 DNS 服务器上生成或解析啦。 :)
+  - 云平台 "基础设施" 中,部署一个 "powerdns-external-dns" 基础服务(我们暂称之为`DNS 客户端`吧)。
+  - DNS 客户端每隔一段时间(可配置),从云平台的 MetaData 元数据( http://rancher-metadata/ )信息中,获取 服务名、应用名(栈名)、服务所在主机等信息。
+  -  DNS 客户端通过提前配置好的域名规则 (默认是 <服务名>.<栈名>.<环境名>.<svi.pub>)将数据进行组合为 http Post 信息。
+  - DNS 客户端通过**Insert_Or_Update**接口,向 DNS 服务器 的 http API Post 数据,进行二级域名的增、删、改、查 。
+
+![](images/_1531404886_28206.png)
+
+ # 问题处理
+ 
+ 目前基本碰到的问题,都是由于网络延时造成 api 提交数据失败。解决方案有以下几种:
+
+   - 重启下 powerdns-external-dns 服务(90%可以解决)
+   - 将 powerdns-external-dns 中的健康检测的"超时时间"适当增加(一般设置为 2-10 左右的值,网络越差值越大 )
+   - 优化下网络吧,目前线上暂时未发现有此问题 :-o

+ 2 - 0
05-常见问题处理FAQ/Jenkins 中常见失败的处理案例及常见日志路径.md

@@ -0,0 +1,2 @@
+# 1. 常见路径
+

+ 92 - 0
05-常见问题处理FAQ/云平台硬件、软件及安装配置.md

@@ -0,0 +1,92 @@
+# 1. 硬件要求
+
+> 以下是最低硬件配置要求,生产运行推荐使用更高配置
+
+| 服务器角色	| 数量 | CPU | 内存 | 磁盘 |  操作系统 | 安装软件 |
+| ---- | ---- | ---- | ---- | ---- | ---- | ---- |
+| 管理节点 |  1 |  2 核 |  2 G |  20 GB | Ubuntu 16.04 | Docker 17.03  | 
+| 容器节点 |  1 |  2 核 |  4 G |  40 GB | Ubuntu 16.04 | Docker 17.03  |
+
+
+# 2. 安装 Docker
+
+> 需要分别在 管理节点 和 容器节点 二台服务器上安装 Docker
+
+## 2.1. 下载离线包安装
+```bash
+wget https://download.docker.com/linux/ubuntu/dists/yakkety/pool/stable/amd64/docker-ce_17.03.2~ce-0~ubuntu-yakkety_amd64.deb
+apt install -y ./docker-ce_17.03.2~ce-0~ubuntu-yakkety_amd64.deb
+```
+
+## 2.2. 配置 Docker 加速器
+
+> 此配置用于国内加速,如服务器在国外可忽略
+
+vi /etc/docker/daemon.json(默认无此文件,需新建)
+
+```json
+{
+  "registry-mirrors": [
+     "https://2lqq34jg.mirror.aliyuncs.com",
+     "https://pee6w651.mirror.aliyuncs.com",
+     "https://registry.docker-cn.com",
+     "http://hub-mirror.c.163.com"
+  ]
+}
+```
+
+```sh
+systemctl restart docker
+```
+
+
+# 3. 安装云平台
+
+> 注意:以下安装步骤仅可用于测试环境,生产环境中需要做更多高可用性设置
+
+## 3.1. 单机安装 v.16
+
+```bash
+# 下载 rancher/server 镜像
+docker pull rancher/server
+
+# 单实例启动 ( 使用默认自带的数据库 )
+docker run -d --restart=always \
+-v /opt/svicloud/rancher/server_db:/var/lib/mysql \
+--name rancher-server \
+-p 8080:8080 \
+rancher/server
+```
+
+# 4. 设置云平台
+## 4.1. 登陆云平台
+
+> 上一步的安装命令输入后,需要等待 2 分钟左右安全才能完成。可在管理节点上运行 `docker logs -f rancher-server` 查看详细安装进度日志
+
+使用浏览器,打开 http://<RANCHER_SERVER>:8080,初始安装好后,不需要登陆。
+
+## 4.2. 设置认证
+
+![](images/_1531390696_26146.png)
+
+![](images/_1531390760_24658.png)
+
+## 4.3. 添加容器节点主机
+
+![](images/_1531390860_8924.png)
+
+![](images/_1531390916_32350.png)
+
+![](images/_1531390970_7976.png)
+
+![](images/_1531391026_3271.png)
+
+## 4.4. 容器节点的操作
+
+使用 ssh 连接工具,连接上容器节点,将 4.3 章节命令进行粘贴
+
+![](images/_1531391616_22057.png)
+
+等 5 - 10 分钟后,如下图菜单中出现 主机,即表示添加正常
+
+![](images/_1531391769_31922.png)

+ 102 - 0
05-常见问题处理FAQ/新建项目需要的操作及注意事项.md

@@ -0,0 +1,102 @@
+
+# 1. 新建 Git 仓库
+> Git 仓库用于存放 `编排文件代码`,它是 **描述应用部署架构的描述文件**,实际的应用代码是在 SVN 上的
+
+登陆 http://git.svicloud.com/ 新建一个编排文件项目,名称以 "catalog-" 开头(方便统一标识)。
+
+![](images/_1531396358_12959.png)
+
+设置项目人员权限:
+
+![](images/_1531396444_9446.png)
+
+![](images/_1531396554_23826.png)
+
+# 2. 新建镜像仓库
+
+> "镜像仓库" 提供容器镜像存储、下载(pull)及上传(push)功能。项目相当于最 "顶级目录",如镜像:registry.svicloud.com/tools/nginx:v0.1 就放在 registry.svicloud.com 这个仓库的 tools 项目中。
+
+登陆 http://registry.svicloud.com/ 根据需要决定是否新建一个镜像仓库项目。
+如果在`新的项目中,可以直接使用旧项目的镜像`,就不需要新建仓库项目;反之,则需要。
+
+![](images/_1531395639_16726.png)
+
+
+> 关于 镜像认证:镜像仓库采用 **JWT**(Json Web Token) 方式进行认证,云平台中存储镜像仓库认证信息,以避免每次拉取镜像都需要输入密码。
+
+云平台设置镜像仓库认证信息菜单如下:
+![](images/_1531401687_29366.png)
+
+![](images/_1531401985_16755.png)
+
+
+
+
+# 3. Jenkins 中网元配置变化
+
+将下图中的 "powercloud"  与上一步新建的 『镜像仓库项目』 中的 "项目名" 保持一致; 
+
+![](images/_1531395549_27498.png)
+
+![](images/_1531396076_22229.png)
+
+所有支持的部署参数,见下图。二个可选的参数说明如下:
+  - --git-branch="dev"  如果此项目中的编排文件,使用了 `Git 中的非 master 分支`,而是使用如 "dev"、"test" 之类的分支,需要指明分支名称。
+  - --compose_version=1  除了使用 --git-branch 来控制版本,编排文件自身也可以有 **多个不同的应用编排版本**(通常为 0 ,即只有一个编排版本,就不需要带上此参数),如果非 0,就要带上了。
+
+![](images/_1531399174_4005.png)
+
+![部署脚本所支持的所有参数](images/_1531398773_23987.png)
+
+# 4. 部署脚本的变化 
+
+部署文件负责将容器部署至指定的环境中,部署脚本主要功能为:
+  1. 从 Git 项目中拉取相对应的编排文件代码
+  2. 连接云平台,使用云平台提供的接口,将应用部署至对应的云平台环境中
+
+> 注意:上一步中调用到了 192.168.100.19 服务器上的 /opt/tools/deploy_latest.sh 这个部署脚本,如果是新项目,需做少量修改并另存为新的脚本,如 wms 项目的部署文件保存为 deploy_wms_latest.sh。
+如不熟悉此脚本,请联系管理员协助进行此操作。同时上一步的 "Exec command" 中,脚本名也需要修改。
+
+![](images/_1531397592_26041.png)
+
+
+# 5. 云平台新建环境
+
+![](images/_1531400932_17857.png)
+
+![](images/_1531400986_13256.png)
+
+![](images/_1531401082_24637.png)
+
+> 第 ① 处,请务必使用尽量短、简单的名称,不要带特殊字符,因为环境名会做为`外网域名`的一部分。 
+> 第 ② 处,使用 **Cattle** 做为默认的环境模板。
+> 第 ③ 处,如果此环境需要添加其它用户,可以添加用户并授予相应的权限(默认 admin 对所有环境有管理权限)。
+
+# 6. 增加 powerdns 基础服务
+云平台默认是没有**外网域名**的,只有**内网域名**。需要添加基础服务  `powerdns-external-dns` 
+
+![](images/_1531402563_6576.png)
+
+![](images/_1531402598_32460.png)
+
+![](images/_1531402632_5236.png)
+
+![](images/_1531402653_6451.png)
+
+![](images/_1531402700_15295.png)
+
+  ① :http://console.svicloud.com:8100/api/v1
+  ② :AKIAITPARJW7F4MWKSEA
+  ③ :svi.pub
+  ④ :299
+  ⑤ :启动......别着急,还没完 :(,继续向下看,我们还要将 PowerDNS 的镜像修改为我们自己做的镜像
+
+![](images/_1531402988_31730.png)
+
+![](images/_1531403015_21831.png)
+
+镜像 registry.svicloud.com/tools/rancher/external-dns:v1.0 修复了好多 BUG,官方的只支持 AWS 上的 Router53 服务!:)
+
+![](images/_1531403154_1835.png)
+
+