一、语法冲突问题

  1. Kubernetes允许labels中出现“.”分隔符.
apiVersion: v1
kind: Node
metadata:
  annotations:
    node.alpha.kubernetes.io/ttl: "0"
  creationTimestamp: "2021-08-24T08:34:19Z"
  labels:
    beta.kubernetes.io/arch: arm64
    beta.kubernetes.io/os: linux
    kubernetes.io/arch: arm64
    kubernetes.io/hostname: ubuntu
    kubernetes.io/type: edge
    node-role.kubernetes.io/agent: ""
    node-role.kubernetes.io/edge: ""
        在[datafrk](https://github.com/kubesys/datafrk)设计过程中,“.”表示Json路径,则metadata.labels.beta.kubernetes.io/arch会被解析成
apiVersion: v1
kind: Node
metadata:
  annotations:
    node.alpha.kubernetes.io/ttl: "0"
  creationTimestamp: "2021-08-24T08:34:19Z"
  labels:
    beta:
       kubernetes
         io/arch: arm64
      为了避免该问题,再请求参数时,将“.”分隔符转化为"#"分隔符,即写成metadata.labels.beta#kubernetes#io/arch,实际查询过程会重新转化为metadata.labels.beta#kubernetesmetadata.labels.beta.kubernetes.io/arch