diff --git a/charts/values.yaml b/charts/values.yaml index 82fc2a3a..8b457f06 100644 --- a/charts/values.yaml +++ b/charts/values.yaml @@ -33,7 +33,7 @@ feature: enableIPv4: true ## @param feature.enableIPv6 enable ipv6 - enableIPv6: false + enableIPv6: true ## @param feature.nethttp_defaultRequest_Qps qps for kind nethttp nethttp_defaultRequest_Qps: 10 diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index f0a5a401..cec9e040 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -35,3 +35,23 @@ markdown_extensions: - fenced_code - tables - attr_list + +nav: + - README.md + - Installation: + - Installation: usage/install.md + - Usage: + - AppHttpHealthy: usage/apphttphealthy.md + - NetReach: usage/netreach.md + - NetDns: usage/netdns.md + - Concepts: + - Architecture: reference/arch.md + - Reference: + - AppHttpHealthy: reference/apphttphealthy-zh_CN.md + - NetReach: reference/netreach-zh_CN.md + - NetDns: reference/netdns-zh_CN.md + - Report: reference/report.md + - Performance: reference/performance.md + - Development: + - Release workflow: develop/release.md + - Roadmap: develop/roadmap.md diff --git a/docs/reference/apphttphealthy-zh_CN.md b/docs/reference/apphttphealthy-zh_CN.md new file mode 100644 index 00000000..6159955f --- /dev/null +++ b/docs/reference/apphttphealthy-zh_CN.md @@ -0,0 +1,168 @@ +# AppHttpHealthy + +## 基本描述 + +对于这种任务,每个 kdoctor agent都会向指定的目标发送http请求,并获得成功率和平均延迟。它可以指定成功条件来判断结果是否成功。并且,可以通过聚合API获取详细的报告。 + +## AppHttpHealthy 示例 + +```yaml +apiVersion: kdoctor.io/v1beta1 +kind: AppHttpHealthy +metadata: + name: apphttphealth +spec: + expect: + meanAccessDelayInMs: 1500 + successRate: 1 + request: + durationInSecond: 10 + perRequestTimeoutInMS: 2000 + qps: 10 + schedule: + roundNumber: 1 + roundTimeoutMinute: 1 + schedule: 0 0 + target: + enableLatencyMetric: false + host: http://www.baidu.com + http2: false + method: GET +status: + doneRound: 1 + expectedRound: 1 + finish: true + history: + - deadLineTimeStamp: "2023-07-28T09:58:41Z" + duration: 17.272005445s + endTimeStamp: "2023-07-28T09:57:58Z" + expectedActorNumber: 2 + failedAgentNodeList: [] + notReportAgentNodeList: [] + roundNumber: 1 + startTimeStamp: "2023-07-28T09:57:41Z" + status: succeed + succeedAgentNodeList: + - kdoctor-worker + - kdoctor-control-plane + lastRoundStatus: succeed +``` + +## AppHttpHealthy 定义 + +### Metadata + +| 字段 | 描述 | 结构 | 验证 | +|-----|---------------|--------|-----| +| name | AppHttpHealthy 资源的名称 | string | 必填 | + +### Spec + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|-----------|------------------|------------------------------------------|---------|-------|------| +| schedule | 调度任务执行 | [schedule](./apphttphealthy-zh_CN.md#Schedule) | 可选 | | | +| request | 对目标地址请求配置 | [request](./apphttphealthy-zh_CN.md#Request) | 可选 | | | +| target | 请求目标设置 | [target](./apphttphealthy-zh_CN.md#Target) | 可选 | | | +| expect | 任务成功条件判断 | [expect](./apphttphealthy-zh_CN.md#Expect) | 可选 | | | + + +#### Schedule + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|---------------------------------------|--------|-----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------| +| roundNumber | 任务执行轮数 | int | 可选 | 大于等于-1,为 -1 时表示永久执行,大于 0 表示将要执行的轮数 | 1 | +| schedule | 任务执行时间, 执行时间应小于roundTimeoutMinute | string | 可选 | 支持 linux crontab 与间隔法两种写法
[linux crontab](https://linuxhandbook.com/crontab/) : */1 * * * * 表示每分钟执行一次
间隔法:书写格式为 “M N” ,M取值为一个数字,表示多少分钟之后开启任务,N取值为一个数字,表示每一轮任务的间隔多少分钟执行,例如 “0 1” 表示立即开始任务,每轮任务间隔1min | "0 1" | +| roundTimeoutMinute | 任务超时时间,需要大于 durationInSecond 和 任务执行时间 | int | 可选 | 大于等于 1 | 60 | + +#### Request + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|------------------------|---------------------------------------|--------|-----|---------------|---------------| +| durationInSecond | 每轮任务的请求发压的持续时间,小于roundTimeoutMinute | int | 可选 | 大于等于 1 | 2 | +| perRequestTimeoutInMS | 每个请求的超时时间,不可大于 durationInSecond | int | 可选 | 大于等于 1 | 500 | +| qps | 每一个 agent 每秒请求数量 | int | 可选 | 大于等于 1 | 5 | + +> 注意:使用 agent 请求时,所有的 agent 都会向目标地址进行请求,因此实际 server 接收的 qps 等于 agent 数量 * 设置的qps。 + +#### Target + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|------------------------|---------------------------------------------------------------------------------------------------------------------|--------|---------|---------------------------|-------| +| host | http 请求地址 | string | 必填 | | | +| method | http 请求方法 | string | 必填 | GET、POST、PUT、DELETE、CONNECT、OPTIONS、PATCH、HEAD | | +| bodyConfigmapName | http 请求 body 存放的 configmap 名称,[configmap 内容参考](./apphttphealthy-zh_CN.md#Body),若不需要 body 请求,忽略此字段 | string | 可选 | | | +| bodyConfigmapNamespace | http 请求 body 的 configmap 命名空间,如果 bodyConfigmapName 不为空,需要设置此字段 | string | 可选 | | | +| tlsSecretName | https 请求证书存放的 secret 名称,secret类型为 kubernetes.io/tls,[secret 内容参考](./apphttphealthy-zh_CN.md#Tls),若使用协议非 https 忽略此字段 | string | 可选 | | | +| tlsSecretNamespace | https 请求证书存放的 secret 命名空间,如果 tlsSecretName 字段不为空,需要设置此字段 | string | 可选 | | | +| header | http 请求头,数组形式,示例为 "Content-Type: application/json" | 元素为字符串的数组 | 可选 | | | +| http2 | 使用使用 http2 协议进行请求开关 | bool | 可选 | true,false | false | +| enableLatencyMetric | 统计演示分布,开启后会增加内存使用量 | bool | 可选 | true,false | false | + +#### Expect + +任务成功条件,若任务结果没有达到期望条件,任务失败 + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|---------------------------------|-------|-----|--------|------| +| meanAccessDelayInMs | 平均延时,如果最终的结果 超过本值,任务会判定为失败 | int | 可选 | 大于等于 1 | 5000 | +| successRate | http请求成功率,如果最终的结果 小于本值,任务会判定为失败 | float | 可选 | 0-1 | 1 | +| statusCode | 期待的http返回状态码,如果最终的结果不等于本值,任务会判定为失败 | int | 可选 | 0-600 | 200 | + + +#### Body + +携带 body 请求,body 写法示例 + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: kdoctor-test-body-5656-89207258 + namespace: kdoctor +data: + test1: test1 + test2: test2 +``` + + +#### Tls + +https 请求使用证书时,若不填写 ca证书 则 不对证书安全进行校验,https 请求证书示例。 + +```yaml +apiVersion: v1 +data: + ca.crt: xxxxxxxxxbase64 + tls.crt: xxxxxxxxxbase64 + tls.key: xxxxxxxxxbase64 +kind: Secret +metadata: + name: kdoctor-client-cert + namespace: kdoctor +type: kubernetes.io/tls +``` + + +### status + +| 字段 | 描述 | 结构 | 取值 | +|--------------------|----------|------------------------------------------------|--------------| +| doneRound | 完成的任务轮数 | int | | +| expectedRound | 期望执行的轮数 | int | | +| finish | 任务是否完成 | bool | true、false | +| lastRoundStatus | 最后一轮任务状态 | string | notstarted、ongoing、succeed、fail | +| history | 任务历史 | 元素为[history](./apphttphealthy-zh_CN.md#History)的数组 | | + +#### History + +| 字段 | 描述 | 结构 | 取值 | +|----------------------------------|-----------------|--------------|---------------------------| +| roundNumber | 任务轮数 | int | | +| status | 任务状态 | string | notstarted、ongoing、succeed、fail | +| startTimeStamp | 本轮任务开始时间 | string | | +| endTimeStamp | 本轮任务结束时间 | string | | +| duration | 本轮任执行时间 | string | | +| deadLineTimeStamp | 本轮任务 deadline | string | | +| failedAgentNodeList | 任务失败的 agent | 元素为string的数组 | | +| succeedAgentNodeList | 任务成功的 agent | 元素为string的数组 | | +| notReportAgentNodeList | 没有上传任务报告的 agent | 元素为string的数组 | | diff --git a/docs/reference/netdns-zh_CN.md b/docs/reference/netdns-zh_CN.md new file mode 100644 index 00000000..9e299696 --- /dev/null +++ b/docs/reference/netdns-zh_CN.md @@ -0,0 +1,187 @@ +# netdns + +## 基本描述 + +对于这种任务,每个 kdoctor 代理都会向指定的目标发送 Dns 请求,并获得成功率和平均延迟。 它可以指定成功条件来告知结果成功或失败。 + +## netdns 示例 + +### 集群 Dns Server 检查 + +对集群内的 dns server(coredns)发送对应请求,获取集群内 dns server 性能状态。 + +```yaml +apiVersion: kdoctor.io/v1beta1 +kind: Netdns +metadata: + name: netdns-cluster +spec: + expect: + meanAccessDelayInMs: 1500 + successRate: 1 + request: + domain: kubernetes.default.svc.cluster.local + durationInSecond: 10 + perRequestTimeoutInMS: 1000 + protocol: udp + qps: 10 + schedule: + roundNumber: 1 + roundTimeoutMinute: 1 + schedule: 0 1 + target: + enableLatencyMetric: false + targetDns: + serviceName: kube-dns + serviceNamespace: kube-system + testIPv4: true + testIPv6: true +status: + doneRound: 1 + expectedRound: 1 + finish: true + history: + - deadLineTimeStamp: "2023-07-28T09:45:03Z" + duration: 15.809063339s + endTimeStamp: "2023-07-28T09:44:18Z" + expectedActorNumber: 2 + failedAgentNodeList: [] + notReportAgentNodeList: [] + roundNumber: 1 + startTimeStamp: "2023-07-28T09:44:03Z" + status: succeed + succeedAgentNodeList: + - kdoctor-control-plane + - kdoctor-worker + lastRoundStatus: succeed +``` + +### 指定 dns server 检查 + +对集群外部的 dns server 发送对应请求,获取集群外部 dns server 性能状态。 + +```Yaml +apiVersion: kdoctor.io/v1beta1 +kind: Netdns +metadata: + name: netdns- user +spec: + expect: + meanAccessDelayInMs: 1500 + successRate: 1 + request: + domain: www.baidu.com + durationInSecond: 10 + perRequestTimeoutInMS: 1000 + protocol: udp + qps: 10 + schedule: + roundNumber: 1 + roundTimeoutMinute: 1 + schedule: 0 1 + target: + enableLatencyMetric: false + targetUser: + port: 53 + server: 172.41.54.83 +``` + +## netdns 定义 + +### Metadata + +| 字段 | 描述 | 结构 | 验证 | +|-----|---------------|--------|-----| +| name | netdns 资源的名称 | string | 必填 | + +### Spec + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|-----------|------------------|------------------------------------------|---------|-------|------| +| schedule | 调度任务执行 | [schedule](./netdns-zh_CN.md#Schedule) | 可选 | | | +| request | 对目标地址请求配置 | [request](./netdns-zh_CN.md#Request) | 可选 | | | +| target | 请求目标设置 | [target](./netdns-zh_CN.md#Target) | 可选 | | | +| expect | 任务成功条件判断 | [expect](./netdns-zh_CN.md#Expect) | 可选 | | | + + +#### Schedule + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|---------------------------------------|--------|-----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------| +| roundNumber | 任务执行轮数 | int | 可选 | 大于等于-1,为 -1 时表示永久执行,大于 0 表示将要执行的轮数 | 1 | +| schedule | 任务执行时间, 执行时间应小于roundTimeoutMinute | string | 可选 | 支持 linux crontab 与间隔法两种写法
[linux crontab](https://linuxhandbook.com/crontab/) : */1 * * * * 表示每分钟执行一次
间隔法:书写格式为 “M N” ,M取值为一个数字,表示多少分钟之后开启任务,N取值为一个数字,表示每一轮任务的间隔多少分钟执行,例如 “0 1” 表示立即开始任务,每轮任务间隔1min | "0 60" | +| roundTimeoutMinute | 任务超时时间,需要大于 durationInSecond 和 任务执行时间 | int | 可选 | 大于等于 1 | 60 | + +#### Request + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|------------------------|---------------------------------------|--------|-----|---------------|---------------| +| durationInSecond | 每轮任务的请求发压的持续时间,小于roundTimeoutMinute | int | 可选 | 大于等于 1 | 2 | +| perRequestTimeoutInMS | 每个请求的超时时间,不可大于 durationInSecond | int | 可选 | 大于等于 1 | 500 | +| qps | 每一个 agent 每秒请求数量 | int | 可选 | 大于等于 1 | 5 | +| protocol | 请求协议 | string | 可选 | udp、tcp、tcp-tls | udp | +| domain | dns 请求解析的域名 | string | 可选 | | kubernetes.default.svc.cluster.local | + +> 注意:使用 agent 请求时,所有的 agent 都会向目标地址进行请求,因此实际 server 接收的 qps 等于 agent 数量 * 设置的qps。 + +#### Target + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|-------------------------|----------------------------------------------|-----|------------|-------| +| targetUser | 对用户自定义的 dns server 进行 dns 请求| [targetUser](./netdns-zh_CN.md#TargetUser) | 可选 | | true | +| targetDns | 对集群的 dns server(coredns)进行 dns 请求 | [targetDns](./netdns-zh_CN.md#TargetDns) | 可选 | | true | +| enableLatencyMetric | 统计演示分布,开启后会增加内存使用量 | bool | 可选 | true,false | false | + +#### Expect + +任务成功条件,若任务结果没有达到期望条件,任务失败 + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|---------------------------------|-------|-----|--------|------| +| meanAccessDelayInMs | 平均延时,如果最终的结果 超过本值,任务会判定为失败 | int | 可选 | 大于等于 1 | 5000 | +| successRate | http请求成功率,如果最终的结果 小于本值,任务会判定为失败 | float | 可选 | 0-1 | 1 | + +#### TargetUser + +测试用户自定义 dns server + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|-------------|---------------|--------|-----|---------|---| +| server | dns server 地址 | string | 必填 | | | +| port | dns server 端口 | int | 必填 | 1-65535 | | + + +#### TargetDns + +测试集群内 dns server + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|----------|--------------------------|--------|-----|-----------|-------| +| testIPv4 | 测试 ipv4 地址 请求 A 记录 | bool | 可选 | true,false | true | +| testIPv6 | 测试 ipv6 地址 请求 AAAA 记录 | bool | 可选 | true,false | false | +| serviceName | 集群 dns server service 地址 | string | 可选 | | | +| serviceNamespace | 集群 dns server service 端口 | string | 可选 | | | + +### status + +| 字段 | 描述 | 结构 | 取值 | +|--------------------|----------|------------------------------------------|-----------------| +| doneRound | 完成的任务轮数 | int | | +| expectedRound | 期望执行的轮数 | int | | +| finish | 任务是否完成 | bool | true、false | +| lastRoundStatus | 最后一轮任务状态 | string | notstarted、ongoing、succeed、fail | +| history | 任务历史 | 元素为[history](./apphttphealthy-zh_CN.md#History)的数组 | | + +#### History + +| 字段 | 描述 | 结构 | 取值 | +|----------------------------------|-----------------|--------------|--------------------------------| +| roundNumber | 任务轮数 | int | | +| status | 任务状态 | string | notstarted、ongoing、succeed、fail | +| startTimeStamp | 本轮任务开始时间 | string | | +| endTimeStamp | 本轮任务结束时间 | string | | +| duration | 本轮任执行时间 | string | | +| deadLineTimeStamp | 本轮任务 deadline | string | | +| failedAgentNodeList | 任务失败的 agent | 元素为string的数组 | | +| succeedAgentNodeList | 任务成功的 agent | 元素为string的数组 | | +| notReportAgentNodeList | 没有上传任务报告的 agent | 元素为string的数组 | | diff --git a/docs/reference/netreach-zh_CN.md b/docs/reference/netreach-zh_CN.md new file mode 100644 index 00000000..201ecbed --- /dev/null +++ b/docs/reference/netreach-zh_CN.md @@ -0,0 +1,136 @@ +# NetReach + +## 基本描述 + +对于这种任务,每个kdoctor agent都会相互发送http请求,请求地址为每一个 agent 的 pod ip 、service ip、ingress ip 等等,并获得成功率和平均延迟。它可以指定成功条件来判断结果是否成功。并且,可以通过聚合API获取详细的报告。 + +## NetReach 示例 + +```yaml +apiVersion: kdoctor.io/v1beta1 +kind: NetReach +metadata: + name: netreach +spec: + expect: + meanAccessDelayInMs: 1500 + successRate: 1 + request: + durationInSecond: 10 + perRequestTimeoutInMS: 1000 + qps: 10 + schedule: + roundNumber: 1 + roundTimeoutMinute: 1 + schedule: 0 0 + target: + clusterIP: true + enableLatencyMetric: false + endpoint: true + ingress: true + ipv4: true + ipv6: true + loadBalancer: true + multusInterface: false + nodePort: true +status: + doneRound: 1 + expectedRound: 1 + finish: true + history: + - deadLineTimeStamp: "2023-07-28T09:59:12Z" + duration: 15.462579243s + endTimeStamp: "2023-07-28T09:58:27Z" + expectedActorNumber: 2 + failedAgentNodeList: + - kdoctor-worker + - kdoctor-control-plane + failureReason: some agents failed + notReportAgentNodeList: [] + roundNumber: 1 + startTimeStamp: "2023-07-28T09:58:12Z" + status: fail + succeedAgentNodeList: [] + lastRoundStatus: fail +``` + +## NetReach 定义 + +### Metadata + +| 字段 | 描述 | 结构 | 验证 | +|-----|---------------|--------|-----| +| name | NetReach 资源的名称 | string | 必填 | + +### Spec + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|-----------|------------------|------------------------------------------|---------|-------|------| +| schedule | 调度任务执行 | [schedule](./netreach-zh_CN.md#Schedule) | 可选 | | | +| request | 对目标地址请求配置 | [request](./netreach-zh_CN.md#Request) | 可选 | | | +| target | 请求目标设置 | [target](./netreach-zh_CN.md#Target) | 可选 | | | +| expect | 任务成功条件判断 | [expect](./netreach-zh_CN.md#Expect) | 可选 | | | + +#### Schedule + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|---------------------------------------|--------|-----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------| +| roundNumber | 任务执行轮数 | int | 可选 | 大于等于-1,为 -1 时表示永久执行,大于 0 表示将要执行的轮数 | 1 | +| schedule | 任务执行时间, 执行时间应小于roundTimeoutMinute | string | 可选 | 支持 linux crontab 与间隔法两种写法
[linux crontab](https://linuxhandbook.com/crontab/) : */1 * * * * 表示每分钟执行一次
间隔法:书写格式为 “M N” ,M取值为一个数字,表示多少分钟之后开启任务,N取值为一个数字,表示每一轮任务的间隔多少分钟执行,例如 “0 1” 表示立即开始任务,每轮任务间隔1min | "0 1" | +| roundTimeoutMinute | 任务超时时间,需要大于 durationInSecond 和 任务执行时间 | int | 可选 | 大于等于 1 | 60 | + +#### Request + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|------------------------|---------------------------------------|--------|-----|---------------|---------------| +| durationInSecond | 每轮任务的请求发压的持续时间,小于roundTimeoutMinute | int | 可选 | 大于等于 1 | 2 | +| perRequestTimeoutInMS | 每个请求的超时时间,不可大于 durationInSecond | int | 可选 | 大于等于 1 | 500 | +| qps | 每一个 agent 每秒请求数量 | int | 可选 | 大于等于 1 | 5 | + +> 注意:使用 agent 请求时,所有的 agent 都会向目标地址进行请求,因此实际 server 接收的 qps 等于 agent 数量 * 设置的qps。 + +#### Target + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|-------------------------|--------|-----|------------|-------| +| clusterIP | 测试集群 service cluster ip | bool | 可选 | true,false | true | +| endpoint | 测试集群 pod endpoint | bool | 可选 | true,false | true | +| multusInterface | 测试集群 pod multus 多网卡 ip | bool | 可选 | true,false | false | +| ipv4 | 测试 ipv4 | bool | 可选 | true,false | true | +| ipv6 | 测试 ipv6 | bool | 可选 | true,false | false | +| ingress | 测试 ingress 地址 | bool | 可选 | true,false | false | +| nodePort | 测试 service node port | bool | 可选 | true,false | true | +| enableLatencyMetric | 统计演示分布,开启后会增加内存使用量 | bool | 可选 | true,false | false | + +#### Expect + +任务成功条件,若任务结果没有达到期望条件,任务失败 + +| 字段 | 描述 | 结构 | 验证 | 取值 | 默认值 | +|--------------------|---------------------------------|-------|-----|--------|------| +| meanAccessDelayInMs | 平均延时,如果最终的结果 超过本值,任务会判定为失败 | int | 可选 | 大于等于 1 | 5000 | +| successRate | http请求成功率,如果最终的结果 小于本值,任务会判定为失败 | float | 可选 | 0-1 | 1 | + +### status + +| 字段 | 描述 | 结构 | 取值 | +|--------------------|----------|------------------------------------------------|-----------------| +| doneRound | 完成的任务轮数 | int | | +| expectedRound | 期望执行的轮数 | int | | +| finish | 任务是否完成 | bool | true、false | +| lastRoundStatus | 最后一轮任务状态 | string | notstarted、ongoing、succeed、fail | +| history | 任务历史 | 元素为[history](./apphttphealthy-zh_CN.md#History)的数组 | | + +#### History + +| 字段 | 描述 | 结构 | 取值 | +|----------------------------------|-----------------|--------------|--------------------------------| +| roundNumber | 任务轮数 | int | | +| status | 任务状态 | string | notstarted、ongoing、succeed、fail | +| startTimeStamp | 本轮任务开始时间 | string | | +| endTimeStamp | 本轮任务结束时间 | string | | +| duration | 本轮任执行时间 | string | | +| deadLineTimeStamp | 本轮任务 deadline | string | | +| failedAgentNodeList | 任务失败的 agent | 元素为string的数组 | | +| succeedAgentNodeList | 任务成功的 agent | 元素为string的数组 | | +| notReportAgentNodeList | 没有上传任务报告的 agent | 元素为string的数组 | | diff --git a/docs/usage/install-zh_CN.md b/docs/usage/install-zh_CN.md new file mode 100644 index 00000000..63453c9c --- /dev/null +++ b/docs/usage/install-zh_CN.md @@ -0,0 +1,63 @@ +# 安装文档 + +## 介绍 + +安装 kdoctor 对集群内外的网络及性能进行检查 + +## 实施要求 + +1.一套完整的 k8s 集群 + +2.已安装 [Helm](https://helm.sh/docs/intro/install/) + +3.storageClass(可选) 如果需要 kdoctor-controller 高可用且需要报告持久化 + +## 安装 + +### 添加 helm 仓库 + +```shell +helm repo add kdoctor https://kdoctor-io.github.io/kdoctor +helm repo update kdoctor +``` + +### 安装 kdoctor +kdoctor 可以根据不同的需求进行安装,以下为几个场景的推荐安装方式 + +#### 1.非高可用安装 + +以下方法 kdoctor agent 只将报告打印到标准输出 +```shell +helm install kdoctor kdoctor/kdoctor \ + -n kdoctor --wait --debug --create-namespace +``` +#### 2.高可用安装 + +以下方法将 kdoctor-controller 的收集报告引导到存储,因此,需要安装storageClass + +```shell + +helm install kdoctor kdoctor/kdoctor \ + -n kdoctor --wait --debug --create-namespace \ + --set kdoctorController.replicas=2 \ + --set feature.aggregateReport.controller.pvc.enabled=true \ + --set feature.aggregateReport.controller.pvc.storageClass=local-path \ + --set feature.aggregateReport.controller.pvc.storageRequests="100Mi" \ + --set feature.aggregateReport.controller.pvc.storageLimits="500Mi" +``` + +### 确认 kdoctor 所有组件正常运行 + +```shell +kubectl get pod -n kdoctor +NAME READY STATUS RESTARTS AGE +kdoctor-agent-gp5mh 1/1 Running 0 137m +kdoctor-agent-xkjn4 1/1 Running 0 137m +kdoctor-controller-686b75d6d7-k4dcq 1/1 Running 0 137m +``` + +### 卸载 kdoctor + +```shell +helm uninstall kdoctor -n kdoctor +``` diff --git a/pkg/pluginManager/tools/tools.go b/pkg/pluginManager/tools/tools.go index 9176fa24..4881570d 100644 --- a/pkg/pluginManager/tools/tools.go +++ b/pkg/pluginManager/tools/tools.go @@ -120,7 +120,7 @@ func ValidataAppHttpHealthyHost(r *crd.AppHttpHealthy) error { } func GetDefaultSchedule() (plan *crd.SchedulePlan) { - s := "0 60" + s := "0 1" return &crd.SchedulePlan{ RoundTimeoutMinute: 60, Schedule: &s,