kubeasz/docs/setup/docker_kubeasz.md

76 lines
2.6 KiB
Markdown
Raw Normal View History

2019-03-05 22:39:56 +08:00
# 容器化运行 kubeasz
## TL;DR;
2019-06-23 07:45:30 +08:00
- 1.准备一台全新虚机作为管理节点ansible控制端
```
$ wget https://github.com/easzlab/kubeasz/releases/download/1.3.0/easzup
$ chmod +x ./easzup
$ ./easzup -D
```
2019-03-05 22:39:56 +08:00
- 2.配置 ssh 密钥登陆集群节点
``` bash
ssh-keygen -t rsa -b 2048 回车 回车 回车
ssh-copy-id $IP # $IP 为所有节点地址包括自身,按照提示输入 yes 和 root 密码
```
2019-06-23 07:45:30 +08:00
- 3.容器化运行 kubeasz然后执行安装 k8s 集群举例aio集群
2019-03-05 22:39:56 +08:00
``` bash
2019-06-23 07:45:30 +08:00
$ ./easzup -S
$ docker exec -it kubeasz easzctl start-aio
# 若需要自定义集群创建,如下进入容器,然后配置/etc/ansible/hosts执行创建即可
# docker exec -it kubeasz sh
2019-03-05 22:39:56 +08:00
```
## 验证
使用容器化安装成功后,可以在 **容器内** 或者 **宿主机** 上执行 kubectl 命令验证集群状态。
2019-06-23 07:45:30 +08:00
## easzup 工具介绍
2019-03-05 22:39:56 +08:00
2019-06-23 07:45:30 +08:00
初始化工具 tools/easzup 主要用于:
2019-03-05 22:39:56 +08:00
2019-06-23 07:45:30 +08:00
- 下载 kubeasz 项目代码/k8s 二进制文件/其他所需二进制文件/离线docker镜像等
- 【可选】容器化运行 kubeasz
2019-03-05 22:39:56 +08:00
2019-06-23 07:45:30 +08:00
详见脚本内容
2019-03-05 22:39:56 +08:00
2019-06-23 07:45:30 +08:00
### 容器化运行 kubeasz
2019-03-05 22:39:56 +08:00
2019-06-23 07:45:30 +08:00
容器启动脚本详见文件 tools/easzup 中函数`start_kubeasz_docker`
2019-03-05 22:39:56 +08:00
``` bash
2019-06-23 07:45:30 +08:00
docker run --detach \
2019-03-05 22:39:56 +08:00
--name kubeasz \
--restart always \
2019-06-23 07:45:30 +08:00
--env HOST_IP="$host_ip" \
2019-03-05 22:39:56 +08:00
--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 \
2019-06-23 07:45:30 +08:00
easzlab/kubeasz:${KUBEASZ_VER}
2019-03-05 22:39:56 +08:00
```
2019-06-23 07:45:30 +08:00
- --env HOST_IP="$host_ip" 传递这个参数是为了快速在本机安装aio集群
2019-03-05 22:39:56 +08:00
- --volume /etc/ansible:/etc/ansible 挂载本地目录,这样可以在宿主机上修改集群配置,然后在容器内执行 ansible 安装
- --volume /root/.kube:/root/.kube 容器内与主机共享 kubeconfig这样都可以执行 kubectl 命令
- --volume /root/.ssh/id_rsa:/root/.ssh/id_rsa:ro 等三个 volume 挂载保证:如果宿主机配置了免密码登陆所有集群节点,那么容器内也可以免密码登陆所有节点
2019-06-23 07:45:30 +08:00
## 清理
2019-03-05 22:39:56 +08:00
2019-06-23 07:45:30 +08:00
登陆管理节点,按照如下步骤清理(清理后可以重新安装测试)
- 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文件
```
$ umount /var/run/docker/netns/default
$ umount /var/lib/docker/overlay
$ rm -rf /var/lib/docker /var/run/docker
```