Kubernetes

kubernetes 模板控制 Kubernetes 特有的属性生成过程。

配置样例:

apiVersion: "config.istio.io/v1alpha2"
kind: kubernetes
metadata:
  name: attributes
  namespace: istio-system
spec:
  # 向适配器传递必要的属性数据
  source_uid: source.uid | ""
  source_ip: source.ip | ip("0.0.0.0") # 缺省为不确定的 IP 地址
  destination_uid: destination.uid | ""
  destination_ip: destination.ip | ip("0.0.0.0") # 缺省为不确定的 IP 地址
  attribute_bindings:
    # 用适配器生成的输出数据填充新属性。
    # $out 指代 OutputTemplate 消息中的实例。
    source.ip: $out.source_pod_ip
    source.labels: $out.source_labels
    source.namespace: $out.source_namespace
    source.service: $out.source_service
    source.serviceAccount: $out.source_service_account_name
    destination.ip: $out.destination_pod_ip
    destination.labels: $out.destination_labels
    destination.namespace: $out.destination_mamespace
    destination.service: $out.destination_service
    destination.serviceAccount: $out.destination_service_account_name

OutputTemplate

OutputTemplate 代表从适配器中生成的输出,它在 attribute_binding 字段中使用,使用格式为 $out.<field name of the OutputTemplate>,用来给属性填充数据。

字段类型说明
sourcePodUidstringPod 的 source.uid。TCP 用例中没有这一属性。在 attribute_binding 用表达式 $out.source_pod_uid 来使用该字段
sourcePodIpistio.policy.v1beta1.IPAddress源 Pod 的 IP 地址。在 attribute_binding 用表达式 $out.source_pod_ip 来使用该字段
sourcePodNamestring源 Pod 的名称。在 attribute_binding 用表达式 $out.source_pod_name 来使用该字段
sourceLabelsmap<string, string>源 Pod 的标签。在 attribute_binding 用表达式 $out.source_labels 来使用该字段
sourceNamespacestring源 Pod 所属的命名空间。在 attribute_binding 用表达式 $out.source_namespace 来使用该字段
sourceServiceAccountNamestring源 Pod 的 ServiceAccount 名称。在 attribute_binding 用表达式 $out.source_service_account_name 来使用该字段
sourceHostIpistio.policy.v1beta1.IPAddress源 Pod 所在主机的 IP 地址。在 attribute_binding 用表达式 $out.source_host_ip 来使用该字段
sourceWorkloadUidstring源 Pod 所在的 Istio 工作负载标识符。在 attribute_binding 用表达式 $out.source_workload_uid 来使用该字段
sourceWorkloadNamestring源 Pod 所在的 Istio 工作负载的名称。在 attribute_binding 用表达式 $out.source_workload_name 来使用该字段
sourceWorkloadNamespacestring源 Pod 所在的 Istio 工作负载的命名空间。在 attribute_binding 用表达式 $out.source_workload_namespace 来使用该字段
sourceOwnerstring源 Pod 的属主(控制器)。在 attribute_binding 用表达式 $out.source_owner 来使用该字段
destinationPodUidstringPod 的 destination.uid。TCP 用例中没有这一属性。在 attribute_binding 用表达式 $out.destination_pod_uid 来使用该字段
destinationPodIpistio.policy.v1beta1.IPAddress目的 Pod 的 IP 地址。在 attribute_binding 用表达式 $out.destination_pod_ip 来使用该字段
destinationPodNamestring目的 Pod 的名称。在 attribute_binding 用表达式 $out.destination_pod_name 来使用该字段
destinationContainerNamestring目的 Pod 的容器名称。在 attribute_binding 用表达式 $out.destination_container_name 来使用该字段
destinationLabelsstring目的 Pod 的标签。在 attribute_binding 用表达式 $out.destination_labels 来使用该字段
destinationNamespacestring目的 Pod 所属的命名空间。在 attribute_binding 用表达式 $out.destination_namespace 来使用该字段
destinationServiceAccountNamestring目的 Pod 的 ServiceAccount 名称。在 attribute_binding 用表达式 $out.destination_service_account_name 来使用该字段
destinationHostIpistio.policy.v1beta1.IPAddress目的 Pod 所在主机的 IP 地址。在 attribute_binding 用表达式 $out.destination_host_ip 来使用该字段
destinationOwnerstring目标 Pod 的属主(控制器)。在 attribute_binding 用表达式 $out.destination_owner 来使用该字段
destinationWorkloadUidstring目的 Pod 所在的 Istio 工作负载标识符。在 attribute_binding 用表达式 $out.destination_workload_uid 来使用该字段
destinationWorkloadNamestring目的 Pod 所在的 Istio 工作负载的名称。在 attribute_binding 用表达式 $out.destination_workload_name 来使用该字段
destinationWorkloadNamespacestring目的 Pod 所在的 Istio 工作负载的命名空间。在 attribute_binding 用表达式 $out.destination_workload_namespace 来使用该字段

模板

kubernetes 模板中呈现了用于生成 Kubernetes 特定属性的数据。

字段类型描述
sourceUidstring源 Pod 的 uid,格式为 kubernetes://pod.namespace
sourceIpistio.policy.v1beta1.IPAddress源 Pod 的 IP 地址
destinationUidstring目标 Pod 的 uid,格式为 kubernetes://pod.namespace
destinationIpistio.policy.v1beta1.IPAddress目标 Pod 的 IP 地址
destinationPortint64目标容器的端口号