Skip to content

Commit

Permalink
docs: 公有云部署文档更新
Browse files Browse the repository at this point in the history
  • Loading branch information
gjmzj committed May 16, 2019
1 parent 88b92db commit 2500537
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 63 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@
</table>

- 命令行工具 [easzctl介绍](docs/setup/easzctl_cmd.md)
- 公有云部署 [使用kubeasz在公有云上创建k8s集群](docs/setup/kubeasz_on_public_cloud.md)
- 容器部署 [使用kubeasz容器创建k8s集群](docs/setup/docker_kubeasz.md)
- 公有云[部署指南](docs/setup/kubeasz_on_public_cloud.md) [阿里云](docs/setup/kubeasz_on_aliyun.md) [腾讯云](docs/setup/kubeasz_on_tencent_cloud.md) [百度云](docs/setup/kubeasz_on_baidu_cloud.md) [AWS](docs/setup/kubeasz_on_aws_cloud.md)
- 容器部署 [(测试)使用kubeasz容器创建k8s集群](docs/setup/docker_kubeasz.md)

## 使用指南

Expand Down
2 changes: 1 addition & 1 deletion docs/setup/00-planning_and_overall_intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

|角色|数量|描述|
|:-|:-|:-|
|easzctl节点|1|运行ansible/easzctl脚本,一般复用deploy节点,但如果需要[管理创建多个集群](easzctl_cmd.md),建议使用独立节点(1c1g)|
|easzctl节点|1|运行ansible/easzctl脚本,一般复用deploy节点,但如果需要[管理创建多个集群](easzctl_cmd.md#%E5%85%B8%E5%9E%8B-easzctl-%E5%88%9B%E5%BB%BA%E7%AE%A1%E7%90%86%E7%9A%84%E9%9B%86%E7%BE%A4%E6%8B%93%E6%89%91%E5%A6%82%E4%B8%8B),建议使用独立节点(1c1g)|
|deploy节点|1|运行CA创建、集群部署、插件安装等,一般复用第一个master或node节点|
|etcd节点|3|注意etcd集群需要1,3,5,7...奇数个节点,一般复用master节点|
|master节点|2|多master节点需要额外规划一个master VIP(虚地址)|
Expand Down
70 changes: 70 additions & 0 deletions docs/setup/kubeasz_on_aliyun.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# 在阿里云上部署多主高可用集群

首先请阅读一般公有云部署注意事项 https://github.com/easzlab/kubeasz/blob/master/docs/setup/kubeasz_on_public_cloud.md

- 多主高可用集群节点规划不需要lb节点

节点规划可以参考 [example/hosts.cloud.example](../../example/hosts.cloud.example),如下:(避免deploy节点复用master节点即可)

``` bash
# 集群部署节点:一般为运行ansible 脚本的节点
# 变量 NTP_ENABLED (=yes/no) 设置集群是否安装 chrony 时间同步, 公有云上虚机不需要
[deploy]
10.1.0.160 NTP_ENABLED=no

# etcd集群请提供如下NODE_NAME,注意etcd集群必须是1,3,5,7...奇数个节点
[etcd]
10.1.0.160 NODE_NAME=etcd1
10.1.0.161 NODE_NAME=etcd2
10.1.0.162 NODE_NAME=etcd3

[kube-master]
10.1.0.161
10.1.0.162

# 公有云上一般都有提供负载均衡产品,且不允许自己创建,lb 节点留空,仅保留组名
[lb]

[kube-node]
10.1.0.160
10.1.0.163

# 参数 NEW_INSTALL:yes表示新建,no表示使用已有harbor服务器
[harbor]
#10.1.0.8 HARBOR_DOMAIN="harbor.yourdomain.com" NEW_INSTALL=no

...
```
+ 创建云负载均衡,例如阿里云slb如下:

``` bash
1. 首先创建SLB,注意选择【可用区】,【实例类型】可以先选‘私网’,【网络类型】专有网络,【虚拟交换机】跟你k8s集群节点同一交换机
2. 配置【协议&监听】TCP 【端口】8443,【后端服务器】即 master 节点服务器,端口 6443
3. 配置完成,记下负载均衡的内部地址(例如 10.1.0.200)
```
+ 继续配置 ansible hosts,设置`MASTER_IP` 为刚才创建的SLB地址

``` bash
[all:vars]
# ---------集群主要参数---------------
#集群部署模式:allinone, single-master, multi-master
DEPLOY_MODE=multi-master

# 创建内网云负载均衡,然后配置:前端监听 tcp 8443,后端 tcp 6443,后端节点即 master 节点
MASTER_IP="10.1.0.200" # 即负载均衡内网地址
KUBE_APISERVER="https://{{ MASTER_IP }}:8443"

# 集群网络插件,目前支持calico, flannel
CLUSTER_NETWORK="flannel"

...
```

+ 其余集群创建步骤与自有环境完全相同

+ 创建集群 `ansible-playbook /etc/ansible/90.setup.yml`

### 其他资料

另外由[li-sen](https://github.com/li-sen)分享的[kubeasz-阿里云vpc部署记录](https://li-sen.github.io/post/blog-wiki/2018-09-27-k8s-kubeasz-%E9%98%BF%E9%87%8C%E4%BA%91vpc%E9%83%A8%E7%BD%B2%E8%AE%B0%E5%BD%95/):介绍了阿里云上自建高可用k8s集群碰过的问题与解决,主要是使用一台haproxy中转解决slb的限制问题。

69 changes: 9 additions & 60 deletions docs/setup/kubeasz_on_public_cloud.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,72 +8,21 @@

3. 无法自由创建`lb`节点,一般使用云负载均衡(内网)四层TCP负载模式;

4. 部分云厂商负载均衡使用四层负载模式时不支持添加进后端云服务器池的 ECS 既作为 Real Server,又作为客户端向所在的 SLB 实例发送请求;因此注意不要在 master节点执行 kubectl,会出现时通时不通的情况;
4. 安装时各个节点开通公网访问(可以使用绑定EIP/开通NAT网关/利用iptables自建上网网关等方式)

## 在公有云上部署多主多节点集群
5. 部分云厂商负载均衡使用四层模式时不支持添加进后端云服务器池的 ECS 既作为 Real Server,又作为客户端向所在的 SLB 实例发送请求;因此在 master节点执行 kubectl 访问 apiserver VIP 地址时,会出现时通时不通的情况;但是不影响 kubeasz-k8s 集群正常工作。

- 单节点和单主多节点集群的节点规划与自有环境没有差异
## 在公有云上部署多主高可用集群

- 多主多节点集群节点规划不需要lb节点
- 单节点、单主多节点集群的规划及安装与自有环境没有差异

其他在公有云上的安装步骤与自有环境没有差异,节点规划可以参考 [example/hosts.cloud.example](../../example/hosts.cloud.example),如下:(避免deploy节点同时作为master节点)
- 多主高可用集群不需要lb,节点规划可以参考 [example/hosts.cloud.example](../../example/hosts.cloud.example)

``` bash
# 集群部署节点:一般为运行ansible 脚本的节点
# 变量 NTP_ENABLED (=yes/no) 设置集群是否安装 chrony 时间同步, 公有云上虚机不需要
[deploy]
10.1.0.160 NTP_ENABLED=no
- [阿里云部署 kubeasz 举例](kubeasz_on_aliyun.md)

# etcd集群请提供如下NODE_NAME,注意etcd集群必须是1,3,5,7...奇数个节点
[etcd]
10.1.0.160 NODE_NAME=etcd1
10.1.0.161 NODE_NAME=etcd2
10.1.0.162 NODE_NAME=etcd3
- [腾讯云部署 kubeasz 举例](kubeasz_on_tencent_cloud.md)

[kube-master]
10.1.0.161
10.1.0.162
- [百度云部署 kubeasz 举例](kubeasz_on_baidu_cloud.md)

# 公有云上一般都有提供负载均衡产品,且不允许自己创建,lb 节点留空,仅保留组名
[lb]

[kube-node]
10.1.0.160
10.1.0.163

# 参数 NEW_INSTALL:yes表示新建,no表示使用已有harbor服务器
[harbor]
#10.1.0.8 HARBOR_DOMAIN="harbor.yourdomain.com" NEW_INSTALL=no

...
```
+ 创建云负载均衡,例如阿里云slb如下:

``` bash
1. 首先创建SLB,注意选择【可用区】,【实例类型】可以先选‘私网’,【网络类型】专有网络,【虚拟交换机】跟你k8s集群节点同一交换机
2. 配置【协议&监听】TCP 【端口】8443,【后端服务器】即 master 节点服务器,端口 6443
3. 配置完成,记下负载均衡的内部地址(例如 10.1.0.200)
```
+ 继续配置 ansible hosts,设置`MASTER_IP` 为刚才创建的SLB地址

``` bash
[all:vars]
# ---------集群主要参数---------------
#集群部署模式:allinone, single-master, multi-master
DEPLOY_MODE=multi-master

# 创建内网云负载均衡,然后配置:前端监听 tcp 8443,后端 tcp 6443,后端节点即 master 节点
MASTER_IP="10.1.0.200" # 即负载均衡内网地址
KUBE_APISERVER="https://{{ MASTER_IP }}:8443"

# 集群网络插件,目前支持calico, flannel
CLUSTER_NETWORK="flannel"

...
```
+ 一步创建集群 `ansible-playbook /etc/ansible/90.setup.yml`

### 其他资料

另外由[li-sen](https://github.com/li-sen)分享的[kubeasz-阿里云vpc部署记录](https://li-sen.github.io/post/blog-wiki/2018-09-27-k8s-kubeasz-%E9%98%BF%E9%87%8C%E4%BA%91vpc%E9%83%A8%E7%BD%B2%E8%AE%B0%E5%BD%95/):介绍了阿里云上自建高可用k8s集群碰过的问题与解决,主要是使用一台haproxy中转解决slb的限制问题。
- [AWS 部署 kubeasz 举例](kubeasz_on_aws_cloud.md)

0 comments on commit 2500537

Please sign in to comment.