kubeasz/docs/setup/ezctl.md

116 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# ezctl 命令行介绍
## 为什么使用 ezctl
kubeasz 项目使用ezctl 方便地创建和管理多个k8s 集群ezctl 使用shell 脚本封装ansible-playbook 执行命令,它十分轻量、简单和易于扩展。
### 使用帮助
随时运行 ezctl 获取命令行提示信息,如下
```
Usage: ezctl COMMAND [args]
-------------------------------------------------------------------------------------
Cluster setups:
list to list all of the managed clusters
checkout <cluster> to switch default kubeconfig of the cluster
new <cluster> to start a new k8s deploy with name 'cluster'
setup <cluster> <step> to setup a cluster, also supporting a step-by-step way
start <cluster> to start all of the k8s services stopped by 'ezctl stop'
stop <cluster> to stop all of the k8s services temporarily
upgrade <cluster> to upgrade the k8s cluster
destroy <cluster> to destroy the k8s cluster
backup <cluster> to backup the cluster state (etcd snapshot)
restore <cluster> to restore the cluster state from backups
start-aio to quickly setup an all-in-one cluster with 'default' settings
Cluster ops:
add-etcd <cluster> <ip> to add a etcd-node to the etcd cluster
add-master <cluster> <ip> to add a master node to the k8s cluster
add-node <cluster> <ip> to add a work node to the k8s cluster
del-etcd <cluster> <ip> to delete a etcd-node from the etcd cluster
del-master <cluster> <ip> to delete a master node from the k8s cluster
del-node <cluster> <ip> to delete a work node from the k8s cluster
Extra operation:
kcfg-adm <cluster> <args> to manage client kubeconfig of the k8s cluster
Use "ezctl help <command>" for more information about a given command.
```
- 命令集 1集群安装相关操作
- 显示当前所有管理的集群
- 切换默认集群
- 创建新集群配置
- 安装新集群
- 启动临时停止的集群
- 临时停止某个集群包括集群内运行的pod
- 升级集群k8s组件版本
- 删除集群
- 备份集群仅etcd数据不包括pv数据和业务应用数据
- 从备份中恢复集群
- 创建单机集群(类似 minikube
- 命令集 2集群节点操作
- 增加 etcd 节点
- 增加主节点
- 增加工作节点
- 删除 etcd 节点
- 删除主节点
- 删除工作节点
- 命令集3额外操作
- 管理客户端kubeconfig
#### 举例创建、安装新集群流程
- 1.首先创建集群配置实例
``` bash
~# ezctl new k8s-01
2021-01-19 10:48:23 DEBUG generate custom cluster files in /etc/kubeasz/clusters/k8s-01
2021-01-19 10:48:23 DEBUG set version of common plugins
2021-01-19 10:48:23 DEBUG disable registry mirrors
2021-01-19 10:48:23 DEBUG cluster k8s-01: files successfully created.
2021-01-19 10:48:23 INFO next steps 1: to config '/etc/kubeasz/clusters/k8s-01/hosts'
2021-01-19 10:48:23 INFO next steps 2: to config '/etc/kubeasz/clusters/k8s-01/config.yml'
```
然后根据提示配置'/etc/kubeasz/clusters/k8s-01/hosts' 和 '/etc/kubeasz/clusters/k8s-01/config.yml'为方便测试我们在hosts里面设置单节点集群etcd/kube-master/kube-node配置同一个节点注意节点需先设置ssh免密码登陆, config.yml 使用默认配置即可。
- 2.然后开始安装集群
``` bash
# 一键安装
ezctl setup k8s-01 all
# 或者分步安装,具体使用 ezctl help setup 查看分步安装帮助信息
# ezctl setup k8s-01 01
# ezctl setup k8s-01 02
# ezctl setup k8s-01 03
# ezctl setup k8s-01 04
...
```
- 3.重复步骤12可以创建、管理多个k8s集群建议ezctl使用独立的部署节点
ezctl 创建管理的多集群拓扑如下
```
+----------------+ +-----------------+
|ezctl 1.1.1.1 | |cluster-aio: |
+--+---+---+-----+ | |
| | | |master 4.4.4.4 |
| | +-------------------->+etcd 4.4.4.4 |
| | |node 4.4.4.4 |
| +--------------+ +-----------------+
| |
v v
+--+------------+ +---+----------------------------+
| cluster-1: | | cluster-2: |
| | | |
| master 2.2.2.1| | master 3.3.3.1/3.3.3.2 |
| etcd 2.2.2.2| | etcd 3.3.3.1/3.3.3.2/3.3.3.3 |
| node 2.2.2.3| | node 3.3.3.4/3.3.3.5/3.3.3.6 |
+---------------+ +--------------------------------+
```
That's it! 赶紧动手测试吧,欢迎通过 Issues 和 PRs 反馈您的意见和建议!