【发布时间】:2020-06-02 23:44:26
【问题描述】:
我正在尝试运行 Istio 在线课程中的以下命令集:
设置 Istio 证书颁发机构 (CA)
留言本应用程序的第 2 版使用未启用 Istio 的外部服务(音调分析器)。因此,您将在本实验中全局禁用 mTLS,并仅为内部集群服务之间的通信启用它。
- 确保 Citadel 正在运行。 Citadel 是 Istio 的集群内证书颁发机构 (CA),是在集群中生成和管理加密身份所必需的。
kubectl get deployment -l istio=citadel -n istio-system
这是预期的输出:
- 为 Tone Analyzer 服务定义 mTLS 身份验证策略:
cat <<EOF | istioctl create -f -
apiVersion: authentication.istio.io/v1alpha1
kind: Policy
metadata:
name: mtls-to-analyzer
namespace: default
spec:
targets:
- name: analyzer
peers:
- mtls:
EOF
Created config policy/default/mtls-to-analyzer at revision 3934195
- 确认已创建策略:
kubectl get policies.authentication.istio.io
- 使用目标规则从留言簿启用 mTLS:
cat <<EOF | istioctl create -f -
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: route-with-mtls-for-analyzer
namespace: default
spec:
host: "analyzer.default.svc.cluster.local"
trafficPolicy:
tls:
mode: ISTIO_MUTUAL
EOF
Created config destination-rule/default/route-with-mtls-for-analyzer at revision 3934279
但是,当我尝试运行第二个命令时遇到以下错误:
Error: unknown command "create" for "istioctl"
当我使用“安装”而不是创建时:
cat <<EOF | istioctl install -f -
apiVersion: authentication.istio.io/v1alpha1
kind: Policy
metadata:
name: mtls-to-analyzer
namespace: default
spec:
targets:
- name: Tone Analyzer-qy
peers:
- mtls:
EOF
我收到以下错误:
Error: failed to apply manifests: unknown field "peers" in v1alpha1.IstioOperatorSpec:
谁能提供一些关于如何修改 YAML 以便正确定义 mTLS 身份验证服务的意见?我在第一步得到了正确的预期输出,但在第四步得到了相同的“未知字段”错误。
【问题讨论】:
-
您好,您使用的是什么 istio/istioctl 版本?
标签: ubuntu service yaml kubectl istio