説明
このプラグインはKubernetes DNS-ベースのサービス検出仕様を実装しています。
k8s_dns_chaosプラグインで実行するCoreDNSをDNSに対してカオスを実施するために使用することができます。
このプラグインはサーバーブロックあたり1回しか使用できません。
構文
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
}
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'