diff --git a/README.md b/README.md index 16ee018..d60b405 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,9 @@ |组件|更新|支持| |:-|:-|:-| |OS| |Ubuntu 16.04+, CentOS 7| -|k8s|v1.10.4|v1.8, v1.9, v1.10| -|etcd|v3.3.6|v3.1, v3.2, v3.3| -|docker|18.03.0-ce|17.*.*-ce, 18.*.*-ce| +|k8s|v1.11.0|v1.8,v1.9,v1.10,v1.11| +|etcd|v3.3.8|v3.1,v3.2,v3.3| +|docker|18.03.1-ce|17.*.*-ce, 18.*.*-ce| |network| |calico v3.0, flannel v0.10, kube-router| -注:集群用到的所有二进制文件已打包好供下载 [https://pan.baidu.com/s/1c4RFaA](https://pan.baidu.com/s/1c4RFaA) diff --git a/docs/guide/ipvs.md b/docs/guide/ipvs.md new file mode 100644 index 0000000..01e39cb --- /dev/null +++ b/docs/guide/ipvs.md @@ -0,0 +1,33 @@ +# IPVS 服务负载均衡 + +kube-proxy 组件监听 API server 中 service 和 endpoint 的变化情况,从而为 k8s 集群内部的 service 提供动态负载均衡。在v1.10之前主要通过 iptables来实现,是稳定、推荐的方式,但是当服务多的时候会产生太多的 iptables 规则,大规模情况下有明显的性能问题;在v1.11 GA的 ipvs高性能负载模式,采用增量式更新,并可以保证 service 更新期间连接的保持。 + +## 启用 ipvs + +k8s v1.11 版本启用 ipvs 十分方便,只要在 kube-proxy 启动参数(或者配置文件中)中增加 `--proxy-mode=ipvs`: + +``` bash +[Unit] +Description=Kubernetes Kube-Proxy Server +After=network.target + +[Service] +WorkingDirectory=/var/lib/kube-proxy +ExecStart=/opt/kube/bin/kube-proxy \ + --bind-address={{ NODE_IP }} \ + --hostname-override={{ NODE_IP }} \ + --kubeconfig=/etc/kubernetes/kube-proxy.kubeconfig \ + --logtostderr=true \ + --proxy-mode=ipvs +Restart=on-failure +RestartSec=5 +LimitNOFILE=65536 + +[Install] +WantedBy=multi-user.target +``` + +目前 kubeasz 0.2.2 支持两种方式集成使用 ipvs:一种是使用kube-proxy 自带的ipvs 实现;另一种是使用 kube-router网络插件带的ipvs service-proxy; + +- v1.11, v1.10 版本启用 kube-proxy的 ipvs 模式:只需要在 `roles/kube-node/defaults/main.yml` 配置 `PROXY_MODE: "ipvs"` +- 启用 kube-router 的 ipvs service-proxy:需在 ansible hosts 配置选择 `CLUSTER_NETWORK="kube-router"`;另外在 `roles/kube-router/defaults/main.yml` 配置 `SERVICE_PROXY: "true"` diff --git a/docs/guide/metrics-server.md b/docs/guide/metrics-server.md index 1a48c70..e964d5e 100644 --- a/docs/guide/metrics-server.md +++ b/docs/guide/metrics-server.md @@ -8,7 +8,7 @@ - 1.metric-server是扩展的apiserver,依赖于[kube-aggregator](https://github.com/kubernetes/kube-aggregator),因此需要在apiserver中开启相关参数。 - 2.需要在集群中运行deployment处理请求 -从kubeasz 0.1.1 开始,metrics-server已经默认集成在集群安装脚本中,请查看`roles/cluster-addon/defaults/main.yml`中的设置 +从kubeasz 0.1.0 开始,metrics-server已经默认集成在集群安装脚本中,请查看`roles/cluster-addon/defaults/main.yml`中的设置 ## 安装 @@ -50,3 +50,11 @@ $ kubectl top pod --all-namespaces # 输出略 ``` - 验证基于metrics-server实现的基础hpa自动缩放,请参考[hpa.md](hpa.md) + +## 补充 + +目前dashboard插件如果想在界面上显示资源使用率,它还依赖于`heapster`;另外,测试发现k8s 1.8版本的`kubectl top`也依赖`heapster`,因此建议补充安装`heapster`,无需安装`influxdb`和`grafana`。 + +``` bash +$ kubectl apply -f /etc/ansible/manifests/heapster/heapster.yaml +``` diff --git a/docs/mixes/TodoList.md b/docs/mixes/TodoList.md index 06fc183..2dc7487 100644 --- a/docs/mixes/TodoList.md +++ b/docs/mixes/TodoList.md @@ -44,7 +44,7 @@ 集群部署 ipvs代理模式跟进 - kube-router已集成ipvs服务代理 + 已完成 应用服务 diff --git a/docs/release-notes/kubeasz-0.2.2.md b/docs/release-notes/kubeasz-0.2.2.md new file mode 100644 index 0000000..2714b74 --- /dev/null +++ b/docs/release-notes/kubeasz-0.2.2.md @@ -0,0 +1,22 @@ +## kubeasz-0.2.2 发布说明 + +CHANGELOG: +- 组件更新: + - k8s v1.11.0 + - etcd v3.3.8 + - docker 18.03.1-ce +- 功能更新: + - 更新使用ipvs 配置及[说明文档](https://github.com/gjmzj/kubeasz/blob/master/docs/guide/ipvs.md) + - 更新lb节点keepalived使用单播发送vrrp报文,预期兼容公有云上自建LB(待测试) + - 废弃原 ansible hosts 中变量SERVICE_PROXY + - 更新haproxy负载均衡算法配置 +- 其他修复: + - fix 变更集群网络的脚本和[文档](https://github.com/gjmzj/kubeasz/blob/master/docs/op/change_k8s_network.md) + - fix 脚本99.clean.yml清理环境变量 + - fix metrics-server允许的client cert问题 + - fix #242: 添加CA有效期参数,设定CA有效期为15年(131400h) (#245) + - fix helm安装出现Error: transport is closing (#248) + - fix harbor点击tag界面出现\"发生未知错误,请稍后再试" (#250) + - fix 脚本99.clean.yml清理 services softlink (#253) + - fix kube-apiserver-v1.8 使用真实数量的 apiserver-count (#254) + - fix 清理ipvs产生的网络接口 diff --git a/example/hosts.allinone.example b/example/hosts.allinone.example index 449278b..b6b45fb 100644 --- a/example/hosts.allinone.example +++ b/example/hosts.allinone.example @@ -28,8 +28,8 @@ DEPLOY_MODE=allinone #集群主版本号,目前支持: v1.8, v1.9, v1.10,v1.11 K8S_VER="v1.10" -#集群 MASTER IP -MASTER_IP="192.168.1.1" +#集群 MASTER IP,自动生成 +MASTER_IP="{{ groups['kube-master'][0] }}" KUBE_APISERVER="https://{{ MASTER_IP }}:6443" #TLS Bootstrapping 使用的 Token,使用 head -c 16 /dev/urandom | od -An -t x | tr -d ' ' 生成 diff --git a/example/hosts.s-master.example b/example/hosts.s-master.example index 1862286..3967d65 100644 --- a/example/hosts.s-master.example +++ b/example/hosts.s-master.example @@ -29,8 +29,8 @@ DEPLOY_MODE=single-master #集群主版本号,目前支持: v1.8, v1.9, v1.10,v1.11 K8S_VER="v1.11" -#集群 MASTER IP -MASTER_IP="192.168.1.1" +#集群 MASTER IP,自动生成 +MASTER_IP="{{ groups['kube-master'][0] }}" KUBE_APISERVER="https://{{ MASTER_IP }}:6443" #TLS Bootstrapping 使用的 Token,使用 head -c 16 /dev/urandom | od -An -t x | tr -d ' ' 生成