【问题标题】:Can't understand istio authentication policy无法理解 istio 身份验证策略
【发布时间】:2019-07-24 10:02:47
【问题描述】:

我是 Istio 的新手,正在学习官方网站的示例。看不懂的是globally enabling Istio mutual TLS

我可以使用网络上的 yaml 代码运行示例。之后我改了DestinationRule

kubectl apply -f - <<EOF
apiVersion: "networking.istio.io/v1alpha3"
kind: "DestinationRule"
metadata:
  name: "default"
  namespace: "foo"
spec:
  host: "*.local"
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL
EOF

我唯一更改的部分是将示例的命名空间从istio-system 替换为foo。然后切换到foo命名空间,运行如下测试命令:

$ for from in "foo" "bar"; do for to in "foo" "bar"; do kubectl exec $(kubectl get pod -l app=sleep -n ${from} -o jsonpath={.items..metadata.name}) -c sleep -n ${from} -- curl "http://httpbin.${to}:8000/ip" -s -o /dev/null -w "sleep.${from} to httpbin.${to}: %{http_code}\n"; done; done

结果如下:

sleep.foo to httpbin.foo: 503
sleep.foo to httpbin.bar: 200
sleep.bar to httpbin.foo: 503
sleep.bar to httpbin.bar: 503

我的期望是:

sleep.foo to httpbin.foo: 200
sleep.foo to httpbin.bar: 503
sleep.bar to httpbin.foo: 503
sleep.bar to httpbin.bar: 503

按照官方示例,我设置了一个启用双向 TLS 的网格范围的身份验证策略,然后我在命名空间 foo 上配置了客户端双向 TLS,我认为它应该在命名空间 foo 上工作,但确实如此不工作。

问题:

  1. 为什么sleep.foo to httpbin.foo: 503的状态是503而不是200?
  2. 为什么sleep.foo to httpbin.bar: 200的状态是200而不是503?

有人解释一下吗?谢谢。

【问题讨论】:

  • @VadimEisenberg 如果这是一个错误,您能否发表您的评论作为答案?所以其他人也可以看到这一点。
  • @leo 我已经更新了答案:您应该等待 1-2 分钟,然后政策才会完全执行。

标签: kubernetes google-kubernetes-engine istio


【解决方案1】:

您应该等待 1-2 分钟,然后才能完全执行这些政策。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    • 2019-06-12
    • 1970-01-01
    • 2017-05-20
    • 2019-03-23
    • 1970-01-01
    • 2022-10-04
    相关资源
    最近更新 更多