# 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 to switch default kubeconfig of the cluster new to start a new k8s deploy with name 'cluster' setup to setup a cluster, also supporting a step-by-step way start to start all of the k8s services stopped by 'ezctl stop' stop to stop all of the k8s services temporarily upgrade to upgrade the k8s cluster destroy to destroy the k8s cluster backup to backup the cluster state (etcd snapshot) restore to restore the cluster state from backups start-aio to quickly setup an all-in-one cluster with 'default' settings Cluster ops: add-etcd to add a etcd-node to the etcd cluster add-master to add a master node to the k8s cluster add-node to add a work node to the k8s cluster del-etcd to delete a etcd-node from the etcd cluster del-master to delete a master node from the k8s cluster del-node to delete a work node from the k8s cluster Extra operation: kcfg-adm to manage client kubeconfig of the k8s cluster Use "ezctl help " 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 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.重复步骤1,2可以创建、管理多个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 反馈您的意见和建议!