kubeasz release 1.3.0

dev1 1.3.0
gjmzj 2019-06-16 23:01:09 +08:00
parent c4eabdeb0c
commit 764744598a
2 changed files with 51 additions and 33 deletions

View File

@ -0,0 +1,27 @@
## kubeasz-1.3.0 发布说明
CHANGELOG:
- 组件更新:
- k8s: v1.14.3 v1.13.7
- calico: v3.4.4
- kube-router: v0.3.1
- traefik v1.7.12
- 集群安装:
- 重写容器化运行kubeasz的脚本 tools/easzup
- 增加网络插件 kube-ovn 及说明 docs/setup/network-plugin/kube-ovn.md
- 增加支持 containerd 离线镜像导入
- 增加 kubelet 可选配置 kube-reserved/system-reserved 资源预留(默认开启)
- 移除 dockerfiles 内容,转移至 https://github.com/kubeasz/dockerfiles
- 添加安装 docker/containerd 互斥判断
- 废弃 ansible hosts 中变量CLUSTER_DNS_SVC_IP等配置更精简方便
- 增加默认自动安装 traefik
- 优化haproxy 最大连接数为50000
- 文档:
- 更新ha-1x架构等文档
- 更新容器化运行 kubeasz 文档 docs/setup/docker_kubeasz.md
- 其他:
- fix: 双网卡下 apiserver endpoint 可能错误 #479
- fix: 安全加固roles/os-harden默认允许ip_forward
- fix: docker/containerd 安装检查
- fix: docker运行kubeasz时判断ansible控制端与deploy节点分离的条件
- fix: docker运行kubeasz时清理脚本 99.clean.yml

View File

@ -2,66 +2,57 @@
## TL;DR;
- 1.本机安装 docker (略)
- 1.准备一台全新虚机ansible控制端
```
$ curl -sfL https://github.com/easzlab/kubeasz/releases/download/1.3.0/easzup
$ ./easzup -D
```
- 2.配置 ssh 密钥登陆集群节点
``` bash
ssh-keygen -t rsa -b 2048 回车 回车 回车
ssh-copy-id $IP # $IP 为所有节点地址包括自身,按照提示输入 yes 和 root 密码
```
- 3.下载 kubeasz docker 镜像并运行 (可能需较长时间下载镜像jmgao1983/kubeasz)
- 3.容器化运行 kubeasz然后执行安装 k8s 集群举例aio集群
``` bash
curl -sfL https://github.com/easzlab/kubeasz/releases/download/1.0.0/kubeasz-docker-1.0.0 | bash -
```
- 4.在 kubeasz 容器中创建 k8s 集群,步骤与非容器方式创建类似,快速创建单节点集群如下
``` bash
docker exec -it kubeasz easzctl start-aio
$ ./easzup -S
$ docker exec -it kubeasz easzctl start-aio
# 若需要自定义集群创建,如下进入容器,然后配置/etc/ansible/hosts执行创建即可
# docker exec -it kubeasz sh
```
## 验证
使用容器化安装成功后,可以在 **容器内** 或者 **宿主机** 上执行 kubectl 命令验证集群状态。
## kubeasz 镜像介绍
## easzup 工具介绍
镜像描述文件 dockerfiles/kubeasz/Dockerfile它基于 ansible 镜像dockerfiles/ansible/Dockerfile主要包含 kubeasz 项目代码和 k8s 集群安装所需二进制文件。
初始化工具 tools/easzup 主要用于:
- 在本地创建 kubeasz 镜像,由于镜像较大,可以按以下步骤在本地创建
- 下载 kubeasz 项目代码/k8s 二进制文件/其他所需二进制文件/离线docker镜像等
- 【可选】容器化运行 kubeasz
``` bash
cd /etc/ansible/dockerfiles/kubeasz
# 克隆代码
git clone --depth=1 https://github.com/easzlab/kubeasz.git
# 手动下载二进制文件放入上述 git clone 完成目录 kubeasz/bin
docker build -t kubeasz:$TAG .
```
详见脚本内容
## 容器运行讲解
### 容器化运行 kubeasz
容器启动脚本详见文件 tools/kubeasz_docker
容器启动脚本详见文件 tools/easzup 中函数`start_kubeasz_docker`
``` bash
docker run --detach \
--name kubeasz \
--restart always \
--env HOST_IP=$host_ip \
--env HOST_IP="$host_ip" \
--volume /etc/ansible:/etc/ansible \
--volume /root/.kube:/root/.kube \
--volume /root/.ssh/id_rsa:/root/.ssh/id_rsa:ro \
--volume /root/.ssh/id_rsa.pub:/root/.ssh/id_rsa.pub:ro \
--volume /root/.ssh/known_hosts:/root/.ssh/known_hosts:ro \
$KUBEASZ_DOCKER_VER
easzlab/kubeasz:${KUBEASZ_VER}
```
- --env HOST_IP=$host_ip 传递这个参数是为了快速在本机安装aio集群
- --env HOST_IP="$host_ip" 传递这个参数是为了快速在本机安装aio集群
- --volume /etc/ansible:/etc/ansible 挂载本地目录,这样可以在宿主机上修改集群配置,然后在容器内执行 ansible 安装
- --volume /root/.kube:/root/.kube 容器内与主机共享 kubeconfig这样都可以执行 kubectl 命令
- --volume /root/.ssh/id_rsa:/root/.ssh/id_rsa:ro 等三个 volume 挂载保证:如果宿主机配置了免密码登陆所有集群节点,那么容器内也可以免密码登陆所有节点
## 参考
- ansible 容器镜像制作: https://github.com/William-Yeh/docker-ansible