k8s_dns_chaos

原始碼 首頁

啟用方式
k8s_dns_chaos:github.com/chaos-mesh/k8s_dns_chaos

k8s_dns_chaos - 允許在 Kubernetes 集群中注入 DNS 混亂,以進行混沌工程。

描述

此外掛程式實作了 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...]chaosgrpcportkubernetes 外掛程式不同。

  • [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'