From 90c88e59ba4e3ed0afbd58cc90f617e4974c4c90 Mon Sep 17 00:00:00 2001 From: gjmzj Date: Wed, 27 May 2020 00:36:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=AE=89=E8=A3=85=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/setup/docker_kubeasz.md | 22 ++++++------ docs/setup/offline_install.md | 54 +++++++++++++++++++--------- docs/setup/quickStart.md | 67 +++++++++++++++++++---------------- tools/easzup | 2 -- 4 files changed, 85 insertions(+), 60 deletions(-) diff --git a/docs/setup/docker_kubeasz.md b/docs/setup/docker_kubeasz.md index 2049ba7..7afe54a 100644 --- a/docs/setup/docker_kubeasz.md +++ b/docs/setup/docker_kubeasz.md @@ -7,7 +7,7 @@ - 下载 kubeasz 项目代码/k8s 二进制文件/其他所需二进制文件/离线docker镜像等 - 【可选】容器化运行 kubeasz -详见脚本内容 +详见脚本内容,使用命令`./easzup` 查看帮助信息 ### 容器化运行 kubeasz @@ -43,15 +43,15 @@ kubeasz 容器启动脚本详见文件 tools/easzup 中函数`start_kubeasz_dock 登录管理节点,按照如下步骤清理(清理后可以重新安装测试) -- 1.清理集群 `$ docker exec -it kubeasz easzctl destroy` -- 2.清理管理节点 - - 清理运行的容器 `$ easzup -C` - - 清理容器镜像 `$ docker system prune -a` - - 停止docker服务 `$ systemctl stop docker` - - 删除下载文件 `$ rm -rf /etc/ansible /etc/docker /opt/kube` - - 删除docker文件 +- 清理集群 `docker exec -it kubeasz easzctl destroy` +- 清理运行的容器 `./easzup -C` +- 清理容器镜像 `docker system prune -a` +- 停止docker服务 `systemctl stop docker` +- 删除docker文件 ``` -$ umount /var/run/docker/netns/default -$ umount /var/lib/docker/overlay -$ rm -rf /var/lib/docker /var/run/docker + umount /var/run/docker/netns/default + umount /var/lib/docker/overlay + rm -rf /var/lib/docker /var/run/docker ``` + +上述清理脚本执行成功后,建议重启节点,以确保清理残留的虚拟网卡、路由等信息。 diff --git a/docs/setup/offline_install.md b/docs/setup/offline_install.md index 1a56441..4608ce5 100644 --- a/docs/setup/offline_install.md +++ b/docs/setup/offline_install.md @@ -6,22 +6,31 @@ kubeasz 2.0.1 开始支持**完全离线安装**,目前已测试 `Ubuntu1604|1 在一台能够访问互联网的服务器上执行: -``` -# 下载工具脚本easzup,举例使用kubeasz版本2.0.3 -export release=2.0.3 +- 下载工具脚本easzup,举例使用kubeasz版本2.3.0 + +``` bash +export release=2.3.0 curl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases/download/${release}/easzup chmod +x ./easzup -# 使用工具脚本下载 -./easzup -D +``` + +- 使用工具脚本下载 + +默认下载最新推荐k8s/docker等版本,使用命令`./easzup` 查看工具脚本的帮助信息 + +``` bash +# 举例使用 k8s 版本 v1.18.2,docker 19.03.5 +./easzup -D -d 19.03.5 -k v1.18.2 +# 下载离线系统软件包 +./easzup -P ``` 执行成功后,所有文件均已整理好放入目录`/etc/ansible`,只要把该目录整体复制到任何离线的机器上,即可开始安装集群,离线文件包括: -- kubeasz 项目代码 --> /etc/ansible -- kubernetes 集群组件二进制 --> /etc/ansible/bin -- 其他集群组件二进制(etcd/CNI等)--> /etc/ansible/bin -- 操作系统基础依赖软件包(haproxy/ipvsadm/ipset/socat等)--> /etc/ansible/down/packages -- 集群基本插件镜像(coredns/dashboard/metrics-server等)--> /etc/ansible/down +- `/etc/ansible` 包含 kubeasz 版本为 ${release} 的发布代码 +- `/etc/ansible/bin` 包含 k8s/etcd/docker/cni 等二进制文件 +- `/etc/ansible/down` 包含集群安装时需要的离线容器镜像 +- `/etc/ansible/down/packages` 包含集群安装时需要的系统基础软件 离线文件不包括: @@ -32,22 +41,35 @@ chmod +x ./easzup 上述下载完成后,把`/etc/ansible`整个目录复制到目标离线服务器相同目录,然后在离线服务器上运行: -``` bash -# 离线安装 docker,检查本地文件,正常会提示所有文件已经下载完成 +- 离线安装 docker,检查本地文件,正常会提示所有文件已经下载完成 + +``` ./easzup -D +``` -# 启动 kubeasz 容器 +- 启动 kubeasz 容器 + +``` ./easzup -S +``` -# 设置参数,启用离线安装 +- 设置参数允许离线安装 + +``` sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' /etc/ansible/roles/chrony/defaults/main.yml sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' /etc/ansible/roles/ex-lb/defaults/main.yml sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' /etc/ansible/roles/kube-node/defaults/main.yml sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' /etc/ansible/roles/prepare/defaults/main.yml +``` -# 进入容器执行安装,参考 https://github.com/easzlab/kubeasz/blob/master/docs/setup/quickStart.md +- 举例安装单节点集群,参考 https://github.com/easzlab/kubeasz/blob/master/docs/setup/quickStart.md + +``` docker exec -it kubeasz easzctl start-aio +``` -# 或者按照文档 https://github.com/easzlab/kubeasz/blob/master/docs/setup/00-planning_and_overall_intro.md 集群规划后安装 +- 多节点集群,进入kubeasz 容器内 `kubectl exec -it kubeasz bash`,参考https://github.com/easzlab/kubeasz/blob/master/docs/setup/00-planning_and_overall_intro.md 进行集群规划和设置后安装 + +``` #ansible-playbook 90.setup.yml ``` diff --git a/docs/setup/quickStart.md b/docs/setup/quickStart.md index c91caa8..7e29569 100644 --- a/docs/setup/quickStart.md +++ b/docs/setup/quickStart.md @@ -10,13 +10,27 @@ ### 2.下载文件 +- 下载工具脚本easzup,举例使用kubeasz版本2.3.0 + ``` bash -# 下载工具脚本easzup,举例使用kubeasz版本2.0.2 -export release=2.0.2 +export release=2.3.0 curl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases/download/${release}/easzup chmod +x ./easzup -# 使用工具脚本下载 -./easzup -D +``` + +- 使用工具脚本下载 + +默认下载最新推荐k8s/docker等版本,使用命令`./easzup` 查看工具脚本的帮助信息 + +``` bash +# 举例使用 k8s 版本 v1.18.2,docker 19.03.5 +./easzup -D -d 19.03.5 -k v1.18.2 +``` + +- 可选下载离线系统包 (适用于无法使用yum/apt仓库情形) + +``` bash +./easzup -P ``` 上述脚本运行成功后,所有文件(kubeasz代码、二进制、离线镜像)均已整理好放入目录`/etc/ansible` @@ -26,57 +40,48 @@ chmod +x ./easzup - `/etc/ansible/down` 包含集群安装时需要的离线容器镜像 - `/etc/ansible/down/packages` 包含集群安装时需要的系统基础软件 -### 3.配置 ssh 免密登录 +### 3.安装集群 -``` bash -ssh-keygen -t rsa -b 2048 -N '' -f ~/.ssh/id_rsa -ssh-copy-id $IP # $IP 为所有节点地址包括自身,按照提示输入 yes 和 root 密码 -``` - -### 4.安装集群 - -- 4.1 容器化运行 kubeasz,详见[文档](docker_kubeasz.md) +- 容器化运行 kubeasz,详见[文档](docker_kubeasz.md) ``` ./easzup -S ``` -- 4.2 使用默认配置安装 aio 集群 +- 使用默认配置安装 aio 集群 ``` docker exec -it kubeasz easzctl start-aio ``` -### 5.验证安装 +### 4.验证安装 如果提示kubectl: command not found,退出重新ssh登录一下,环境变量生效即可 ``` bash -$ kubectl version # 验证集群版本 -$ kubectl get componentstatus # 验证 scheduler/controller-manager/etcd等组件状态 -$ kubectl get node # 验证节点就绪 (Ready) 状态 -$ kubectl get pod --all-namespaces # 验证集群pod状态,默认已安装网络插件、coredns、metrics-server等 -$ kubectl get svc --all-namespaces # 验证集群服务状态 +$ kubectl version # 验证集群版本 +$ kubectl get node # 验证节点就绪 (Ready) 状态 +$ kubectl get pod -A # 验证集群pod状态,默认已安装网络插件、coredns、metrics-server等 +$ kubectl get svc -A # 验证集群服务状态 ``` + - 登录 `dashboard`可以查看和管理集群,更多内容请查阅[dashboard文档](../guide/dashboard.md) -### 6.清理 +### 5.清理 以上步骤创建的K8S开发测试环境请尽情折腾,碰到错误尽量通过查看日志、上网搜索、提交`issues`等方式解决;当然你也可以清理集群后重新创建。 在宿主机上,按照如下步骤清理 -- 1.清理集群 `docker exec -it kubeasz easzctl destroy` 或 `docker exec -it kubeasz ansible-playbook /etc/ansible/99.clean.yml` -- 2.清理管理节点 - - 清理运行的容器 `easzup -C` - - 清理容器镜像 `docker system prune -a` - - 停止docker服务 `systemctl stop docker` - - 删除下载文件 `rm -rf /etc/ansible /etc/docker /opt/kube` - - 删除docker文件 +- 清理集群 `docker exec -it kubeasz easzctl destroy` +- 清理运行的容器 `./easzup -C` +- 清理容器镜像 `docker system prune -a` +- 停止docker服务 `systemctl stop docker` +- 删除docker文件 ``` -$ umount /var/run/docker/netns/default -$ umount /var/lib/docker/overlay -$ rm -rf /var/lib/docker /var/run/docker + umount /var/run/docker/netns/default + umount /var/lib/docker/overlay + rm -rf /var/lib/docker /var/run/docker ``` 上述清理脚本执行成功后,建议重启节点,以确保清理残留的虚拟网卡、路由等信息。 diff --git a/tools/easzup b/tools/easzup index e59019c..43e6b0c 100755 --- a/tools/easzup +++ b/tools/easzup @@ -21,8 +21,6 @@ export EXT_BIN_VER=0.5.2 export SYS_PKG_VER=0.3.3 function download_docker() { - [[ -f "/etc/ansible/bin/dockerd" ]] && { echo "[WARN] docker is downloaded."; return 0; } - echo -e "[INFO] \033[33mdownloading docker binaries\033[0m $DOCKER_VER" if [[ "$REGISTRY_MIRROR" == CN ]];then DOCKER_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/docker-${DOCKER_VER}.tgz"