描述
此插件实现 Kubernetes 基于 DNS 的服务发现规范。
运行 k8s_dns_chaos 插件的 CoreDNS 可用于对 DNS 执行混沌测试。
每个服务器块只能使用此插件一次。
语法
k8s_dns_chaos [ZONES...]
k8s_dns_chaos 支持插件 kubernetes 中的所有选项,此外,还支持用于混沌的其他配置项。
kubernetes [ZONES...] {
endpoint URL
tls CERT KEY CACERT
kubeconfig KUBECONFIG CONTEXT
namespaces NAMESPACE...
labels EXPRESSION
pods POD-MODE
endpoint_pod_names
ttl TTL
noendpoints
transfer to ADDRESS...
fallthrough [ZONES...]
ignore empty_service
chaos ACTION SCOPE [PODS...]
grpcport PORT
}
只有 [ZONES...]
、chaos
和 grpcport
与使用 kubernetes 的插件不同
-
[ZONES...]
定义主机的哪些区域将在 Kubernetes 集群中被视为内部主机。 -
chaos
动作 作用域 [PODS…] 设置混沌的行为和作用域。动作 的有效值
random
:为 DNS 请求返回随机 IP。error
:为 DNS 请求返回错误。
范围 的有效值
inner
:混沌只在 Kubernetes 集群的内部主机上起作用。outer
:混沌只在 Kubernetes 集群的外部主机上起作用。all
:混沌在所有主机上起作用。
[PODS…] 定义哪些 Pod 将生效,格式为
命名空间
.Pod 名称
。 -
grpcport
端口 设置 GRPC 服务的端口,用于混沌规则的热更新。默认值为9288
。GRPC 服务的接口在 dns.proto 中定义。
示例
Pod busybox.busybox-0
中的所有 DNS 请求都会出错
k8s_dns_chaos cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
chaos error all busybox.busybox-0
}
以下 shell 命令将执行失败
kubectl exec busybox-0 -it -n busybox -- ping -c 1 google.com
ping: bad address 'google.com'