istioctl authn命令用于同Istio认证策略进行交互,从而支持子命令tls-check检查认证策略和目标规则之间的TLS设置是否匹配。通过如下命令检查服务注册表中所有已知服务的设置,具体用法如下:
istioctl authn tls-check
例如,检查特定的某个服务,即命名空间ns1下的服务server1,可以执行如下命令:
CLIENT_POD=$(kubectl get pod -l app=client -n ns1 -o jsonpath={.items..metadata.name})
istioctl authn tls-check ${CLIENT_POD}.ns1 server.ns1.svc.cluster.local
可能的执行结果如下:
HOST:PORT STATUS SERVER CLIENT AUTHN POLICY DESTINATION RULE
server.ns1.svc.cluster.local:8000 CONFLICT mTLS HTTP default/
-
其中,可以看到在8080端口上始终为server.ns1.svc.cluster.local设置了双向TLS,Istio使用了网格范围的default认证策略,并且在default命名空间中有default目的地规则。