Easegress 命令行工具 egctl 使用教程
概述
Easegress 是一个高性能、可扩展的云原生流量编排系统,而 egctl 是其配套的命令行管理工具。本文将全面介绍如何使用 egctl 来管理 Easegress 中的各类资源,包括创建、查看、更新、编辑和删除等操作。
资源创建
在 Easegress 中,所有资源配置都使用 YAML 格式定义,文件扩展名通常为 .yaml
或 .yml
。egctl 提供了两种创建资源的方式:
egctl create
- 严格创建新资源,如果资源已存在会报错egctl apply
- 创建或更新资源,如果资源不存在则创建,存在则更新
基础创建示例
# 从标准输入创建GlobalFilter资源
cat globalfilter.yaml | egctl create -f -
# 从文件创建Pipeline资源
egctl apply -f ./pipeline-demo.yaml
# 创建CustomDataKind资源
egctl apply -f ./cdk-demo.yaml
快速创建HTTP服务
egctl create httpproxy
是一个便捷命令,可以快速创建 HTTPServer 和对应的 Pipeline 资源:
egctl create httpproxy demo --port 10080 \
--rule="/bar=http://127.0.0.1:8080,http://127.0.0.1:8081" \
--rule="/foo=http://127.0.0.1:8082"
这个命令会自动生成以下配置:
- 一个监听 10080 端口的 HTTPServer
- 两个 Pipeline 分别处理 /bar 和 /foo 路径的请求
- 自动配置负载均衡策略为轮询(roundRobin)
自动证书管理
egctl 还支持自动证书管理功能,可以轻松配置 HTTPS 服务:
egctl create httpproxy demo2 --port 10081 \
--rule="/bar=http://127.0.0.1:8083" \
--auto-cert \
--auto-cert-email someone@example.com \
--auto-cert-domain-name="*.example.com" \
--dns-provider name=dnspod \
--dns-provider zone=example.com \
--dns-provider="apiToken=<tokenvalue>"
资源查看与查询
egctl 提供了多种方式来查看和查询资源:
# 查看所有资源
egctl get all
# 查询特定HTTPServer
egctl get httpserver httpserver-demo
# 查看集群成员节点
egctl get member
# 查看CustomDataKind资源
egctl get customdatakind
# 获取详细描述信息
egctl describe pipeline pipeline-demo
命名空间支持
当使用 IngressController、MeshController 或 GatewayController 时,资源会被创建在不同的命名空间中:
# 查看所有命名空间的资源
egctl get all --all-namespaces
# 查看默认命名空间的资源
egctl get all --namespace default
资源更新与编辑
更新资源
使用 egctl apply
可以更新现有资源:
egctl apply -f httpserver-demo-version2.yaml
编辑资源
egctl 提供了直接编辑资源的命令:
# 编辑HTTPServer
egctl edit httpserver httpserver-demo
# 编辑CustomData
egctl edit customdata cdk-demo data1
默认使用 vi 编辑器,可以通过设置 EGCTL_EDITOR
环境变量来更改编辑器。
资源删除
# 删除特定HTTPServer
egctl delete httpserver httpserver-demo
# 删除所有HTTPServer
egctl delete httpserver --all
# 删除多个CustomDataKind
egctl delete customdatakind cdk-demo cdk-kind
其他实用命令
# 查看日志
egctl logs --tail 100
# 查看可用API资源
egctl api-resources
# 健康检查
egctl health
# 性能分析
egctl profile start cpu ./cpu-profile
配置与安全
egctl 的配置文件默认位于 $HOME/.egctlrc
,包含集群连接和安全配置:
kind: Config
current-context: context-default
contexts:
- context:
cluster: cluster-default
user: user-default
name: context-default
clusters:
- cluster:
server: localhost:2381
certificate-authority: "/tmp/certs/ca.crt"
name: cluster-default
users:
- name: user-default
user:
username: user123
password: password
client-certificate: "/tmp/certs/client.crt"
client-key: "/tmp/certs/client.key"
认证配置
Easegress 支持两种认证方式:
- 基础认证(用户名/密码)
- 客户端证书认证
对应的 Easegress 服务端配置示例:
basic-auth:
user123: password
admin: admin
client-ca-file: "/tmp/certs/ca.crt"
配置管理命令
# 查看当前上下文
egctl config current-context
# 切换上下文
egctl config use-context <name>
# 查看所有配置
egctl config view
总结
egctl 作为 Easegress 的命令行管理工具,提供了完整的管理功能链,从资源创建到维护再到监控,覆盖了日常运维的各个方面。通过熟练掌握 egctl 的使用,可以大大提高 Easegress 集群的管理效率。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考