描述
此外掛程式實作了 Kubernetes 基於 DNS 的服務探索規格。
執行 k8s_dns_chaos 外掛程式的 CoreDNS 可以用於對 DNS 進行混沌測試。
此外掛程式在每個 Server Block 中只能使用一次。
語法
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 將生效,格式為
Namespace
.PodName
。 -
grpcport
PORT 設定 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'