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に対してカオスを実施するために使用することができます。

このプラグインはサーバーブロックあたり1回しか使用できません。

構文

k8s_dns_chaos [ZONES...]

k8s_dns_chaoskubernetesプラグインの全オプションをサポートし、さらにカオス用などの構成項目もサポートします。

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
}

kubernetesプラグインの[ZONES...]chaosおよびgrpcportのみが異なります。

  • [ZONES...]はKubernetesクラスタ内の内部ホストとして見なされるホストのゾーンを定義します。

  • chaos アクション スコープ [PODS…]は、カオスの動作とスコープを設定します。

    アクションの有効な値

    • random: DNSリクエストに対してランダムIPを返します。
    • error: DNSリクエストに対してエラーを返します。

    スコープの有効値

    • inner: カオスはKubernetesクラスタの内部ホストに対してのみ有効です。
    • outer: カオスはKubernetesクラスタの外部ホストに対してのみ有効です。
    • all: カオスはすべてのホストに対して有効です。

    [PODS…]は影響を受けるPodを定義します。書式はNamespace.PodNameです。

  • 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
    }

以下のシェルコマンドは実行が失敗します。

    kubectl exec busybox-0 -it -n busybox -- ping -c 1 google.com
    ping: bad address 'google.com'