在托管式控制平面上启用可选功能
本页面介绍了如何在托管式 Cloud Service Mesh 上启用可选功能。如需了解集群内控制平面,请参阅在集群内控制平面上启用可选功能。
配置托管式 Cloud Service Mesh 时,支持的功能因控制平面实现而异,某些功能只能通过许可名单使用。如需了解详情,请参阅支持的功能。如果您当前正在使用基于 IstioOperator
的配置,从 IstioOperator 迁移工具可帮助转换为代管式控制平面支持的配置。
Distroless 代理映像
如果您使用托管式
TRAFFIC_DIRECTOR
控制平面实现直接启用 Cloud Service Mesh,则仅支持 distroless 映像类型。您无法更改它。如果您的舰队最初使用的是
ISTIOD
控制平面实现,且已迁移到TRAFFIC_DIRECTOR
实现,那么在迁移期间,您的映像类型保持不变,您可以自行将映像类型更改为 distroless。
最佳做法是将容器运行时的内容限制为仅包含必要的软件包。此方法可提高常见漏洞和披露 (CVE) 扫描程序的安全性和信噪比。Istio 提供基于 Distroless 基础映像的代理映像。
Distroless 映像不包含代理以外的任何二进制文件。
因此,无法执行 (exec
) shell 或使用容器中的 curl
、ping
或其他调试实用程序。不过,您可以使用临时容器附加到正在运行的工作负载 Pod,以便能够检查 Pod 并运行自定义命令。例如,请参阅收集 Cloud Service Mesh 日志。
以下配置可为整个 Cloud Service Mesh 启用 Distroless 映像。映像类型更改要求每个 pod 重启并重新注入才能生效。
apiVersion: v1
kind: ConfigMap
metadata:
name: istio-release-channel
namespace: istio-system
data:
mesh: |-
defaultConfig:
image:
imageType: distroless
您可以使用以下 Pod 注解替换 imageType
。
sidecar.istio.io/proxyImageType: debug
使用注解更改部署的映像类型后,应重新启动该部署。
kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME
由于它不需要调试基础映像,因此大多数类型的代理调试应使用 gcloud beta container fleet mesh debug proxy-status / proxy-config
(详细信息)。
出站流量政策
默认情况下,outboundTrafficPolicy
设置为 ALLOW_ANY
。在此模式下,允许发送到任何外部服务的所有流量。如需控制流量并将其限制为仅流向已定义服务条目的外部服务,您可以将默认行为 ALLOW_ANY
更改为 REGISTRY_ONLY
。
以下配置会将
outboundTrafficPolicy
配置为REGISTRY_ONLY
:apiVersion: v1 kind: ConfigMap metadata: name: istio-release-channel namespace: istio-system data: mesh: |- outboundTrafficPolicy: mode: REGISTRY_ONLY
其中,release-channel 是您的发布渠道(
asm-managed
、asm-managed-stable
或asm-managed-rapid
)。您可以使用以下命令在 ConfigMap 中进行前面必需的配置更改:
kubectl edit configmap istio-release-channel -n istio-system -o yaml
运行以下命令以查看 configmap:
kubectl get configmap istio-release-channel -n istio-system -o yaml
如需验证
outboundTrafficPolicy
是否已通过REGISTRY_ONLY
启用,请确保mesh:
部分中显示以下行。... apiVersion: v1 data: mesh: | outboundTrafficPolicy: mode: REGISTRY_ONLY ...
最终用户身份验证
您可以为基于浏览器的最终用户身份验证以及对已部署工作负载的访问控制,配置托管式 Cloud Service Mesh 用户身份验证。如需了解详情,请参阅配置 Cloud Service Mesh 用户身份验证。
为您的工作负载配置最低的 TLS 版本
如果您使用托管式 TRAFFIC_DIRECTOR
控制平面实现直接启用 Cloud Service Mesh,那么无法更改此设置。
您可以使用 minProtocolVersion
字段指定工作负载中 TLS 连接的最低 TLS 版本。 如需详细了解如何设置最低 TLS 版本并检查工作负载的 TLS 配置,请参阅 Istio 工作负载最低 TLS 版本配置。
下面的示例显示将工作负载的最低 TLS 版本设置为 1.3 的 ConfigMap
:
apiVersion: v1
kind: ConfigMap
metadata:
name: istio-release-channel
namespace: istio-system
data:
mesh: |-
meshMTLS:
minProtocolVersion: TLSV1_3